Java 客户端操作 Elasticsearch
目前 Elasticsearch 有很多第三方 Java 客户端
如 TransportClient,Jest, Spring Data Elasticsearch(Spring Data 对 Elasticsearch 的整合)
还有官方的Java REST Client
SpringBoot 对 Elasticsearch 的支持
SpringBoot 为 Elasticsearch 提供了基本的自动配置,并可以通过添加spring-boot-starter-data-elasticsearch
依赖,来方便的收集依赖项。
目前新的SpringBoot版本为 2.0.4.RELEASE,
2.0.4.RELEASE 版本的spring-boot-starter-data-elasticsearch
中包含了 3.0.9.RELEASE 版本的 spring-data-elasticsearch
而3.0.9版本的spring-data-elasticsearch
仅支持 5.5.0 版本的 Elasticsearch,比新版的 Elasticsearch 滞后很多。
SpringBoot 还支持使用 Jest (第三方 Java Elastic Search 客户端)连接 Elasticsearch, 并可以在 application.properties 中方便地对客户端进行配置。 Connecting to Elasticsearch by Using Jest
Java REST Client
Java REST Client 有两种版本:
- Java Low Level REST Client
- Java High Level REST Client
Java别REST客户端(The Java High Level REST Client)以后简称客户端,内部仍然是基于低级客户端。它提供了更多的API,接受请求对象作为参数并返回响应对象,由客户端自己处理编码和解码。
每个API都可以同步或异步调用。 同步方法返回一个响应对象,而异步方法的名称以async后缀结尾,需要一个监听器参数,一旦收到响应或错误,就会被通知(由低级客户端管理的线程池)。
Java high-level REST client
Java high-level REST client 是目前官方推荐使用的客户端,
High Level REST Client 与 Elasticsearch 具有相同的发布周期。
故我们能够使用新版的 Elasticsearch。
兼容性
使用 High Level REST Client 与 Elasticsearch 进行通信,主版本号需要一致,次版本号不必相同,因为它是向前兼容的。次版本号小于等于Elasticsearch的都可以。这意味着它支持与更高版本的Elasticsearch进行通信。
Maven 配置
客户端依赖于以下部件及其传递依赖关系:
- org.elasticsearch.client:elasticsearch-rest-client
- org.elasticsearch:elasticsearch
目前的新版本
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.3.2</version>
</dependency>
相关文章