Elasticsearch · Elasticsearch 8.19.12
В Перми в мае по запросу «велосипед» сотни объявлений, и наверху висят прошлогодние. Продакт просит ранжировать по свежести и поднимать объявления с Авито Доставкой.
Индекс ads: title (text), city (keyword), published_at (date), delivery (boolean), price_rub (integer).
Отберите объявления со словом велосипед в title в городе Пермь. Score = 0,5^(дни от 20.05.2026 / 7), и ×2, если delivery = true. BM25 не учитывается. Порядок — по score по убыванию, первые 10.
В работе: Ранжирование выдачи классифайда: свежесть и платные или удобные опции поднимают объявление.
Источник: на данных Авито: объявления о велосипедах; приём бустинга свежести — как prefer-recent в CirrusSearch Википедии. Условие пересказано своими словами.
Какой запрос ранжирует объявления так, как просил продакт?
- function_score: exp по дате и weight 2, multiply, replace
- то же, score_mode sum
- function_score без фильтра по городу
- bool + сортировка по published_at