2016-10-18 11 views
0

両方の集計のPARTY_IDの数が同じである必要があります。 あるケースでは3000であり、もう1つのケースでは等しくないすべての値(2675 + 244 + 41 + 6 + 2 = 2950)の合計です。 理由は何でしょうか?エラスティックサーチカーディナリティ集計が間違った結果を返す

GET /test/data/_search 
{ 
    "size": 0, 
    "aggs": { 
     "ASSET_CLASS": { 
     "terms": { 
      "field": "ASSET_CLASS_WORST" 
     }, 
     "aggs": { 
      "ASSET_CLASS": { 
       "cardinality": { 
        "field": "PARTY_ID" 
       } 
      } 
     } 
     }, 
     "Total count": { 
     "cardinality": { 
      "field": "PARTY_ID" 
     } 
     } 
    } 
} 

結果:

{ 
    "took": 9, 
    "timed_out": false, 
    "_shards": { 
     "total": 5, 
     "successful": 5, 
     "failed": 0 
    }, 
    "hits": { 
     "total": 51891, 
     "max_score": 0, 
     "hits": [] 
    }, 
    "aggregations": { 
     "Total count": { 
     "value": 3000 
     }, 
     "ASSET_CLASS": { 
     "doc_count_error_upper_bound": 0, 
     "sum_other_doc_count": 0, 
     "buckets": [ 
      { 
       "key": "NPA", 
       "doc_count": 49252, 
       "ASSET_CLASS": { 
        "value": 2675 
       } 
      }, 
      { 
       "key": "RESTRUCTURED", 
       "doc_count": 2275, 
       "ASSET_CLASS": { 
        "value": 244 
       } 
      }, 
      { 
       "key": "SMA2", 
       "doc_count": 308, 
       "ASSET_CLASS": { 
        "value": 41 
       } 
      }, 
      { 
       "key": "SMA1", 
       "doc_count": 42, 
       "ASSET_CLASS": { 
        "value": 6 
       } 
      }, 
      { 
       "key": "SMA0", 
       "doc_count": 14, 
       "ASSET_CLASS": { 
        "value": 2 
       } 
      } 
     ] 
     } 
    } 
} 

答えて

1

documentation for cardinality aggregationの最初の行を読み取り:

異なる値の近似 カウントを算出単一値メトリクス凝集。

(強調鉱山)

3000のうち10のエラーは、ウェル1%未満であるので、ちょうど予想さです。

カーディナリティアグリゲーションは、​​微積分のenhancedバージョンを使用します。これは、定数メモリの複雑さやO(N)時間の複雑さなどの面白い機能を備えています。

もっと正確な結果が必要な場合は、precision_thresholdパラメータの設定を高くしてみてください。

GET /test/data/_search 
{ 
    "size": 0, 
    "aggs": { 
     "ASSET_CLASS": { 
     "terms": { 
      "field": "ASSET_CLASS_WORST" 
     }, 
     "aggs": { 
      "ASSET_CLASS": { 
       "cardinality": { 
        "field": "PARTY_ID", 
        "precision_threshold": 10000 
       } 
      } 
     } 
     }, 
     "Total count": { 
     "cardinality": { 
      "field": "PARTY_ID", 
      "precision_threshold": 10000 
     } 
     } 
    } 
} 
+0

@Shadockoに感謝します。この – Bond

+0

@Jamesに関するパフォーマンス統計はありません。特定の設定にベンチマークを実行する必要があります。 – Shadocko

関連する問題