0

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

1 回答 1

0

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

SearchRequestBuilder request = client.prepareSearch(index)
    .setQuery(QueryBuilders.wrapperQuery(jsonQuery))
    .setSize(1000)
    .fields("xxx1", "xxx2");
于 2016-11-17T12:44:28.763 回答