Когда нужен векторный поиск, а когда full-text
В продукте есть поиск по документам/артефактам. Когда использовать full-text, когда векторный поиск, и зачем может понадобиться hybrid retrieval?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Full-text хорош для точных терминов и фильтров; vector search - для семантической близости; hybrid объединяет lexical precision и semantic recall.
Полный разбор
Full-text поиск вроде BM25 хорошо работает, когда запрос содержит важные ключевые слова, имена, коды, названия полей. Он прозрачен, быстрый и удобно комбинируется с фильтрами.
Vector search нужен, когда пользователь формулирует смысл другими словами или ищет похожие документы без точного совпадения терминов. Но embeddings могут ошибаться на числах, редких именах и точных constraints.
Поэтому часто используют hybrid: retrieve кандидатов BM25 и vector search, затем merge/rerank. В RAG это повышает recall, а reranker или business rules помогают вернуть точный порядок.
Типичные ошибки
- Считать vector search полной заменой BM25.
- Не учитывать exact identifiers и фильтры.
- Не иметь eval по Recall@K/NDCG.
Как отвечать на собеседовании
- Приведи пример: артикул ищем full-text, смысловой вопрос - vector.
- Назови hybrid retrieval and reranking.