我可以使用旧的spring数据elasticsearch连接到新的elasticsearch吗



目前我们正在进行春季数据弹性搜索3.2.6+弹性搜索6.8。我们将转到新的弹性搜索7.x。我必须将春季数据弹性搜索更新到4.x吗?我们只在春季数据弹性搜索中使用ElasticsearchRepository。我们不需要在弹性搜索7.x.中使用任何新功能

如果我们将来要转向elasticsearch8.x,我需要更新春季数据elasticsearch吗?

更新

Spring Data Elasticsearch到底使用了什么Elasticsearch客户端?

不赞成使用"ElasticsearchRepository"中的所有方法。我应该使用什么?

我在上面的帖子中发现了一些讨论。这是我的总结。

  1. 使用模板的操作:

ElasticsearchTemplate实现ElasticSearch操作。它使用TransportClient(在ES7中已弃用,在ES8中已删除(

ElasticsearchRestTemplate实现ElasticSearch操作。它使用高级客户端(在ES 7.16.0中已弃用。它将来会被删除@已弃用(由于="7.16.0",对于Removal=true(

ReactiveElasticsearchTemplate实现ReactiveElisticsearchOperations。它使用反应式客户端。

  1. 存储库

ElasticsearchRepository使用TransportClient作为默认值。ElasticsearchRepository中的所有方法现在都已弃用。

Reactive Elasticsearch存储库建立在ReactiveElasticsearchOperations之上。


由于底层TransportClient或HigLevelRestClient已被弃用,我是否可以得出结论,正确的方法是使用Reactive Client(ReactiveElasticsearchTemplate或Reactive Elasticsearch存储库(?

新的Elasticsearch将为8。

瓦尔已经在他的评论中添加了兼容性矩阵的链接。

3.2.6版本非常过时(2020年3月25日(,自2020年10月起不再支持。

你可以尝试的第一件事是看看你的应用程序是否能与7集群一起工作——尽管我对此表示怀疑,但我不能告诉你API到底发生了什么变化,但还是有一些东西。

您应该而不是将较新的Elasticsearch库放在类路径上,而不是使用Spring Data Elasticsearch构建的库,这在大多数情况下都会造成问题。

但我还是建议升级你的应用程序,并定期更新它。

至于未来升级到版本8:可以在您的请求中发送兼容标头(这可以在Spring Data Elasticsearch 4中完成(,Elasticsearch集群应该以与期望版本7的客户端兼容的格式响应。我写了应该的,因为并不是每个案例都符合这一点——我报告了一个现在已经修复的案例。但我不会相信这一点。

同样,请更新您的应用程序并使其保持最新,这不仅是因为Spring Data Elasticsearch,还因为这些更新总是包括错误和/或安全修复。

最新更新