Spring Data Elasticsearch 的哪些版本支持特定版本的 Elasticsearch?

Which versions of Spring Data Elasticsearch support particular versions of Elasticsearch?

根据我目前的研究,spring-boot-starter-data-elasticsearch:2.1.5.RELEASE 似乎只支持 Elasticsearch < 5.0.0(基于 version support matrix)。考虑到 ES 的版本 8.x,我会说这是很旧的。

Internet 上所有(有效的)"Hello, world!" 示例都使用 5.x,或者可能 6.x。

您似乎被 Wiki 中的一些过时信息所困。这个问题需要根据特定 Spring Data Elasticsearch 版本支持哪个 ES 客户端版本来回答。反过来可以与哪个 ES 服务器版本通信,取决于您使用的驱动程序中的哪个客户端 API。

传统上,Spring Data Elasticsearch 使用传输客户端,要求服务器 运行 与客户端 运行 在同一主要版本中。当前 Spring Data ES(3.1.x,Spring 数据发布火车 Lovelace 的一部分,由 Spring Boot 2.1 使用)针对 ES 客户端 6.2.2 构建。您也许可以使用较新的客户端驱动程序,但不幸的是,即使是我们(Spring Data ES 和 Spring Boot)无法始终适应的次要版本,它们也经常附带重大 API 更改。也就是说,这个 Spring Data ES 版本已经附带了一个实现,允许您通过一些手动设置来使用高级 REST 客户端。

即将发布的版本火车 Moore 会将客户端库升级到 6.8,并且仍然保留在传输客户端上,即仅使用 ES 6 服务器 OOTB。但是,刚才描述的相同过程适用:您应该能够通过在 Spring 启动应用程序中切换到高级 REST 客户端来使用 7.x 客户端库和服务器。可以找到文档的预览 here.

created a ticket to update and unify the information. The PR 应该会加入即将发布的 GA 版本。

路线图

经过对维护者结构的一些重新安排,该项目最近出现了相当大的势头。计划为下一个 Spring 数据发布系列(在撰写本文时可能命名为 Neumann)对模块进行重大改造。从 Spring 引导自动配置的角度来看,这很可能包括切换到高级 REST 客户端作为默认操作模式。

其他

Spring Data Elasticsearch 是一个 Spring 数据社区模块,也就是说,它完全由志愿者维护,他们在很大程度上利用业余时间帮助推动项目向前发展。这意味着它在支持最新版本的 ES、特性等方面可能会有点落后。我们欢迎每一个贡献,欢迎所有愿意支持当前维护者的人。