Векторный поиск
Определение
Векторный поиск — отбор и упорядочивание записей по расстоянию или сходству между вектором запроса и векторами индекса. Результат зависит от метрики и совместимости сравниваемых представлений.
Также ищут: vector search · поиск по векторам · dense vector retrieval · поиск ближайших векторов
Зачем это знать
Скалярное произведение и косинусное сходство могут по-разному упорядочить одни и те же векторы. Выбор метрики проверяйте вместе с моделью и нормализацией. Точное нахождение соседей ещё не означает, что их тексты отвечают на вопрос. При смене модели эмбеддингов проверьте, какие векторы сохранены и какой моделью получен вектор запроса.
Карта понятия
Что подтверждено
В примере Faiss индекс IndexFlatL2 перебирает векторы и возвращает k ближайших, упорядоченных по возрастанию расстояния.
Граница применимости: Getting started, разделы Building an index and adding the vectors to it и Searching; предполагается, что индекс содержит не менее k векторов.
Для METRIC_L2 Faiss возвращает квадрат евклидова расстояния. Скалярное произведение в общем случае отличается от косинусного сходства.
Граница применимости: Faiss wiki, METRIC_L2 и METRIC_INNER_PRODUCT; для получения самого расстояния L2 из результата извлекают квадратный корень.
В описанном способе Faiss ненулевые векторы документов и запроса приводят к длине 1, затем ищут максимум скалярного произведения: оно равно косинусному сходству.
Граница применимости: Faiss wiki, How can I index vectors for cosine similarity?; нормализация по L2. Для нулевого вектора косинусное сходство по приведённой формуле не определено.
Точный поиск ближайших векторов сам по себе не устанавливает, есть ли ответ на вопрос в найденных текстах.
Граница применимости: Редакционный вывод из точного поиска Faiss и отдельной оценки наличия ответа в DPR; математическая близость и полезность для вопроса — разные критерии.
В руководстве Qdrant по смене эмбеддинг-модели документы заново кодируют новой моделью из исходных данных. Перестройка поискового индекса по прежним векторам не выполняет этот пересчёт.
Граница применимости: Редакционное сопоставление миграции Qdrant, проверенной авторами с 1.19.0, и построения индекса Faiss по готовым векторам. Пересчёт эмбеддингов и индексирование — разные этапы.
В Qdrant одна запись может хранить несколько именованных векторов, в том числе от разных моделей. Для плотных векторов отдельно задают размерность и метрику; using выбирает пространство поиска.
Граница применимости: Документация Qdrant, Named Vectors: конфигурация плотных векторов и пример query с using; прочитана 25.10.2026.
В описанной миграции Qdrant перед переключением проверяют наличие новых векторов и качество выдачи на размеченных запросах. Затем меняют и выбранное пространство, и модель запроса. Отличие списков результатов без разметки не устанавливает, какой поиск лучше.
Граница применимости: Руководство для Qdrant 1.19.0: Switch Search to the New Vector и Check Retrieval Quality Before Switching. Полнота пересчёта и релевантность выдачи проверяются отдельно.
Что проверить
- Зафиксируйте модели, которыми получены векторы запроса и документов.
- Уточните, что сортируется: расстояние по возрастанию или сходство по убыванию.
- Для косинусного сходства проверьте нормализацию ненулевых векторов.
- Проверьте, содержат ли найденные тексты ответ на контрольный вопрос.
- Перед сменой модели эмбеддингов найдите исходные данные для пересчёта и проверьте, у всех ли нужных документов есть новые векторы.
- При переключении согласуйте модель запроса и выбранное пространство векторов. Проверьте качество на прежних размеченных запросах.
Первоисточники
- Getting started
Прочитаны IndexFlatL2 и Searching: brute-force L2, поиск k соседей и сортировка по возрастанию расстояния в этом примере.
- MetricType and distances
Прочитаны METRIC_L2, METRIC_INNER_PRODUCT и cosine similarity. Указана нормализация для описанного способа; не переносить на все библиотеки.
- Dense Passage Retrieval for Open-Domain Question Answering
Разделы 2–3: отбор фрагментов и top-k retrieval accuracy. Знаменатель этой метрики — число проверенных вопросов.
Утверждения: 04
- Migrate to a New Embedding Model
Прочитаны требования к исходным данным, переключение модели и векторов, проверка полноты и качества. Локальный запуск Qdrant не выполнялся; статья не задаёт полный протокол миграции с конкурентными изменениями.
- Vectors — Named Vectors
Прочитаны Named Vectors и пример поиска с using: несколько векторов одной записи, раздельные конфигурации и выбор пространства. Изменение схемы существующей коллекции здесь не описывается.
Утверждения: 06