Elasticsearch 聚合 不準確問題

在做es 聚合查詢時,發現數據不準確:根據name 聚合,查詢出wang jie有5個文檔,然後。根據這個姓名查詢,確有7個文檔

說明,第一次聚合查詢不準確

如下圖:

第一次:

對應dsl

第二次:

對應dsl

於是網上搜索一波,看了幾篇文章,大概總結一下

 

es 的數據是在shard上存儲的,一個索引默認是5個分片,es 聚合查詢的時候,是先在每個分片取出shard_size個數據,然後再彙總每個分片的數據,最後再取size 個數據,其中 size 參數規定了最後返回的term個數(默認是10個)
shard_size 參數規定了每個分片上返回的個數(默認(size * 1.5 + 10),

所以聚合查詢存在一定誤差

解決辦法:

(1)加大size 的值可以減少誤差
(2)將所有數據存在一個shard 上,這樣的話就不存在誤差了(適用於少數據量)
(3)增大shard_size的值,缺點就是,彙總的時候會有瓶頸

gr參考“https://niyanchun.com/term-aggregation-accuracy-in-es.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章