Векторного поиска недостаточно.

В RAG-системах принято говорить об эмбеддингах. А реальный пользовательский запрос почти всегда сочетает смысл и точные данные. Векторный поиск помогает понять, что «договор аренды» и «соглашение о найме» — близкие вещи. При этом полнотекстовый поиск точно найдёт номер, фамилию или код ошибки, но не поймёт синонимы. Исходя из этого, надёжному поиску нужно сочетание обоих подходов.

Недавно коллеги из YDB катнули новые фичи, и в итоге: полнотекстовый и векторный поиск объединили внутри одного SQL-запроса. HybridRank получает кандидатов из обеих ветвей и сводит их в общую выдачу (по умолчанию через Reciprocal Rank Fusion). В результате приложению больше не нужно самостоятельно отправлять два запроса. А на выходе не нужно объединять оценки разной природы и удалять дубликаты.

Но, кажется, главное здесь даже не ранжирование. Оба индекса находятся внутри одной и той же СУБД и обновляются вместе с исходными данными. Для нас это значит, что уменьшается рассинхронизация, упрощается инфраструктура, можно позволить себе применять одинаковые фильтры и правила доступа. Для корпоративного AI это особенно важно: правильный ответ недостаточно найти — нужно ещё гарантировать, что пользователь имеет право его увидеть.

Думаю, вы со мной согласитесь, качество AI-ассистента определяется не только моделью. Часто качество наших решений в этой области ломается раньше — в момент, когда нужный документ не попал в контекст, данные устарели или фильтрация отбросила результаты уже после поиска. Поэтому следующая важная зона развития AI-систем — не ещё более крупные модели, а поиск, который одновременно понимает смысл, сохраняет точность и остаётся согласованным с проверенными данными.