简体   繁体   English

Elasticsearch 5.x setQuery已弃用

[英]Elasticsearch 5.x setQuery deprecated

I have a question regarding the last version of Elasticsearch. 我对Elasticsearch的最新版本有疑问。

Until the previous version I was using the following JAVA API search: 在使用之前的版本之前,我一直在使用以下JAVA API搜索:

SearchRequestBuilder request = client.prepareSearch(index).setSource(jsonQuery)

Now setSource is deprecated and it is recommended to use setQuery(QueryBuilder) instead. 现在不建议使用setSource,建议改用setQuery(QueryBuilder)。

My question is the following, is it possible to pass the whole json query as before? 我的问题如下,是否可以像以前一样传递整个json查询?

Thanks in advanced 提前致谢

[Edit] [编辑]

This is the query syntax I was using and I would like to keep if it is possible: 这是我使用的查询语法,如果可能的话,我想保留以下语法:

"{"
+ "\"query\": {"
+ "    \"bool\": {"
+ "      \"filter\": { ... }"
+ "     }"
+ "  },"
+ "  \"fields\": ["
+ "    \"xxx\","
+ "  ],"
+ "  \"size\": 1000"
+ "}";

I do not want to split body, fields and size using: 我不想使用以下方式拆分正文,字段和大小:

setQuery(QueryBuilders.wrapperQuery(jsonQuery)).setSize(size).storedFields(fields)

Yes, you can use QueryBuilders.wrapperQuery() which will create an instance of WrapperQueryBuilder in order to achieve this: 是的,您可以使用QueryBuilders.wrapperQuery()来创建WrapperQueryBuilder的实例,以实现此目的:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM