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

弹性搜索高/低rest客户端vs spring rest模板

闾丘德宇
2023-03-14

在es中搜索时,如何使用spring的rest模板或elasticsearch自己的高/低rest客户端,我左右为难。与spring rest模板相比,es客户端是否提供了HTTP连接池、性能等方面的任何优势。这两个模板中的哪一个在从服务器获取响应时花费的时间更少。请有人解释一下?

共有3个答案

长孙瑞
2023-03-14

关于使用Spring数据弹性搜索的一个重要注意事项和警告。目前,Spring Data Elasticsearch不支持通过高级REST客户端API进行通信。他们正在使用传输客户端。请注意,自Elasticsearch 7.0.0起,TransportClient已被弃用,预计将在Elasticsearch 8.0中删除!!!

仅供参考,该声明已被另一篇文章证实:使用Spring Data Elasticsearch的Elasticsearch Rest客户端

卢元龙
2023-03-14

首先,这是一个非常宽泛的问题。不确定它是否符合SO指南。

但我的两分钱:

  • 高级客户端使用低级客户端提供连池
  • 高级客户端管理Elastisearch查询正文和响应的编组和解组,因此使用API可能更容易。

另一方面,如果您通过提供JSON主体熟悉Elasticsearch查询,那么您可能会发现在JSON主体和用于创建查询的Java类之间进行转换有点困难(例如,当您使用Kibana控制台或其他REST API工具时)

我通常通过记录JavaAPI生成的查询来克服这个问题,这样我就可以将它与Kibana控制台或其他REST API工具一起使用。

关于哪一个是有效的 - 库对响应时间的影响不大。

如果您想使用Spring的反应特性,并利用< code>WebClient,es库确实提供了对异步搜索的支持。

更新:

请查看下面Wim Van den Brande的答案。他提到了使用传输客户端的一个非常有效的观点,该观点已因REST API而被弃用。

因此,看看RestTemplate或Spring Data ElasticSearch将如何更新他们的API以取代TransportClient会很有趣。

张翰海
2023-03-14

使用Spring数据弹性搜索的最大优点是,您不必为将POJO域类中的请求/请求正文/响应转换为弹性搜索所需的JSON之类的事情而烦恼。您只需使用由 *模板 类实现的弹性搜索操作类中定义的方法。

或者向上一个抽象层,使用所有Spring数据模块提供的存储库接口来存储和搜索/检索您的数据。

 类似资料:
  • 我正在尝试将我的弹性搜索(6.6.1)、spring boot(2.1.3)应用程序从Java8迁移到Java11。之前,我使用高级java rest客户端创建和搜索索引。因为存在一个问题(https://github.com/elastic/elasticsearch/issues/38299)在模块化高级rest客户端api时,我试图使用低级rest客户端,但无法获得任何搜索结果。 请看一些代

  • 通过以下命令,我可以查看弹性搜索部署的endpoint,并且从Postman那里没有任何问题:GET https://:@d97215aee2.us-east-1.aws.found.io:9243 我也可以使用邮递员的这个命令创建索引...将https://el弹力:4yqimxfosz9mxpgy1fj7t5bu@d97218f74f6d48489b355dd7d665aee2.us-east

  • 我们正在spring boot开发一个弹性搜索应用程序。我们不能使用弹性搜索提供的Java API或Java Rest客户端API。相反,我们需要使用spring的rest模板在弹性中进行操作,但是弹性似乎不接受来自rest客户端的索引请求,我们得到了“不接受”的回复。如果有人给我们一些提示或信息,我真的很感激。 弹性版:5.6

  • 我有一个在spring boot应用程序中创建弹性搜索索引的代码。目前使用的客户端是transport客户端,它现在根据弹性搜索文档进行折旧,现在被高级Rest客户端取代。 用于使用高级Rest客户端创建索引。我见过这个代码。 这里的fieldsMapping是一个json文件,它包含有关analyzer、tokenizer和filter的详细信息,并作为字符串传递给这个方法。我无法在java r

  • 我们不允许寻求书籍、工具、软件库等推荐的问题。你可以编辑这个问题,以便用事实和引用来回答。 我是弹性搜索的初学者,正在寻找将弹性搜索与Spring boot相结合的最佳方式。 我不确定使用以下哪一项:- > Spring数据弹性搜索 开玩笑 谢谢

  • 我对弹性搜索和Spring都不熟悉。我已经编写了一个Javascript POC,它将JSON字符串转换为Elasticsearch查询(并执行请求)。它需要这样的字符串: (注意:此查询可能有任何嵌套级别) ... 并将其转化为: 它首先为第一次访问Elasticsearch创建一个查询(类似于上述),以提取构建此查询所需的一些信息(“链接”)。每次访问Elasticsearch都可能返回数百万