我的文档包括 name
以及 date_year
,我的目标是找到最近添加的名称(例如,最后添加的10个名称及其出现的第一年和文档总数)。因此,我有一个条件 name
,由上的最小子聚合排序 date_year
:
{
"aggs": {
"group_by_name": {
"terms": {
"field": "name",
"order": {
"start_year": "desc"
}
},
"aggs": {
"start_year": {
"min": {
"field": "date_year"
}
}
}
}
}
}
当不添加时,这将返回意外的结果 size
低于 terms
. 例如,第一个bucket doc_count
1和 start_year
2015年,虽然我确信有几十份文件有这个名字,而且是最早的 date_year
是1870年。当我加一个足够大的 size
,结果准确。例如:
{
"aggs": {
"group_by_name": {
"terms": {
"field": "name",
"size": 10000, <------ large enough value
"order": {
"start_year": "desc"
}
},
"aggs": {
"start_year": {
"min": {
"field": "date_year"
}
}
}
}
}
}
有人能解释一下是什么原因造成的,以及我如何限制返回的桶数吗?我需要的在sql中是这样的: select name, min(year), count(*) from documents group by name order by min(year) desc limit 10
暂无答案!
目前还没有任何答案,快来回答吧!