将elasticsearch CURL请求转换为java

问题描述 投票:0回答:1

我有以下功能正常的卷曲请求

curl -X POST "localhost:9200/search_request/_search" -H 'Content-Type: application/json' -d '{
  "query": {
    "bool": {
      "must": {
        "exists": {
          "field": "logRequestId"
        }
      }
    }
  }
}'

现在,我想要获取 java 代码来执行此操作。

我知道有多种方法,例如

SearchSourceBuilder
在 Rest High Level 客户端中执行此操作。但我的弹性客户端是低级别的。以下是我建立与 ES 客户端的连接的代码

RestClient restClient = RestClient.builder(new HttpHost(elasticsearchHostname, elasticsearchPort)).build();
        ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        this.esClient = new ElasticsearchClient(transport);

有什么方法可以在生产就绪的代码中实现目标吗?

java elasticsearch
1个回答
0
投票

应该是这样的:

SearchResponse<Void> response = esClient.search(sr -> sr
    .index("search_request")
    .query(q -> q.exists(eq -> eq.field("logRequestId")))
, Void.class);

我将其添加为我的演示项目中的测试。 我还建议阅读这篇博客文章

© www.soinside.com 2019 - 2024. All rights reserved.