【问题标题】:RestClient for Elastic Search用于弹性搜索的 RestClient
【发布时间】:2018-04-25 18:35:50
【问题描述】:

我正在尝试从 Elastic 搜索集群中获取数据。 索引名称:testIndex 类型:测试类型 主机:本地主机 端口:8080

我想使用 Elastic Search 5.4 版本并使用 RestClient 我想使用多重匹配查询来获取数据。

示例查询看起来像这样。

GET testIndex/testType/_search
{
  "query": {
    "multi_match": {
      "query":"slabs",
      "fields": ["field1","field2"]
    }
  }
}

最好的方法是什么?我是否可以使用 QueryBuilder 来构建查询并将其与 rest 客户端一起使用。

【问题讨论】:

    标签: java elasticsearch spring-data-elasticsearch elasticsearch-5


    【解决方案1】:

    RestClient 的 QueryBuilder 将在版本 6 发布时可用。将有一个低级和一个高级 REST 客户端。高级 REST 客户端将支持 QueryBuilder。你已经可以在这里玩了:

    QueryBuilder with High Level REST Client

    在此之前,QueryBuilder 对 REST 客户端不可用,因此对于 5.4 版,您需要自己构建查询。有很多方法可以做到这一点。

    一种方法是使用像jTwig 这样的语言模板。 Jettro Coenradie here 解释了如何做到这一点的一个很好的例子。

    【讨论】:

      【解决方案2】:
      RestClient client = new RestClient(serverhost, port,username, password);
      SearchSourceBuilder query = new SearchSourceBuilder();
      SearchRequest searchRequest = new SearchRequest(IndexName);
      searchRequest.source(query);
      SearchResponse searchResponse = restClient.search(IndexName , query);
      

      您应该使用 Rest 客户端来创建与 elasticsearch 的连接,对于查询请求和搜索响应,您应该使用 SearchSourceBuilder 和 SearchRespons。对于查询,您可以使用弹性搜索的 QueryBuilders。

      【讨论】:

        猜你喜欢
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-23
        • 2018-11-25
        • 2016-09-22
        • 2018-10-26
        • 2018-12-07
        • 2020-04-13
        相关资源
        最近更新 更多