Векторный и полнотекстовый поиск
Чем векторный поиск отличается от полнотекстовый поиск и почему часто нужен hybrid?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Full-text хорош для точных слов, имен, ID и редких терминов. Векторный поиск ловит смысл и перефразировки. Hybrid повышает recall, потому что эти методы ошибаются по-разному.
Полный разбор
Full-text search строится на токенах: BM25, inverted index, exact/partial match, поля, фильтры. Он надежен для названий, кодов, уникальных терминов, ошибок и случаев, где точная формулировка важна.
Векторный поиск кодирует query и документы в embeddings и ищет ближайшие векторы. Он лучше переносит синонимы и неполные формулировки, но может промахиваться по точным редким сущностям или числам.
Hybrid retrieval объединяет кандидатов из обоих источников: union, score normalization, weighted merge или RRF, затем reranker. Важно логировать вклад каждого источника и оценивать Recall@K до реранкинга.
Теория
Lexical и semantic retrieval дополняют друг друга; в production редко стоит выбирать только один.
Типичные ошибки
- Полностью заменить BM25 embeddings-поиском.
- Складывать scores разных индексов без нормализации.
- Не анализировать, какой источник нашел правильный документ.