2017-04-04 8 views
0

私は、レスポンスの一部ではないドキュメントの集計キー/カウンタを取得できるかどうか疑問に思っていました。私はsum_other_doc_countフィールドに入れられたドキュメントを意味します。ElasticSearch Multi Aggregation

集計のための私のコードは次の通りである:

AggregationBuilder agg = AggregationBuilders.terms("AGG_1").field("field1") 
      .subAggregation(AggregationBuilders.terms("AGG_2").field("field2") 
        .subAggregation(AggregationBuilders.terms("AGG_3").field("field3") 
          .subAggregation(AggregationBuilders.terms("AGG_4").field("field4")))); 

私は応答の一部ではありませんが、私は他の人のように彼らは同じくらい必要AGG_2に5つの文書を持っています。

"AGG_1": { 
    "doc_count_error_upper_bound": 0, 
    "sum_other_doc_count": 0, 
    "buckets": [ 
     { 
      "key": "404", 
      "doc_count": 3506, 
      "AGG_2": { 
       "doc_count_error_upper_bound": 0, 
       "sum_other_doc_count": 0, 
       "buckets": [ 
       { 
        "key": "OK", 
        "doc_count": 1206, 
        "AGG_3": { 
         "doc_count_error_upper_bound": 0, 
         "sum_other_doc_count": 5, 
         "buckets": [ ... 

ありがとうございました!

答えて

0

あなたは

{ 
    "aggs" : { 
     "AGG_1" : { 
      "terms" : { 
       "field" : "field1", 
       "size" : 20 // override the number of buckets to return 
      } 
     } 
    } 
} 
+0

感謝を取得したいんごとにどのように多くのバケットを指定するterms aggregationsに異なるsize値を設定することができます!私はこれを試してみる。 – Cylon

+0

正確なサイズを推測する方法はありますか?つまり、私はどれくらいのデータを取得するのか分かりませんでした... – Cylon

+0

そうは思われません。回避策として、 'cardinality'集約を使用して異なる値の数を得ることができますが、この値でさえ正確であることは保証されていません。https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics -cardinality-aggregation.html – Random