java - ElasticSearch bool 查询请求

标签 java rest elasticsearch request client

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

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

我用 postman 尝试了这个请求,它工作正常,我想用 elasticSearch resthighlevel 客户端试试。
QueryBuilder matchQueryBuilder = QueryBuilders.boolQuery().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();

关于java - ElasticSearch bool 查询请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49256824/

相关文章:

java - 是否可以使用基于表单的身份验证进行基于 URL 的身份验证?

java - 无法运行Maven和Spring Boot打包的可执行jar

java - 创建一个 Student 将其传递给 SQL 对象并在线程 "AWT-EventQueue-0"lang.ArrayIndexOutOfBoundsException : 4 中获取异常

architecture - REST 和 RESTful 有什么区别

java - 给定最终 block 的 AES 加密未正确填充

ruby-on-rails - 将表单发送到其内容的 url

json - 我的 API 是否应该将 JSON 数据嵌套在父对象中?

elasticsearch - 我已经安装了 Elasticsearch 2.1.0

mongodb - 为 Elasticsearch 设置 MongoDB River

elasticsearch - 使用elasticsearch_dsl获取所有行