2017-02-10 5 views

ответ

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> 
    } 
} 
+0

К сожалению, мы пробовали этот путь, но он не работает. Размер повлиял на результат «обращений» в результате, но никаких эффектов на результат агрегации не произошло. – 3white