RestClient for Elastic Search

问题描述 投票:2回答:2

我试图从弹性搜索集群中获取数据。索引名称:testIndex类型:testType主机:localhost端口:8080

我想使用Elastic Search 5.4版本并使用RestClient我想使用multimatch查询获取数据。

示例查询看起来像这样。

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

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

java elasticsearch spring-data-elasticsearch elasticsearch-5
2个回答
0
投票

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

QueryBuilder with High Level REST Client

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

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


0
投票
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。

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