В настоящее время я решаю это, предварительно вычислив оценку, прежде чем вставлять события в 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
?
извините, вместо gauss decay используется линейный распад. – user3775217