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

Spring启动应用程序与当前的弹性搜索版本

田德馨
2023-03-14

我最近试图将弹性搜索纳入我的一个项目。因此,我查找了这样做的不同可能性。它基本上归结为使用a)传输客户端(内部协议集群节点也用于通信=我的理解)或b)将其全部实现为我自己的REST HTTP调用。

因为b)看起来不是一个好的选择,而且我已经习惯了spring数据。无论如何,我尝试使用spring数据elasticsearch,它最近更新到版本3.0.0,以支持es 5.5.0,这非常好,因为上一个版本非常旧。

好吧,我尝试了所有方法,但没有设法让它与我的项目一起工作,因为这似乎真的是你进入的某种依赖地狱。我的项目太大了,我只是无法将其升级到Spring boot 2.0.0M4,我认为这是支持新的Spring数据弹性搜索版本所必需的 - 对吧?

那么,有人能就目前和未来如何在Spring项目中处理elasticsearch的当前和首选方式提出建议吗?我们真的必须自己实现整个REST API吗?我错过了什么吗?

这是应该使用的REST客户端,如果有使用的话,对吗?

这是我知道的旧的兼容性图表。

谢谢!

共有2个答案

赏开宇
2023-03-14

在spring boot 2中编写一个小的服务,它将是一个独立的应用程序,具有最新的ES依赖性,并为它提供一个REST API来兼容您对项目其余部分的需求,这样如何?首先,您可以通过RestTemplate与它通信。

通过这种方式,您可以开始将大型项目分解为更小的子项目,最终甚至可能是微服务。此外,Spring boot 2有一些非常好的反应式选项,这些选项对于处理数据非常有用。

席嘉祯
2023-03-14

不幸的是,有很多选择:

    < li >这就是你提到的运输客户。虽然还没有被弃用,但这不是前进的方向,我不会用它开始一个新项目(如果可能的话)。 < li >有一个低级REST客户端(在你链接的博客文章中提到过),它是在5.0中添加的,但也兼容旧版本。虽然它可以工作,但你并不真的想使用它,因为它非常低级(顾名思义)。 < Li > 5.6版中刚刚发布了高级REST客户端,这是您未来想要使用的版本(它将使您脱离特定的Spring Boot /数据版本)。目前它只支持索引、删除、聚集、搜索和批量API,但是对于常规操作来说,这已经足够了。将来会添加更多的API,如果您需要执行其他任务(比如为集成测试设置特定的映射),您可以随时返回到低级客户端。 < li >随着Spring Data Kay的发布,它还支持Elasticsearch 5.x。如果您需要使用Spring Data,这将是您想要使用的,但请记住,这是一个社区项目,开发速度可能比每个人希望的要慢(尽管他们接受拉请求;-) ).正如您已经发现的,您需要使用Spring Boot 2来内置Spring Data Kay。这可能是升级的好理由,也可能是你的阻碍。
 类似资料:
  • 我是弹性搜索的新手。我们正在构建一个具有弹性搜索功能的Spring启动应用程序。 目前,我们必须使用。 哪一个最新版本的弹性搜索最稳定地与 使用依赖项是与弹性搜索集成的最佳选项吗 如果我们将来升级spring boot版本或降级ES版本会怎么样

  • 我正在使用elasticsearch7。5、我已打开以下属性 我已经生成了API密钥来将我们的springboot连接到elasticsearch。我正在使用 我的所有请求都来自“RestHighClient”,并且能够触发请求。唯一的问题是在服务器启动期间,它们是一些无法连接到Elasticsearch的错误。 在pom中。xml 在应用程序属性中: 有人能给我提个建议吗,我怎样才能解决它。

  • 我有一个Spring Boot应用程序,我想在其中单独使用弹性搜索2.2.0(而不是嵌入式服务器),我想使用Spring Data弹性搜索,那么Spring Data支持的弹性搜索版本是什么,我如何配置它以连接到运行在localhost:9200中的弹性搜索实例? 实际上,我尝试在application.properties文件中添加以下选项: 后来,我创建了这个配置类: 我得到了这个StackT

  • 我试图用Spring Boot和弹性搜索设置一个应用程序。这个应用程序已经使用Spring Data JPA存储库来持久化我的实体。当我试图在启用弹性搜索配置的情况下运行应用程序时,我遇到的问题是,当存储库被扫描时,我得到了一个异常。 我得到了以下例外: 我的存储库的定义如下: 异常似乎是由于count查询的签名导致的,该签名返回一个int。尽管这个存储库可以很好地处理JPA,但它会抛出一个异常,

  • 我在研究弹性搜索查询。我不能理解这个问题: 我读过这篇文章,但不清楚:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-term-query.html 1-第二个“term”是什么? 2-boost的用法是什么? 3-如何使用一个或多个term进行查询: 名为“title”的字段必须包含:

  • 在 cmd 中运行 elasticsearch.bat :