目前我们正在进行春季数据弹性搜索3.2.6+弹性搜索6.8。我们将转到新的弹性搜索7.x。我必须将春季数据弹性搜索更新到4.x吗?我们只在春季数据弹性搜索中使用ElasticsearchRepository。我们不需要在弹性搜索7.x.中使用任何新功能
如果我们将来要转向elasticsearch8.x,我需要更新春季数据elasticsearch吗?
更新:
Spring Data Elasticsearch到底使用了什么Elasticsearch客户端?
不赞成使用"ElasticsearchRepository"中的所有方法。我应该使用什么?
我在上面的帖子中发现了一些讨论。这是我的总结。
- 使用模板的操作:
ElasticsearchTemplate实现ElasticSearch操作。它使用TransportClient(在ES7中已弃用,在ES8中已删除(
ElasticsearchRestTemplate实现ElasticSearch操作。它使用高级客户端(在ES 7.16.0中已弃用。它将来会被删除@已弃用(由于="7.16.0",对于Removal=true(
ReactiveElasticsearchTemplate实现ReactiveElisticsearchOperations。它使用反应式客户端。
- 存储库
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,还因为这些更新总是包括错误和/或安全修复。