es 分组聚合返回结果不正确
问题现象在对es做group by分组聚合查询时,数据返回不正确,只能显示十条。但是应该有14个分组。查询语句:GET /hadoop_impala*/_search{"aggs": {"qyeryTypes": {"terms": {"field": "hostId"}}}}查询结果:"aggregations": {"qyeryTypes": {"doc_count_error_uppe
·
问题现象
在对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
更多推荐
已为社区贡献3条内容
所有评论(0)