Elasticsearch Spring 数据与 RestHighLevelClient

Elasticsearch Spring Data with RestHighLevelClient

我不明白高级 REST 客户端(它取代了传输客户端)和 Spring Data Elasticsearch 之间的关系。

有一些教程 (https://www.baeldung.com/spring-data-elasticsearch-tutorial) 展示了如何使用 getSomethingById() 等自动实现的方法进行 JPA 样式的查询。他们使用这个界面:

public interface ElasticsearchRepository<T, ID extends Serializable> extends ElasticsearchCrudRepository<T, ID> {

但是 ElasticsearchRepository 似乎需要一个带有 ElasticsearchTemplate-Bean 的 @Configuration-Class 并且需要 TransportClient。据我所试,没有办法用 High/Low 级别 Java Rest Clients 替换它,不是吗?

所以如果我想使用最新的官方客户端,没有适合我的 JPA?

Spring Data ES 存储库中有一个关于此的未解决问题:https://jira.spring.io/browse/DATAES-407

spring-data-elasticsearch 3.2.0,现在可用,因为 M2 包含使用 RestClient 的代码。

查看我对这个问题的回答: 了解如何设置

Spring Data Moore 已发布包含此功能(2019 年 10 月 8 日)。这是主要说明:

Elasticsearch: High Level REST Client support & non Jackson based entity mapping

如果您需要更多详细信息,您可以查看此 jira 问题:

https://jira.spring.io/browse/DATAES-407 了解更多详情