продавцов 2 • Складываем их в индекс • Ищем в индексе товары по текстовой релевантности • Переранжируем с учетом фичей • … • Profit! Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент
поиска 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
Когда приходит запрос, мы обходим индекс пока не найдем все или не упремся в ограничение по времени или количеству просмотренных документов • Найденные документы ранжируются через BM25 Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment Shard LSM Segment LSM Segment LSM Segment 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 Базовый поиск
список товаров для индексации Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент • И поэтапно обогащает их доп информацией: название, цена, склады, акции и т.д. High Priority Low Priority
и Full Reindex 11 • RT вычитывают данные об обновлениях из Kafka топиков, обогащают их и отправляют через Kafka в базовый поиск Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент High Priority Low Priority • Full раз в день опрашивает источники данных обо всех документах и массово отправляет их в базовый поиск
этом она не должна перегружать базовый поиск Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент High Priority Low Priority • И источники данных (50+ сервисов) Индексация
• Переранжирует • И склеивает документы Индексер Базовый поиск Средний поиск NLP Верхний поиск Данные о товарах Клиент Feature Store Feature Meta Store Wizard
Данные о товарах Клиент Feature Store Feature Meta Store Wizard • Фичей много, их где-то надо считать, хранить, обновлять и быстро доставать • Старается кешировать как можно больше ответов от других сервисов, чтобы не просаживать время ответа пользователю Доклад Анастасии Тушкановой на тему «Feature store»
свой поиск в 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