我对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)
答案 0 :(得分:0)
是的,您可以使用QueryBuilders.wrapperQuery()
来创建WrapperQueryBuilder
的实例,以实现此目的:
SearchRequestBuilder request = client.prepareSearch(index)
.setQuery(QueryBuilders.wrapperQuery(jsonQuery))
.setSize(1000)
.fields("xxx1", "xxx2");