2017-03-21 12 views
1

私のデータフローでは、以前の用語集合からドキュメントのサブセットを取得しようとしていますが、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です。

ありがとうございます!代わりに用語を使用しての

答えて

1

は、利用規約を使用し、それが問題

OR index.query.bool.max_clause_countを解決するフィルタリング:高い値に増加(*推奨されません)

http://george-stathis.com/2013/10/18/setting-the-booleanquery-maxclausecount-in-elasticsearch/

+0

こんにちはプラサド迅速なフィードバックに感謝します!現在、用語フィルタ(またはフィルタコンテキスト内の用語)を使用するのが最適です。 _Filter句はフィルタコンテキストで実行されます。つまり、スコアリングは無視され、句はキャッシュ用に考慮されます。_ キャッシュされないようにする方法は分かりますか?私はドキュメントでそうするヒントを見つけることができないようです。 – user2740775

関連する問題