Давая нам индекс последовательности времени, как мы выполняем агрегат только по последним N элементам в индексе?Как выполнить сборку elasticsearch для последних N элементов в индексе
0
A
ответ
0
В индексе последовательности времени, вы можете сортировать результаты основаны на datetime
поле (поле хранения информации времени индекса) в порядке убывания и ограничить количество результатов, используя size
опции в поисковом запросе и запустить aggs
сверху тебя результат ,
datetime
раздел может быть _timestamp
раздел, если вы используете elasticsearch версию < 2.0. В более поздних версиях elasticsearch вы должны явно добавить поле datetime в сопоставление и установить его значение при индексировании.
Короче говоря, измените поисковый запрос так, чтобы последние результаты N стали первыми результатами N и выполнили агрегацию результата.
{
"query": {
"match_all": {}
},
"size": N,
"sort": [
{
"dateTimeFieldName(May be _timestamp)": {
"order": "desc"
}
}
],
'aggs': {
<your aggregation query>
}
}
К сожалению, мы пробовали этот путь, но он не работает. Размер повлиял на результат «обращений» в результате, но никаких эффектов на результат агрегации не произошло. – 3white