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