我在Elasticsearch中有一个数据结构,看起来像:
{
"name": "abc",
"date": "2022-10-08T21:30:40.000Z",
"rank": 3
}
我想为每个唯一的名称获取最近日期的文档(或整个文档(的级别。
我现在有这个:
"aggs": {
"group-by-name": {
"terms": {
"field": "name"
},
"aggs": {
"max-date": {
"max": {
"field": "date"
}
}
}
}
}
我如何获得每个结果的排名(或整个文档(,如果可能的话,在1个请求中?
您可以使用以下选项
- 折叠
"collapse": {
"field": "name"
},
"sort": [
{
"date": {
"order": "desc"
}
}
]
- 热门点击聚合
{
"aggs": {
"group-by-name": {
"terms": {
"field": "name",
"size": 100
},
"aggs": {
"top_doc": {
"top_hits": {
"sort": [
{
"date": {
"order": "desc"
}
}
],
"size": 1
}
}
}
}
}
}