В настоящее время я решаю эту проблему, предварительно вычисляя оценку перед вставкой событий в Elastic Search. Однако, поскольку он основан на дате, мне приходится ежедневно пересчитывать счет. Можно ли сделать этот расчет во время запроса?
Данные:
{
"title" : "event 1",
"rank" : 1034, // pre-calculated score
"score": 34,
"date" : "2015-10-10 00:00:00",
"meta" : [
{
"date": "2015-10-10 00:00:00",
"type": "insert"
},
{
"date": "2015-12-10 00:00:00",
"type": "outsert"
},
{
"date": "2015-05-10 00:00:00",
"type": "other"
}
]
}
Рейтинг:
Создано 4 "сегмента" с датой insert
.
- Мероприятия младше 5 дней
- События старше 5 дней и младше 10 дней
- События старше 10 дней и младше 15 дней
- События старше 15 дней
События в каждой корзине должны быть отсортированы по score
полю DESC
.
Предварительно рассчитанный рейтинг создается путем добавления 1000, 2000 или 3000 к счету в зависимости от того, в какую категорию попадает событие.
При выполнении запроса результаты сортируются по рангу.
Как бы я сделал это без использования предварительно рассчитанного rank
?