es中的xpack插件下载_Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack

本章内容ES 及 x-pack 下载安装

Kibana 及 x-pack 下载安装

Spring Boot 整合 ES

Spring Boot 操作 ES

1. ES 及 x-pack 下载安装

spring-data-elasticsearch 之 ElasticSearch 架构初探,详细看下我另外一篇文章《深入浅出 spring-data-elasticsearch 之 ElasticSearch 架构初探(一)》

http://www.spring4all.com/article/330

ES 三大要素:文档(Document)

文档,在面向对象观念就是一个对象。在 ES 里面,是一个大 JSON 对象,是指定了唯一 ID 的最底层或者根对象。文档的位置由 index、type 和 _id 唯一标识。

索引(Index)

索引,用于区分文档成组,即分到一组的文档集合。索引,用于存储文档和使文档可被搜索。比如项目存索引 project 里面,交易存索引 sales 等。

类型(Type)

类型,用于区分索引中的文档,即在索引中对数据逻辑分区。比如索引 project 的项目数据,根据项目类型 ui 项目、插画项目等进行区分。

和关系型数据库 MySQL 做个类比:Document 类似于 Record

Type 类似于 Table

Index 类似于 Database

安装步骤如下:

1. 下载 ES 5.5.3

下载地址:

https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-3

2. 安装 ES 插件 x-pack

解压 - 然后安装 插件 x-packtar -xzf elasticsearch-5.3.0.tar.gz

cd elasticsearch-5.3.0/

// 安装 X-Pack

bin/elasticsearch-plugin install x-pack

3. 配置 ES 并启动

设置 Xpack 安全验证为 false:vim config/elasticsearch.yml

并添加下面配置:xpack.security.enabled: false

并启动 ES:./bin/elasticsearch

或者后台启动

./bin/elasticsearch -d

2. Kibana 及 x-pack 下载安装

1. 下载 Kibana 5.5.3

下载地址:

https://www.elastic.co/downloads/past-releases/kibana-5-5-3

2. 安装 Kibana 插件 x-pack

解压 - 然后安装 插件 x-packtar -zxvf kibana-5.5.3-darwin-x86_64.tar.gz

cd kibana-5.5.3-darwin-x86_64/

// 安装 X-Pack

bin/kibana-plugin install x-pack

3. 配置 Kibana 并启动

设置 Xpack 安全验证为 false:vim config/kibana.yml

并添加下面配置:xpack.security.enabled: false

并启动 Kibana:./bin/kibanah

或者后台启动

nohup ./bin/kibana &

必须注意:先启动 ES,再启动 Kibana。

如果后台启动注意,关闭命令如下:ps aux | grep 'elastic'

kill -9 pid

启动成功后,打开网页访问 127.0.0.1:5601 , 默认账号为:elasti,密码为 changeme。

3. Spring Boot 整合 ES

1. pom.xml 依赖

代码如下:<?xml  version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.spring4all

bysocket

1.0.0

bysocket :: AI For All

1.16.18

org.springframework.boot

spring-boot-starter-parent

2.0.0.M7

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-tomcat

org.springframework.boot

spring-boot-starter-log4j2

org.springframework.boot

spring-boot-starter-undertow

org.projectlombok

lombok

${lombok.version}

org.springframework.boot

spring-boot-starter-data-elasticsearch

spring-milestones

Spring Milestones

https://repo.spring.io/libs-milestone

true

org.springframework.boot

spring-boot-maven-plugin

1.5.7.RELEASE

true

true

repackage

Spring Data

要了解 spring-data-elasticsearch 是什么,首先了解什么是 Spring Data。

Spring Data 基于 Spring 为数据访问提供一种相似且一致性的编程模型,并保存底层数据存储的。

Spring Data Elasticsearch

spring-data-elasticsearch 是 Spring Data 的 Community modules 之一,是 Spring Data 对 Elasticsearch 引擎的实现。

Elasticsearch 默认提供轻量级的 HTTP Restful 接口形式的访问。相对来说,使用 HTTP Client 调用也很简单。但 spring-data-elasticsearch 可以更快的支持构建在 Spring 应用上,比如在 application.properties 配置 ES 节点信息和 spring-boot-starter-data-elasticsearch 依赖,直接在 Spring Boot 应用上使用。

这里依赖的 spring-boot-starter-data-elasticsearch 版本是 2.0,对应的 spring-data-elasticsearch 版本是 5.5.3.RELEASE。 对应 ES 尽量安装成版本一致 5.5.3。

2. application.properties 配置 ES 地址

application.properties 配置如下:# ESspring:  data:    elasticsearch:      repositories:        enabled: true      cluster-name: elasticsearch      cluster-nodes: 120.132.29.37:9300

默认 9300 是 Java 客户端的端口。9200 是支持 Restful HTTP 的接口。

更多配置:spring.data.elasticsearch.cluster-name Elasticsearch 集群名。(默认值: elasticsearch)

spring.data.elasticsearch.cluster-nodes 集群节点地址列表,用逗号分隔。如果没有指定,就启动一个客户端节点。

spring.data.elasticsearch.propertie 用来配置客户端的额外属性。

spring.data.elasticsearch.repositories.enabled 开启 Elasticsearch 仓库。(默认值:true。)

3. ES 数据操作层

文章实体类代码如下:/** * 文章 */@Document(indexName = "elasticsearch", type = "article")@Datapublic class ArticleEntity implements Serializable {    // 作者信息    private String writer;    // 文章信息    @Id    private Long id;    private String title;    private String content;    // 归属信息    private Long admin;}City 属性名不支持驼峰式。

indexName 配置必须是全部小写,不然会出异常。 org.elasticsearch.indices.InvalidIndexNameException: Invalid index name [provinceIndex], must be lowercase

ES 数据操作层实现代码如下:@Repositorypublic interface ArticleRepository extends ElasticsearchRepository {}

接口只要继承 ElasticsearchRepository 接口类即可,具体使用的是该接口的方法: S save(S var1);     Iterable saveAll(Iterable var1);    Optional findById(ID var1);    boolean existsById(ID var1);    Iterable findAll();    Iterable findAllById(Iterable var1);    long count();    void deleteById(ID var1);    void delete(T var1);    void deleteAll(Iterable extends T> var1);    void deleteAll();     S index(S var1);    Iterable search(QueryBuilder var1);    Page search(QueryBuilder var1, Pageable var2);    Page search(SearchQuery var1);    Page searchSimilar(T var1, String[] var2, Pageable var3);    void refresh();    Class getEntityClass();

增删改查、搜索都有了,不需要我们具体实现,只需我们传入对应的参数即可。

4. 文章搜索 ES 业务逻辑实现类

实现了批量保存到 ES 的接口,代码如下:@Service@Primary@AllArgsConstructor@Log4j2public class ArticleServiceImpl implements ArticleService {    private final ArticleRepository articleRepository;    @Override    public boolean saveArticles(List articleBeanList) {        List articleEntityList = transferToArticleEntityList(articleBeanList);        articleRepository.saveAll(articleEntityList);        return true;    }    ... 省略}

4. Spring Boot 操作 ES

用 Postman 工具新增文章:POST /api/articles HTTP/1.1Host: 127.0.0.1:8080Content-Type: application/jsonCache-Control: no-cachePostman-Token: d6288a82-b98f-1c1e-6dad-15b0223102ab[    {        "id":2,        "title":"文章题目",        "writer":"温岭",        "content":"温岭是个沿海城市",        "admin":1    },    {        "id":3,        "title":"文章题目文章题目文章题目",        "writer":"温1岭",        "content":"温2岭是个沿海城市",        "admin":1    }]

然后在 Kibana 设置 indexName 为 "elasticsearch",并打开 Discover tab,可以看到数据,并可以搜索查询,如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值