Java 客户端操作 Elasticsearch

2020-06-01 00:00:00 文档 客户端 连接 版本 对象

目前 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 有两种版本:

  1. Java Low Level REST Client
  2. 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>

相关文章