ElasticSearch bool查询请求

ElasticSearch bool query request

我正在尝试将此查询转换为 java 代码 (HighLevelRestClient):

{
   "query":{
     "bool": {
       "must": [
         {
           "query_string": {
              "query": "((\"PUT\" OR \"POST\") AND \"REST\" AND (\"BRI\" OR \"BRIEXT\" OR \"TMP\"))"
            }
         }
       ]
     }
   }
}

我用邮递员试过这个请求,它工作正常,我想用 elasticSearch restshighlevel 客户端试一下。

QueryBuilder matchQueryBuilder = QueryBuilders.boolQuery().must();

我不知道在must里面放什么。

有人可以帮我解决这个问题吗?

您可以使用 queryStringQuery 方法,如 official documentation

中所述

以下代码片段使用 high level RestClient

String query =  "((\"PUT\" OR \"POST\") AND \"REST\" AND (\"BRI\" OR 
 \"BRIEXT\" OR \"TMP\"))";

QueryBuilder matchQueryBuilder = QueryBuilders.boolQuery().must(new 
QueryStringQueryBuilder(query));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(matchQueryBuilder);

SearchRequest searchRequest = new SearchRequest();
// set the indices you want to search in.
searchRequest.indices("your-index");
searchRequest.source(searchSourceBuilder);

// execute the query
SearchResponse response = hlRestClient.search(searchRequest, header);
SearchHits hits = response.getHits();