Рубрики
Технологии

Запустили полнотекстовый и гибридный поиск в YDB: рассказываем, что под капотом

Привет, Хабр! Меня зовут Александр Зевайкин, и мы с командой делаем YDB (СУБД Яндекса). Год назад я рассказывал на Хабре, как мы запустили векторный поиск, а весной — как он используется в Нейроюристе для поиска по миллионам юридических документов.

В релизе 26.3 к векторному поиску добавились полнотекстовый поиск с ранжированием и гибридный поиск, который объединяет оба вида поиска в одном SQL-запросе. Кроме того, мы доработали фильтруемый векторный индекс.

Зачем нужны оба вида поиска, хорошо видно на примере. Страховой юрист ищет «выплаты по полису 7702-345678 при переносе рейса». Номер полиса нужно найти слово в слово, а описание случая — понять по смыслу. Полнотекстовый поиск справляется с первой половиной задачи и не справляется со второй, векторный — наоборот.

Прежде чем перейти к статье, я хочу пригласить вас на вебинар «Быстро находите нужное с YDB», который проведу в прямом эфире 15 октября. На нём я покажу рецепт, как за час собрать приложение для поиска сразу по документам, тикетам, карточкам и диалогам. Готовый поиск я подключу к ИИ-ассистенту с помощью RAG, и мы вместе со зрителями посмотрим, как меняется качество ответа. Регистрируйтесь и добавляйте в календарь — всё, что я покажу на вебинаре, доступно в рамках бесплатного тарифа и можно будет сразу попробовать самим.

А под катом в этой статье я отвечу на шесть вопросов о гибридном поиске:

1. Почему одного вида поиска недостаточно и чем два вида дополняют друг друга.

2. Что теряет бизнес, когда поиск работает отдельно от СУБД, и как оба индекса стали таблицами YDB.

3. Как сделать инвертированный индекс в виде распределённой таблицы и что добавляет к нему ранжирование по BM25.

4. Что происходит с каждым индексом при записи и как индекс объединяется с фильтрацией.

5. Как две выдачи объединяются внутри одного плана запроса.

6. Чем гибридный поиск помогает рекомендательным системам и чем измеряют результат.

Читать далее