记录一个Elasticsearch的坑 “doc_count_error_upper_bound“ : -1

聚合TOP100 问题 

原业务mysql处理 "select account,avg(score) avgScore from  XXX group by  account order by avgScore  limit 100"

现业务 es 处理 "{  "aggs": {"groupBy": { "terms": { "field": "account ",  "order": {  "avgScore": "desc"},"size": 100 },
      "aggs": { "avgScore": {"avg": {"field": "score"}}}}},
        "track_total_hits": true}

上线,一切正常!一个国庆后,线上的数据出错了。。。

"doc_count_error_upper_bound" : -1  

网上结果表明:一个shard会完全精准,多个shard 就很糟心(因为是取了所有分片的 top 100 ,再进行合并)

线上问题比较棘手;

解决方案;size:给出预计数据:比如,account有8888个 size传入8888 再通过程序取前100;

如果数据量再多怎么办了......

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值