使用 spring-data-elasticsearch 4.4 和 elasticsearch 7.16 的“ElasticsearchOperations”公式
`ElasticsearchOperations` formulation with spring-data-elasticsearch 4.4 and elasticsearch 7.16
elasticsearch 7.16之前,ElasticsearchOperations
可以用RestHighLevelClient
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
try {
RestClientBuilder restClientBuilder = RestClient.builder(httpHosts)
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(getElasticCredentialsProvider())
.setKeepAliveStrategy((response, context) -> 3 * 60 * 1000));
return new ElasticsearchRestTemplate(restHighLevelClient);
} catch (final Exception e) {
throw new RuntimeException(e);
}
}
现在 RestHighLevelClient 已弃用,我找不到新的 class 来从提供的新 Java client 中获取弹性搜索操作。
发挥作用的依赖项是
spring_elasticsearch = 'org.springframework.data:spring-data-elasticsearch:4.4.0-M2'
我目前正致力于将新的 Elasticsearch 客户端集成到 Spring Data Elasticsearch 中。我们将在下一个次要版本 (4.4) 中仍然是 RestHighLevelClient
,但作为可选方案提供使用新客户端的可能性。
新客户端还不具备与 RHLC 相同的功能,并且仍然存在一些错误(您可能想看看 it's issue list),因此我们无法替换它,但最重要的在当前版本中不使用它的原因是新客户端引入 jakarta
包而不是 javax
,默认情况下切换到新客户端会破坏许多现有应用程序。
在 Spring Data Elasticsearch 5.0 之前无法完成完全替换,它将使用 Spring 6,集成在 Spring Boot 3 中,因为 Jakarta EE9 将仅与这些版本一起使用.
在我看来,Elasticsearch 不应该在次要版本(ES 7.15 -> 7.16)的切换中弃用 RHLC,同时提供引入重大更改的不完整替代方案。
所以目前我们不得不接受这样一个事实,即 Spring Data Elasticsearch 需要使用已弃用的 class。
elasticsearch 7.16之前,ElasticsearchOperations
可以用RestHighLevelClient
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
try {
RestClientBuilder restClientBuilder = RestClient.builder(httpHosts)
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(getElasticCredentialsProvider())
.setKeepAliveStrategy((response, context) -> 3 * 60 * 1000));
return new ElasticsearchRestTemplate(restHighLevelClient);
} catch (final Exception e) {
throw new RuntimeException(e);
}
}
现在 RestHighLevelClient 已弃用,我找不到新的 class 来从提供的新 Java client 中获取弹性搜索操作。
发挥作用的依赖项是
spring_elasticsearch = 'org.springframework.data:spring-data-elasticsearch:4.4.0-M2'
我目前正致力于将新的 Elasticsearch 客户端集成到 Spring Data Elasticsearch 中。我们将在下一个次要版本 (4.4) 中仍然是 RestHighLevelClient
,但作为可选方案提供使用新客户端的可能性。
新客户端还不具备与 RHLC 相同的功能,并且仍然存在一些错误(您可能想看看 it's issue list),因此我们无法替换它,但最重要的在当前版本中不使用它的原因是新客户端引入 jakarta
包而不是 javax
,默认情况下切换到新客户端会破坏许多现有应用程序。
在 Spring Data Elasticsearch 5.0 之前无法完成完全替换,它将使用 Spring 6,集成在 Spring Boot 3 中,因为 Jakarta EE9 将仅与这些版本一起使用.
在我看来,Elasticsearch 不应该在次要版本(ES 7.15 -> 7.16)的切换中弃用 RHLC,同时提供引入重大更改的不完整替代方案。
所以目前我们不得不接受这样一个事实,即 Spring Data Elasticsearch 需要使用已弃用的 class。