Войти Регистрация
Data base

150. Свежие велосипеды с доставкой выше

Сложная

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.

В работе: Ранжирование выдачи классифайда: свежесть и платные или удобные опции поднимают объявление.

Как проверяем Движка Elasticsearch в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
function_scoreзатухание по датеweightscore_modeboost_modescript_score

Источник: на данных Авито: объявления о велосипедах; приём бустинга свежести — как prefer-recent в CirrusSearch Википедии. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Какой запрос ранжирует объявления так, как просил продакт?

  • function_score: exp по дате и weight 2, multiply, replace
  • то же, score_mode sum
  • function_score без фильтра по городу
  • bool + сортировка по published_at