2016-07-12 4 views
0

サブ集計ではなく、特定のキーワード値に興味があります。複数のフィルタ集約とすべてのバケットの返信との比較

"aggregations" : { 
     "Keyword" : { 
      "terms" : { 
      "field" : "keyword" 
      }, 
     "aggregations" : { 
      "Concept" : { 
      "terms" : { 
      "field" : "concept" 
      } 
     } 

私は面白いよ値が含まれている必要はない以下のリターンのみのトップ10最初は、

私は私の問題を解決するには主に2つの方法を参照してください。戻っ

  • をすべてのバケツを選択し、私が興味を持っているものを選択してください。
  • 私は興味深いすべての値に対してフィルタ集計を追加します。したがって、10のキーワード/値で面白い場合、10個のフィルタ集計を実行します。

パフォーマンス面で最適なソリューションは何ですか?

+0

私は要件を理解していません。多分例を挙げることができますか? –

答えて

0

もし私が10個のキーワード/値で面白いとすれば、私は10個のフィルター集計を行います。

これは必ずしも真実ではありません。

あなたが不要なキーワードを排除し、単一のフィルタを作成することができますし、クエリの段階で、この先行投資を行うことができます。

{ 
    "size" : 0, 
    "query" : { 
    "bool" : { 
     "filter" : [ 
     { 
      "terms" : { 
      "keyword" : [ "abc", "def", "ghi" ] 
      } 
     } 
     ] 
    } 
    }, 
    "aggs" : { 
    "Keyword" : { 
     "terms" : { 
     "field" : "keyword" 
     }, 
     "aggs" : { 
     "Concept" : { 
      "terms" : { 
      "field" : "concept" 
      } 
     } 
     } 
    } 
    } 
} 

クエリ段は、ちょうどabcにそれを絞り込むdef、およびghiでしょう。集計は期待通りに機能しますが、それらの値を持つ文書に対してのみ機能します。

関連する問題