当前位置: 首页 > 知识库问答 >
问题:

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

韩玉石
2023-03-14

目前,我们正在使用spring数据elasticsearch 3.2.6 elasticsearch 6.8。我们正在转向新的elasticsearch 7。x、 我必须将spring数据elasticsearch更新为4吗。x?我们只在spring数据elasticsearch中使用ElasticsearchRepository。我们不需要在elasticsearch 7中使用任何新功能。x。

如果我们将来要迁移到elasticsearch 8. x,我需要更新spring-data-elasticsearch吗?

更新:

Spring Data Elasticsearch在引擎盖下使用了什么Elasticsearch客户端?

“Elasticsearch chRepository”中的所有方法都已弃用。我应该使用什么?

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

  1. 模板操作:

弹性搜索模板实现了弹性搜索操作。它使用TransportClient(在ES 7中已弃用,在ES8中已删除)

Elasticsearch chRestTemboard实现ElasticSearchAction。它使用高级客户端(在ES 7.16.0中已弃用。它将在未来被删除。@Deprecated(自="7.16.0",forRemval=true))

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

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

反应性Elasticsearch存储库构建在反应性ElasticSearchOperations的基础上。

由于底层TransportClient或HigLevelRestClient已被弃用,我能否断定正确的方法是使用反应式客户端(ReactiveElasticsearchTemplate或ReactiveElasticSearch存储库)?

共有1个答案

戈巴英
2023-03-14

新的Elasticsearch将是8。

Val已经在他的评论中加入了兼容性矩阵的链接。

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

您可以尝试的第一件事是查看您的应用程序是否适用于7集群——尽管我对此表示怀疑,但我不能确切地告诉您API中发生了什么变化,但确实有一些东西。

您不应该在类路径上放置比Spring Data Elasticsearch构建时使用的库更新的Elasticsearch库,这在大多数情况下会产生问题。

但是我建议无论如何升级您的应用程序并定期更新它。

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

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

 类似资料:
  • 我是ElasticSearch的新手... 非常喜欢API(特别是ElasticsearchTemplate&支持单元测试)... 使用ElasticSearch 5.5.0(以下链接内联了完整的代码,也可以作为可下载的zip文件提供)执行此示例: https://www.mkyong.com/spring-boot/spring-boot--data-elasticsearch-example/

  • 我正在配置elasticsearch spring应用程序,并遵循我创建的RestHighLevelClient文档: 现在我希望我所有的文档都有snake_case的命名策略,在文档上这是我发现的: 在没有进一步配置的情况下,Spring Data Elasticsearch将使用对象的属性名称作为Elasticsearch中的字段名称。这可以通过使用该属性上的@Field注释来更改单个字段。

  • 问题内容: 我只是不明白发生了什么。我的go应用程序无法连接到elasticsearch。该节点可用,已启动并正在运行。我在这里做错了什么? 这里有什么不对的地方?错误说 这是我在浏览器中命中GET请求时从elasticsearch返回的数据 } 问题答案: 当您继续在客户端中进行嗅探但群集没有可用节点时,通常会发生错误。您可以通过点击来检查集群的状态。 如果您不禁用嗅探功能,则Golang客户端

  • 这简化了代码返回以下错误: 很奇怪,因为服务器已经准备好并设置好了(http://localhost:9200/ 返回了一些json)。

  • 我们正在AWS上运行elasticsearch,目前支持elasticsearch 6.3作为最新版本。 我们有一个业务案例,需要每天更新索引中的所有文档并删除一个嵌套对象。elasticsearch通过查询API进行了更新,这将解决我们的问题。 但在我们的java应用程序中,我们使用的是java高级rest客户端。rest客户端版本6.5支持按查询更新api。现在,如果我们将rest客户端升级到

  • 我有一个Spring Boot应用程序,我使用ElasticsearchTemplate连接到我的ElasticSearch。然而,当它工作时,我关闭了Elasticsearch,每次我使用ElasticTemplate方法时,我都会得到一个组织。elasticsearch。客户运输NoNodeAvailableException。这很好,因为ElasticSearch不起作用。 然而,当Elas