Elasticsearch: дата агрегации последние
У меня есть запрос, который работает. Он объединяет данные на основе идентификатора и находит объект MOST RECENT на основе созданного поля. У меня проблема в том, что я хотел бы найти ВТОРОГО ПОСЛЕДНЕГО вместо ПОСЛЕДНЕГО. Как бы я пошел по этому поводу? Я просматривал все документы, и все, что я могу найти, это диапазон, который мне не сильно помогает. Спасибо:)
{
"query":{
"match": {
"name": "Robert"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id",
"order": {"timeCreated": "desc"}
},
"aggs": {
"timeCreated": {
"max": {"field": "created"}
}
}
}
}
}
1 ответ
Решение
Top_hits
это то, что вы ищете. Использовать этот:
{
"query":{
"match": {
"name": "A"
}
},
"aggs": {
"previous": {
"terms": {
"field": "Id"
},
"aggs": {
"latestRecords": {
"top_hits": {
"sort": {
"created": {
"order": "desc"
}
},
"size" :2
}
}
}
}
}
}