我想在Elasticsearch中汇总(总和)n个最新项目的值。
我试过"热门歌曲" (按日期字段排序),但我无法聚合 - 它只返回了最新的n项。
我有以下查询来汇总所有项目'值,但我如何限制它 - 让我们说 - 20个项目,按日期字段排序?
http://mysearchdomain/index/type/_search?size=0
{
"aggs": {
"agg_name1": {
"terms": {
"field": "_parent",
"size": 2000000
},
"aggs": {
"agg_name2": {
"terms": {
"field": "myfield"
},
"aggs": {
"agg_name3": {
"sum": {
"field": "fieldToAggregate"
}
}
}
}
}
}
}
}
答案 0 :(得分:0)
就我可以从文档中评估而言,这似乎是不可能的。您正在尝试过滤已经聚合的数据(每个“agg_name1”),这似乎是主要问题;并且top_hits
对已经聚合的数据集无效。
正如我所看到的,最好的选择是为每个“agg_name1”发出top_hits
聚合请求,这可能意味着您可能拥有更多请求(数量与“agg_name1”相同)。 / p>