es 分组聚合返回结果不正确

 


问题现象

在对es做group by分组聚合查询时,数据返回不正确,只能显示十条。但是应该有14个分组。

查询语句:

GET /hadoop_impala*/_search { "aggs": { "qyeryTypes": { "terms": { "field": "hostId" } } } }

查询结果:

"aggregations": { "qyeryTypes": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 611, "buckets": [ { "key": "dx-hadoop62.dx", "doc_count": 877 }, { "key": "dx-hadoop60.dx", "doc_count": 828 }, { "key": "dx-hadoop61.dx", "doc_count": 703 }, { "key": "dx-hadoop58.dx", "doc_count": 637 }, { "key": "dx-hadoop68.dx", "doc_count": 611 }, { "key": "dx-hadoop64.dx", "doc_count": 474 }, { "key": "dx-hadoop69.dx", "doc_count": 449 }, { "key": "dx-hadoop70.dx", "doc_count": 230 }, { "key": "dx-hadoop65.dx", "doc_count": 211 }, { "key": "dx-hadoop59.dx", "doc_count": 179 } ] }

问题原因:

因为es聚合操作的size参数规定了最后返回的term个数(默认是10个)

解决方案:

在es查询里添加size参数,如下:

GET /hadoop_impala*/_search { "aggs": { "qyeryTypes": { "terms": { "field": "hostId", "size": 1000 } } } }

再次查询,结果能正常返回

"aggregations": { "qyeryTypes": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "dx-hadoop62.dx", "doc_count": 893 }, { "key": "dx-hadoop60.dx", "doc_count": 840 }, { "key": "dx-hadoop61.dx", "doc_count": 713 }, { "key": "dx-hadoop58.dx", "doc_count": 647 }, { "key": "dx-hadoop68.dx", "doc_count": 611 }, { "key": "dx-hadoop64.dx", "doc_count": 474 }, { "key": "dx-hadoop69.dx", "doc_count": 459 }, { "key": "dx-hadoop70.dx", "doc_count": 230 }, { "key": "dx-hadoop65.dx", "doc_count": 214 }, { "key": "dx-hadoop63.dx", "doc_count": 183 }, { "key": "dx-hadoop59.dx", "doc_count": 181 }, { "key": "dx-hadoop57.dx", "doc_count": 165 }, { "key": "dx-hadoop56.dx", "doc_count": 152 }, { "key": "dx-hadoop67.dx", "doc_count": 137 } ] } }

扩展:

  • size参数规定了最后返回的term个数(默认是10个)
  • shard_size参数规定了每个分片上返回的个数
  • 如果shard_size小于size,那么分片也会按照size指定的个数计算

通过这两个参数,如果我们想要返回前5个,size=5;shard_size可以设置大于5,这样每个分片返回的词条信息就会增多,相应的误差几率也会减小。

参考:https://www.cnblogs.com/tgzhu/p/9167170.html


__EOF__

本文作者彬在俊
本文链接https://www.cnblogs.com/erlou96/p/16878357.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   彬在俊  阅读(811)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示