不推荐使用Elasticsearch 5.x setQuery

时间:2016-11-17 11:09:53

标签: elasticsearch elasticsearch-java-api elasticsearch-5

我对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)

1 个答案:

答案 0 :(得分:0)

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

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