Elasticsearch的各种Java Client

本文简要梳理了 Elasticsearch 常见的 Java 客户端,包括官方的 Transport Client(已弃用)、High Level REST Client、全新的 Java API Client,帮助你快速理解各类客户端的演进路径,并为项目选型提供参考。

3 分钟532 字

Elasticsearch的各种Java Client开发与工程 · 3 分钟

#TransportClient-废弃

Transport Client 随着 Elasticsearch 的第一个版本诞生,是一个特别的客户端。特别之处在于,它使用 TCP 协议与 Elasticsearch 通信,这也造成了当客户端与不同版本的 Elasticsearch 通信时,会存在兼容性问题。详情请参见Motivations around a new Java client。

7.0版本废弃,在8.0版本中将被删除,详情见:

Transport Client | Java Transport Client (deprecated) [7.17] | Elastic

#Java Low Level REST Client-不维护

Elasticsearch Client 低级别客户端。它允许通过 HTTP 请求与 Elasticsearch 集群进行通信。API本身不负责数据的编码解码,由用户去编码解码。它与所有的 Elasticsearch 版本兼容。

对应的 maven 包:

javajava折叠展开
<dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-client</artifactId>    <version>7.9.3</version></dependency>

目前也不再更新,见官网说明:

Maven Repository | Java REST Client [7.9] | Elastic

#Java High Level REST Client-不维护

Elasticsearch Client 官方高级客户端。基于低级客户端,主要目标是为了暴露各API特定的方法。Java High Level REST Client 依赖于 Elasticsearch 核心项目,将 Request 对象作为参数,返回一个Response 对象。所有API都可以同步或异步调用。

  • 同步调用方法立即返回一个Response对象。
  • 而异步调用方法(方法名以async结尾)依赖于监听,当有请求返回或是错误返回时,该监听会通知到对应的方法继续执行。

网上的资料大部分都是介绍这个客户端,不过7.15版本后不再推荐,也不再维护了。

详情见官网:

Java High Level REST Client | Java REST Client [7.9] | Elastic

maven 依赖:

xmlxml折叠展开
<dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-client</artifactId>    <version>${es.version}</version></dependency><!-- high-level client ,默认依赖的elasticsearch存在版本差异,排除后添加统一的es版本--><dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-high-level-client</artifactId>    <version>${es.version}</version>    <exclusions>        <exclusion>            <groupId>org.elasticsearch</groupId>            <artifactId>elasticsearch</artifactId>        </exclusion>    </exclusions></dependency><!-- 使用low-level client不需要,但是high-level client需要依赖--><dependency>    <groupId>org.elasticsearch</groupId>    <artifactId>elasticsearch</artifactId>    <version>${es.version}</version></dependency>

#Java API Client-官方推荐

具体用法见官网:

Installation | Elasticsearch Java API Client [8.13] | Elastic

END · 2026.02.04
如何写好git commit message开发与工程 · 3 分钟
上一篇 · 更早

如何写好git commit message

2026.02.04 · 3 分钟
你可能也想读
ClassPathResource报错cannot be resolved to absolute file path2026.02.04 · 2 分钟↗IDEA编译jdk8并且在源码中执行printf2026.02.04 · 14 分钟↗logback日志路径出现 IS_UNDEFINED 的问题2026.02.04 · 1 分钟↗
林
VitahLin

后端工程师 · 写长文
VitahLin 的个人博客,记录经济观察、股票研究,以及后端开发、分布式系统、数据库与 Redis 的原理和工程实践。