agg聚合函数查询后,返回 bucket 中的值都是相同的
使用的代码如下:
TermsAggregationBuilder terms1 = AggregationBuilders.terms("brands_max_num").field("equipCode");
TermsAggregationBuilder terms2 = AggregationBuilders.terms("timeCount").field("receivedTimeStamp");
SearchSourceBuilder querySourceBuilder = new SearchSourceBuilder().aggregation(terms1.subAggregation(terms2)).size(0);
通常在kibana上也能复现:
GET ecc_bc_20211017/_search
{
"query": {
"match": {
"gpsId": "31854137"
}
},
"size": 0,
"aggs": {
"brands_max_num": {
"terms": {
"field": "equipCode"
},
"aggs": {
"timeCount": {
"terms": {
"field": "receivedTimeStamp"
}
}
}
}
}
}
agg 函数默认是分10个bucket ,在数据量大的情况下就会不准确。
增加 bucket 的个数
GET ecc_bc_20211017/_search
{
"query": {
"match": {
"gpsId": "31854137"
}
},
"size": 0,
"aggs": {
"brands_max_num": {
"terms": {
"field": "equipCode"
},
"aggs": {
"timeCount": {
"terms": {
"field": "receivedTimeStamp",
"size": 100
}
}
}
}
}
}
Java 在构建TermsAggregationBuilder 时指定size
TermsAggregationBuilder terms2 = AggregationBuilders.terms("timeCount").field("receivedTimeStamp").size(100);
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
邀请人:岳涛,社区ID:7348459
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。