elasticsearch - 为什么有这么多 ES java 客户端?

标签 elasticsearch

传输客户端已在 ES 8 中删除;高级别休息客户端已弃用并将被删除; ES 8 中使用了新的 Java API 客户端。

但是 .Net 自 2x 以来就拥有相同的高级 Elasticsearch .NET 客户端。为什么有这么多 ES java 客户端?

最佳答案

简而言之,由于历史原因,出现了一些 Java 客户端。

传输客户端使用 Elasticsearch 的传输协议(protocol),该协议(protocol)是节点相互通信的协议(protocol)。如果客户端与集群的版本不同,可能会出现兼容性问题。 Java 客户端是唯一使用传输协议(protocol)的客户端,而其他所有客户端都使用 http 协议(protocol)。

High Level Rest Client (HLRC) superseded the Transport client并使用http协议(protocol)。这是朝着正确方向迈出的一步,但是,客户端仍然依赖于 Elasticsearch 中的类型。

新的 Java 客户端取代了 HLRC,并且是 completely decoupled from Elasticsearch 。客户端的大部分 API 表面都是根据 API 规范生成的,从而提供了更易于维护和一致的 API 表面。

顺便说一句,虽然自 1.x 以来 .NET 客户端(Elasticsearch.Net 和 NEST)就有一致的 Nuget 包,但客户端在这段时间经历了相当大的演变,主要版本之间发生了重大变化。 There's a new .NET for 8.x too (alpha 版本):)

关于elasticsearch - 为什么有这么多 ES java 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71701666/

相关文章:

elasticsearch - 如何使用ReactiveElasticsearchTemplate检索匹配和汇总

elasticsearch - Elasticsearch Reindex是否将旧数据保留在目的地

ubuntu - elasticsearch的最大线程数太低

elasticsearch - 使用Logstash通过单个配置文件将数据馈送到输出插件中的多个elasticsearch “clusters”

elasticsearch - 在has-child查询中从子项中获取某些字段

elasticsearch - Elasticsearch集群中所有节点的滚动节点重启

random - ElasticSearch 每天一致的排序顺序,但跨天随机化

elasticsearch - ES查询忽略时间范围过滤器

java - 如何通过java将数据发布到elasticsearch?

elasticsearch - 我应该使用嵌套对象还是普通字段?