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 に答える