Elasticsearch 5.x setQuery 已弃用

Elasticsearch 5.x setQuery deprecated

我对最新版本的 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)

是的,您可以使用 QueryBuilders.wrapperQuery() which will create an instance of WrapperQueryBuilder 来实现此目的:

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