Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Леонид Тощев – Взгляд сверху на архитектуру рантайма поиска в Ozon

Леонид Тощев – Взгляд сверху на архитектуру рантайма поиска в Ozon

Ozon Tech

July 28, 2023
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Ozon Tech 2023 Архитектура рантайма поиска Леонид Тощев, руководитель отдела

    по продукту и технологиям «Поисковый рантайм и индексация»
  2. Архитектура. Взгляд сверху Устройство • Получаем данные о товаре от

    продавцов 2 • Складываем их в индекс • Ищем в индексе товары по текстовой релевантности • Переранжируем с учетом фичей • … • Profit! Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент
  3. 3

  4. Базовый поиск Устройство • В основе лежит библиотека для полнотекстового

    поиска Lucene 5 • Она хранит данные в LSM подобных структурах • По аналогии они разбиваются на сегменты • Каждый сегмент представляет из себя независимый индекс • Данные разложены на шарды по id товара Input Documents Segment Segment Segment New Segment New Segment Building Data App Disk Merge Merge Flush Shard Input Documents Segment Segment Segment New Segment New Segment Building Data App Disk Merge Merge Flush Shard
  5. Как работает • Данные лежат отсортированными по каталожному скору •

    Когда приходит запрос, мы обходим индекс пока не найдем все или не упремся в ограничение по времени или количеству просмотренных документов • Найденные документы ранжируются через BM25 Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment 6 Базовый поиск
  6. Особенности • Мы не можем быстро обновлять конкретные поля документа

    • Большое количество вставок или обновлений документов просаживает Response time и Throughput • Обновления документов дороже, чем вставка Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment • Мы можем быстро находить необходимые товары :) 7 Базовый поиск
  7. Задачи Shard LSM Segment LSM Segment LSM Segment Shard LSM

    Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment 8 • Обновлять отдельные поля • Перешардировать индекс Базовый поиск
  8. Индексация Устройство • Представляет из себя пайплайн 10 • Получает

    список товаров для индексации Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент • И поэтапно обогащает их доп информацией: название, цена, склады, акции и т.д. High Priority Low Priority
  9. Индексация Как работает • Обновления делятся на Real Time (RT)

    и Full Reindex 11 • RT вычитывают данные об обновлениях из Kafka топиков, обогащают их и отправляют через Kafka в базовый поиск Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент High Priority Low Priority • Full раз в день опрашивает источники данных обо всех документах и массово отправляет их в базовый поиск
  10. Особенности • Индексация должна быть максимально быстрой 12 • При

    этом она не должна перегружать базовый поиск Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент High Priority Low Priority • И источники данных (50+ сервисов) Индексация
  11. Индексер Задачи 13 Индексер Базовый поиск Средний поиск NLP Верхний

    поиск Данные о товарах Клиент High Priority Low Priority • Улучшить дедупликацию (время и качество) • Ускорить полную пересборку индекса
  12. Midway Устройство 15 • Отдельный сервис переранжирования документов с учетом

    различных фичей и бустингов Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент Feature Store Feature Meta Store Wizard
  13. Midway Как работает 16 • Принимает ответ от базового поиска

    • Переранжирует • И склеивает документы Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент Feature Store Feature Meta Store Wizard
  14. Midway Особенности Индексер Базовый поиск Средний поиск NLP Верхний поиск

    Данные о товарах Клиент Feature Store Feature Meta Store Wizard • Фичей много, их где-то надо считать, хранить, обновлять и быстро доставать • Старается кешировать как можно больше ответов от других сервисов, чтобы не просаживать время ответа пользователю Доклад Анастасии Тушкановой на тему «Feature store»
  15. Midway Задачи Индексер Базовый поиск Средний поиск NLP Верхний поиск

    Данные о товарах Клиент Feature Store Feature Meta Store Wizard • Инферинг на GPU • Feature store as a platform • Улучшение кэширования 18
  16. Верхний поиск Устройство • Собирает запрос 20 • Определяет A/B-тесты,

    бустинги Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент • Определяет уровни деградации • Еще больше кэшей богу кэшей
  17. Верхний поиск Устройство • Предсказывает категории 22 • Исправляет опечатки

    Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент • Подбирает синонимы • Выполняет работу Мизулиной
  18. Архитектура Выводы 23 Индексер Базовый поиск Средний поиск NLP Верхний

    поиск Данные о товарах Клиент • Независимость • Отказоустойчивость
  19. Полезные ссылки https://habr.com/ru/companies/ozontech/a rticles/667600/ Статья на тему «Как мы делали

    свой поиск в Ozon: эволюция архитектуры от SQL до O2» https://lucene.apache.org/core/9_7_0/core /org/apache/lucene/codecs/lucene95/pack age-summary.html Package org.apache. lucene.codecs.lucene95 https://www.youtube.com/watch?v=Wsmvy1N njB4&ab_channel=HighLoadChannel Доклад Анастасии Тушкановой на тему «Feature Store» 24