Elasticsearch 5.x设置不建议使用Query

6tdlim6h  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(177)

我有一个关于Elasticsearch的最新版本的问题。
在以前的版本之前,我一直使用以下Java API搜索:

SearchRequestBuilder request = client.prepareSearch(index).setSource(jsonQuery)

现在,setSource已被弃用,建议改用setQuery(QueryBuilder)
是否可以像以前一样传递整个json查询?
这是我使用的查询语法,如果可能的话,我希望保留它:

"{"
+ "\"query\": {"
+ "    \"bool\": {"
+ "      \"filter\": { ... }"
+ "     }"
+ "  },"
+ "  \"fields\": ["
+ "    \"xxx\","
+ "  ],"
+ "  \"size\": 1000"
+ "}";

我不希望使用以下内容拆分几何体、字段和大小:

setQuery(QueryBuilders.wrapperQuery(jsonQuery)).setSize(size).storedFields(fields)
vddsk6oq

vddsk6oq1#

是的,您可以使用QueryBuilders.wrapperQuery(),它将创建一个WrapperQueryBuilder的示例来实现此目的:

SearchRequestBuilder request = client.prepareSearch(index)
    .setQuery(QueryBuilders.wrapperQuery(jsonQuery))
    .setSize(1000)
    .fields("xxx1", "xxx2");

相关问题