私のデータフローでは、以前の用語集合からドキュメントのサブセットを取得しようとしていますが、ESクラスタ内のmaxClauseCount制限に達しています。フォローアップクエリは、これらの線に沿っている: - 悲しいことに私たちが使用することはできません - だけでなく、IDSクエリmaxClauseCountを拡張せずに大量のクエリをクエリする
私の研究でGET dataset/_search
{
"size": 2000,
"query": {
"bool": {
"must": [
(a filter or two)...,
{
"terms":{
"otherid":[
"789e18f2-bacb-4e38-9800-bf8e4c65c206",
"8e6967aa-5b98-483e-b50f-c681c7396a6a",
...
]
}
}
]}
}
}
私は、ルックアップに遭遇しました。実験から
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html
は、(潜在的にそれが条件句に変換されていない)IDSクエリが用語のクエリが持つ限界を共有しないことが表示されます。 idsフィールドを使用せずにidクエリと同様の機能を実現する良い方法があるかどうかは知っていますか?
私のESのバージョンは5.0です。
ありがとうございます!代わりに用語を使用しての
こんにちはプラサド迅速なフィードバックに感謝します!現在、用語フィルタ(またはフィルタコンテキスト内の用語)を使用するのが最適です。 _Filter句はフィルタコンテキストで実行されます。つまり、スコアリングは無視され、句はキャッシュ用に考慮されます。_ キャッシュされないようにする方法は分かりますか?私はドキュメントでそうするヒントを見つけることができないようです。 – user2740775