GET test_composite_order/_search
{
"size": 0,
"aggs": {
"my_buckets": {
"composite": {
"size": 3,
"sources": [
{
"aggs_keyword": {
"terms": {
"field": "keyword.keyword"
}
}
}
]
},
"aggs": {
"aggs_min_gmt_create": {
"min": {
"field": "gmt_create"
}
}
}
}
}
}
也就是想 根据 aggs_min_gmt_create 最早的创建时间来排序。而且是全量数据下的排序,不是当前页排序。
根据keyword.keyword 来分组,但是排序的时候想要根据 keyword.keyword 最早的创建时间降序排序。
官网说的是在
composite source里的值可以排序
4 个回复
Charele - Cisco4321
赞同来自:
(你这个简单的composite agg其实就是一个term agg)
{ "size": 0,
"aggs": {
"my_buckets": {
"composite": {
"sources": [
{
"aggs_keyword": {
"terms": {
"field": "keyword.keyword"
}
}
}
]
},
"aggs": {
"aggs_min_gmt_create": {
"min": {
"field": "gmt_create"
}
},
"sortAgg": {
"bucket_sort": {
"sort": [
{
"aggs_min_gmt_create": {
"order": "asc"
}
}
],
"size": 3
}
}
}
}
}
}
Charele - Cisco4321
赞同来自:
是内存不足还是别的?如果有报错,贴一下。
(那个"search.max_buckets"原因除外,因为你不管用哪种形式的聚合,桶一多肯定会有这问题)
2 我猜一下你的想法,不晓得是不是这样的
你是想用一个复合agg,聚合条件是(keyword,gmt_create)这两个合起来,
然后在桶内部进行排序(按gmt_create从小到大),取出每个桶的Top3,对吗?
另外,你上面说到了“分页”, 你这个和分页没有任何关系吧。
shengtu0328
赞同来自:
composite-aggregation-order 的分页好像没有这问题?
Charele - Cisco4321
赞同来自:
单纯的composite聚合肯定有,只要是用桶的,肯定有。