ELK生态系统——Java集成

1、客户端类型选择:

(1)客户端介绍:

ES支持的客户端连接方式比较多,大致如下三种:

A、REST API:

http请求,例如,浏览器请求get方法;利用Postman等工具发起REST请求;java 发起httpClient请求等。

B、Transport连接:

socket连接,用官方提供的TransPort客户端,底层是netty。

注意:ES的发展规划中在7.0版本开始将废弃 TransportClient,8.0版本中将完全移除 TransportClient,取而代之的是High Level REST Client。

C、多种编程语言客户端:

ES提供了多种编程语言的客户端:详情见官网:

https://www.elastic.co/guide/en/elasticsearch/client/index.html

ELK生态系统——Java集成_第1张图片

(2)Java REST Client重点介绍:

A、Java Low Level REST Client: 

说明:

低级别的REST客户端,通过http与集群交互,用户需自己编组请求JSON串,及解析响应JSON串。兼容所有ES版本。

使用介绍:

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-low.html

API doc :https://artifacts.elastic.co/javadoc/org/elasticsearch/client/elasticsearch-rest-client/6.2.4/index.html.

B、Java High Level REST Client: 

说明:

高级别的REST客户端,基于低级别的REST客户端,增加了编组请求JSON串、解析响应JSON串等相关api。使用的版本需要保持和ES服务端的版本一致,否则会有版本问题。从6.0.0开始加入的,目的是以java面向对象的方式来进行请求、响应处理。每个API 支持 同步/异步 两种方式,同步方法直接返回一个结果对象。异步的方法以async为后缀,通过listener参数来通知结果。高级java REST 客户端依赖Elasticsearch core project。

官方推荐使用高级版,低级版需要自己准确记住api。

(3)强烈推荐使用客户端:

A、使用说明:

依赖 java1.8 和 Elasticsearch core project

请使用与服务端ES版本一致的客户端版本

B、项目集成:

    org.elasticsearch.client

    elasticsearch-rest-high-level-client

    6.5.0

C、客户端初始化:

RestHighLevelClient client = new RestHighLevelClient(

        RestClient.builder(

                new HttpHost("localhost", 9200, "http"),

                new HttpHost("localhost", 9201, "http")));

给定集群的多个节点地址,将客户端负载均衡地向这个节点地址集发请求,单节点es就只需要创建一个HttpHost对象即可。

Client 不再使用了,记得关闭它:

client.close();

API及用法示例,请参考:

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.3/java-rest-high-create-index.html

2、引入jar包:

引入jar包版本要与es安装版本保持一致:

ELK生态系统——Java集成_第2张图片

3、多条件分页查询:

(1)创建es连接客户端:

ELK生态系统——Java集成_第3张图片

(2)创建es常用分页查询方法工具类:

ELK生态系统——Java集成_第4张图片

(3)项目service调用es分页查询工具类取数据:

ELK生态系统——Java集成_第5张图片

4、修改数据更新到es中:

(1)表单修改数据值:

这种情况表单传递过来的就是数据的所有内容,可以直接将数据放到index的请求体中发送给es:

ELK生态系统——Java集成_第6张图片

ELK生态系统——Java集成_第7张图片

(2)按钮修改某个字段值:

这种情况传递过来的只是主键ID和某个字段值,数据信息不全,要先去es中查询该主键ID数据信息,然后修改某个字段的值,将替换后的最新数据信息放到index请求体中发送给es:

A、查看数据:

ELK生态系统——Java集成_第8张图片

B、修改数据:

ELK生态系统——Java集成_第9张图片

ELK生态系统——Java集成_第10张图片

5、增加数据同步到es中:

ELK生态系统——Java集成_第11张图片

ELK生态系统——Java集成_第12张图片

6、删除数据同步到es中:

ELK生态系统——Java集成_第13张图片

你可能感兴趣的:(elasticsearch,java,ELK生态系统)