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
(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、项目集成:
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安装版本保持一致:
3、多条件分页查询:
(1)创建es连接客户端:
(2)创建es常用分页查询方法工具类:
(3)项目service调用es分页查询工具类取数据:
4、修改数据更新到es中:
(1)表单修改数据值:
这种情况表单传递过来的就是数据的所有内容,可以直接将数据放到index的请求体中发送给es:
(2)按钮修改某个字段值:
这种情况传递过来的只是主键ID和某个字段值,数据信息不全,要先去es中查询该主键ID数据信息,然后修改某个字段的值,将替换后的最新数据信息放到index请求体中发送给es:
A、查看数据:
B、修改数据:
5、增加数据同步到es中:
6、删除数据同步到es中: