gpt4 book ai didi

java - elasticsearch-rest-high-level-client vs elasticsearch-rest-client

转载 作者:行者123 更新时间:2023-12-03 20:05:51 26 4
gpt4 key购买 nike

我是 Elasticsearch 的新手。开始使用 Elastic search 构建 Spring Boot 应用程序。

使用最新的 ES 版本“elasticsearch-7.7.1”并进行集成,我使用以下 maven 依赖项:

 <dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.7.1</version>
</dependency>

我在应用程序启动时遇到了问题,通过添加以下依赖项来解决:
   <dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.7.1</version>
</dependency>

谁能解释为什么elasticsearch-rest-client需要以及它与 elasticsearch-rest-high-level-client 有何不同?

最佳答案

link它在下面提到:

Java Low Level REST Client: the official low-level client for Elasticsearch. It allows to communicate with an Elasticsearch cluster through http. Leaves requests marshalling and responses un-marshalling to users. It is compatible with all Elasticsearch versions.

Java High Level REST Client: the official high-level client for Elasticsearch. Based on the low-level client, it exposes API specific methods and takes care of requests marshalling and responses un-marshalling.



了解更多信息的最佳方法是阅读下面分别是链接的javadocs
  • High Level Rest Client Javadoc
  • Low Level Rest Client Javadoc
  • High Level Rest Client利用 Low Level Rest Client我相信,这意味着,它 扩展类和接口(interface) Low Level Rest Client .

    使用 High Level 的优势超过 Low Level是:
  • 避免开发人员重新编写代码或代码的可维护性和可读性。
  • 帮助开发人员理解 ES 的 API 使用并与之关联,就像使用 Kibana 一样
  • 如果还要使用任何 xpack 功能(图形或 ml),高级客户端 API 具有可用的客户端代码,可以使用这些代码,而无需使用低级 API 重写所有内容。

  • 下面的示例可以帮助我猜测:

    示例 1:获取特定文档

    使用高级休息客户端:
    GetRequest getRequest = new GetRequest("posts", "1");   

    使用低级休息客户端:
    Request request = new Request("GET", "/posts/1");

    示例 2:搜索 API

    使用高级休息客户端:
    SearchRequest searchRequest = new SearchRequest("posts"); 

    您可以引用 this关联

    使用低级休息客户端:

    您需要使用 RequestResponse类(低级)并使用适当的端点
    Request request = new Request("GET", "/posts/_search");

    示例 3:分析文本:

    高级休息客户:

    使用 AnalyzeRequest类(class)

    使用低级休息客户端:

    再次使用 RequestResponse类(class)

    基本上在 High Level Rest Client 上工作就像使用 Elasticsearch 的 API 层(通过 HTTP 包间接工作)而 Low Level纯粹在 HTTP 上工作,即 RequestResponse模型,即更高的抽象。

    希望有帮助!

    关于java - elasticsearch-rest-high-level-client vs elasticsearch-rest-client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62340904/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com