- 在Terms Aggregation的返回中有兩個特殊的數值
- doc_count_error_upper_bound:被遺漏的term分桶,包含的文件,有可能的最大值
- sum_other_doc_count:處理返回結果bucket的terms以外,其他terms的文件總數(總數-返回的總數)
- Terms 聚合分析不準的原因,資料分散在多個分片上,Coordinating Node 無法獲取資料全貌
- 解決方案1:當資料量不大時,設定Primary Shard 為1;實現準確性
- 解決方案2:在分散式資料上,設定shard_size 引數,提高精確度
- 原理:每次從Shard 上額外多獲取資料,提升準確率
- 調整 shard size 大小,降低 doc_count_error_upper_bound 來提升準確度
- 增加整體計算量,提高了準確率,但會降低相應時間
- Shard Size 預設大小設定
- shard size = size * 1.5 +10
GET kibana_sample_data_flights/_search { "size": 0, "aggs": { "weather": { "terms": { "field":"OriginWeather", "size":5, "show_term_doc_count_error":true } } } } GET my_flights/_search { "size": 0, "aggs": { "weather": { "terms": { "field":"OriginWeather", "size":1, "shard_size":1, "show_term_doc_count_error":true } } } }
- shard size = size * 1.5 +10
本作品採用《CC 協議》,轉載必須註明作者和本文連結