目前遇到一个问题,现在有下面的聚合计算。目的是计算sdkVer的版本分布,然后对device进行唯一值聚合,这样就能得到sdkVer的分布情况(前五名,基于唯一的device来计算的),我们希望只看前5名sdkVer的分布情况,这样的计算是能满足需求的,但是我们还需要看到前五名之外的sdkVer的占据的比例,也就是1 2 3 4 5 Others这六个部分,目前我能想到就是两次聚合,第一次算出前五名的值,第二次排出这前五名的值做聚合来计算。
不知道是否有方法能一次返回我需要的结果,希望各位给点建议。 谢谢
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"range": {
"meetingtime": {
"from": 1619798400,
"to": 1621439999,
"include_lower": true,
"include_upper": true,
"time_zone": "UTC",
"format": "epoch_second",
"boost": 1.0
}
}
},
{
"term": {
"type": {
"value": "test",
"boost": 1.0
}
}
}
],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"aggregations": {
"sdkVer": {
"terms": {
"field": "sdkVer",
"size": 5,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [
{
"device": "desc"
},
{
"_key": "asc"
}
]
},
"aggregations": {
"device": {
"cardinality": {
"field": "device"
}
}
}
}
}
}
不知道是否有方法能一次返回我需要的结果,希望各位给点建议。 谢谢
2 个回复
thewind
赞同来自: w_b 、Tsukiand
thewind
赞同来自: