Elasticsearch:最近的日期聚合
Elasticsearch: Date Aggregation Most Recent
我有有效的查询。它根据 Id 聚合数据,并根据创建的字段找到 MOST RECENT 对象。我遇到的问题是我想找到 SECOND MOST RECENT 而不是 MOST Recent。我该怎么做?我一直在查看所有文档,我所能找到的只是范围,这对我没有太大帮助。谢谢:)
{
"query":{
"match": {
"name": "Robert"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id",
"order": {"timeCreated": "desc"}
},
"aggs": {
"timeCreated": {
"max": {"field": "created"}
}
}
}
}
}
Top_hits
就是您要找的。使用这个:
{
"query":{
"match": {
"name": "A"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id"
},
"aggs": {
"latestRecords": {
"top_hits": {
"sort": {
"created": {
"order": "desc"
}
},
"size" :2
}
}
}
}
}
}
我有有效的查询。它根据 Id 聚合数据,并根据创建的字段找到 MOST RECENT 对象。我遇到的问题是我想找到 SECOND MOST RECENT 而不是 MOST Recent。我该怎么做?我一直在查看所有文档,我所能找到的只是范围,这对我没有太大帮助。谢谢:)
{
"query":{
"match": {
"name": "Robert"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id",
"order": {"timeCreated": "desc"}
},
"aggs": {
"timeCreated": {
"max": {"field": "created"}
}
}
}
}
}
Top_hits
就是您要找的。使用这个:
{
"query":{
"match": {
"name": "A"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id"
},
"aggs": {
"latestRecords": {
"top_hits": {
"sort": {
"created": {
"order": "desc"
}
},
"size" :2
}
}
}
}
}
}