I have a question regarding the last version of Elasticsearch.
Until the previous version I was using the following Java API search:
SearchRequestBuilder request = client.prepareSearch(index).setSource(jsonQuery)
Now setSource
is deprecated and it is recommended to use setQuery(QueryBuilder)
instead.
Is it possible to pass the whole json query as before?
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:
SearchRequestBuilder request = client.prepareSearch(index)
.setQuery(QueryBuilders.wrapperQuery(jsonQuery))
.setSize(1000)
.fields("xxx1", "xxx2");