Оглавление курса

Бизнес-ранжирование

Добавим популярность и свежесть так, чтобы сохранить смысл текстового поиска.

Разделов: 5Elasticsearch 9.4.3Ещё не прочитан

Чему вы научитесь

  • Кандидаты и предпочтения
  • Функции и нормализация
  • Скрипты и второй этап

Добавим популярность и свежесть так, чтобы сохранить смысл текстового поиска.

Примеры course-products используют учебную схему и товар из главы 5 «Mapping и типы полей». Разборы упражнений ниже используют отдельный публичный набор тренажёра.

Логика главы
  • Кандидаты и предпочтения
  • Функции и нормализация
  • Скрипты и второй этап

Добавим популярность и свежесть так, чтобы сохранить смысл текстового поиска.

Курс ориентирован на Elasticsearch 9.4.3. Разборы упражнений используют публичный набор products; остальные запросы показывают отдельные учебные индексы и могут требовать подготовки или прав, недоступных в тренажёре. Ответы сокращены, score может меняться. Для расширенных функций проверяйте лицензию и вариант развёртывания.

01 / 05

Кандидаты и предпочтения

Сначала отделяют обязательные ограничения: доступ к данным, наличие и допустимая категория. Затем ранжируют подходящих кандидатов. Популярный товар другой категории не должен появляться только из-за большого бизнес-сигнала. У каждого сигнала есть диапазон и распределение: число продаж от 0 до миллиона нельзя бездумно складывать с текстовым score.

Самопроверка
02 / 05

Функции и нормализация

function_score объединяет исходную оценку и функции через boost_mode и score_mode. field_value_factor использует числовое поле; логарифмические модификаторы помогают сжать большие значения, но требуют допустимого диапазона. Decay functions постепенно уменьшают вклад с удалением от даты, цены или координаты. rank_feature рассчитан на подготовленные положительные признаки и требует соответствующего mapping.

Самопроверка
03 / 05

Скрипты и второй этап

script_score гибок, но вычисления на многих кандидатах могут быть дорогими. Итоговый score должен быть допустимым неотрицательным числом. Rescore применяет более дорогую оценку к окну лучших документов на каждом шарде; слишком маленькое окно ограничивает возможные улучшения. Проверяйте не только верхний товар, но и устойчивость порядка для редких запросов и отсутствующих признаков.

Умножение связывает текстовый score и рейтинг; проверьте диапазон рейтинга и пропуски.

POST /course-products/_search
{
  "query": {
    "function_score": {
      "query": {
        "match": {
          "name": "headphones"
        }
      },
      "field_value_factor": {
        "field": "rating",
        "modifier": "sqrt",
        "missing": 1
      },
      "boost_mode": "multiply"
    }
  }
}

Как читать результат

Умножение связывает текстовый score и рейтинг; проверьте диапазон рейтинга и пропуски.

Самопроверка
04 / 05

Разбор на примере каталога

Представьте текстовые score 8 и 6 и продажи 10 и 100000. Простое умножение почти гарантированно продвинет второй товар независимо от текстовой разницы. Логарифм или функция насыщения сжимает масштаб, а ограниченное влияние сохраняет шанс сильного текстового совпадения. Не выбирайте коэффициент по этим двум числам: проверьте распределение продаж, товары без истории, новые товары и запросы по точным моделям. У каждого случая могут быть разные последствия для бизнеса.

Самопроверка

Самопроверка

Сначала ответьте самостоятельно, затем раскройте объяснение.

1. Куда поместить доступ к данным?

В обязательные серверные ограничения до ранжирования.

2. Зачем сжимать продажи логарифмом?

Чтобы огромные значения не подавляли остальные сигналы.

3. Что делает boost_mode?

Как результат функций объединяется с исходным score.

4. Rescore видит все документы?

Нет, только выбранное окно кандидатов на шардах.

5. Как проверить новый коэффициент?

Сравнить метрики и регрессии на размеченном наборе запросов.

Краткая памятка

  • В обязательные серверные ограничения до ранжирования.
  • Чтобы огромные значения не подавляли остальные сигналы.
  • Как результат функций объединяется с исходным score.
  • Нет, только выбранное окно кандидатов на шардах.
  • Сравнить метрики и регрессии на размеченном наборе запросов.

Официальная документация

Готовы применить знания?

Подтвердите прочтение, чтобы сохранить своё место. Чтение и решение заданий учитываются отдельно в этом браузере с помощью гостевой cookie.