Hybrid Search

Гибридный поиск — объединение лексического (BM25, точное совпадение слов) и семантического (векторного) поиска в RAG. Результаты двух методов сливаются через RRF (Reciprocal Rank Fusion). Production Baseline 2026: чистого вектора уже недостаточно.

Суть

У каждого метода своя слепая зона: векторный поиск пропускает точные ID, коды, имена собственные; BM25 пропускает синонимы и смысл. Гибрид ловит обе категории — берём топ от каждого и объединяем ранги.

Зачем это нужно

Особенно важно, когда в базе знаний много специфичных терминов/кодов: «найди ошибку GO-124» вектор может «размазать» по смыслу, а BM25 найдёт точно. И наоборот, «как ускорить запросы» — это про смысл, тут силён вектор.

Как работает (RRF)

  1. BM25 отбирает топ-50 по точным совпадениям терминов.

  2. Vector Search отбирает топ-50 по семантической близости (косинус, см. Embeddings).

  3. RRF объединяет два ранжирования в общий топ-20:

    RRF(d) = 1 / (k + rank_bm25(d)) + 1 / (k + rank_vector(d)), где k — константа (обычно 60).

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

  4. Полученный топ уходит на Reranking (cross-encoder → топ-5).

  • Query Expansion / HyDE — смежная техника: запрос расширяют синонимами или генерируют «гипотетический ответ» и ищут уже по нему; помогает на коротких/неоднозначных запросах.
  • Связка Hybrid Search + Reranking покрывает ~80% use cases — это и есть минимальный продакшен-стандарт 2026.
  • Hybrid и хранилище: PostgreSQL full-text search (tsvector/tsquery) — лексический поиск, он не равноценен полноценному вероятностному BM25 / sparse-retrieval в dedicated-системах; для production-hybrid часто проще взять dedicated layer (Qdrant с нативным BM25/sparse, OpenSearch и т.п.). Query2doc — близкий к HyDE подход: LLM генерирует псевдо-документ для расширения запроса.

Связано с

  • RAG — гибридный поиск = recall-этап retrieval
  • Reranking — куда уходит топ гибридного поиска
  • Embeddings — семантическая половина гибрида

Открытые вопросы

  • как калибровать вес BM25 vs vector и константу k в RRF под свой домен
  • HyDE — даёт ли выигрыш, если уже есть reranking