Векторный поиск — метод подбора документов по смыслу. Тексты заранее переводятся в наборы чисел, запрос переводится тем же способом, и система ищет записи, чьи числа расположены ближе всего к числам запроса.
Как работает близость
Каждый текст представляется точкой в пространстве с большим числом измерений — это его эмбеддинг. Тексты о похожем оказываются рядом, тексты о разном — далеко, причём общие слова для этого не нужны.
Расстояние считается математически, чаще всего через угол между векторами. Поиск сводится к задаче о ближайших соседях. Перебирать всю базу дорого, поэтому используют приближённые алгоритмы: они жертвуют абсолютной точностью ради скорости и находят почти ближайшие точки за приемлемое время.
Практическое следствие: запрос «как вернуть товар» найдёт страницу об условиях возврата, где нет ни слова «как», ни слова «товар». Поиск по словам этого не сделает.
Где метод проигрывает
- Точные совпадения: артикул, название модели, цитата. Смысловая близость здесь мешает, нужен буквальный поиск.
- Отрицания и условия. Векторы плохо различают «с гарантией» и «без гарантии»: тексты похожи, смысл противоположен.
- Свежесть и факты. Близость по смыслу не отличает актуальные данные от устаревших.
- Редкие термины, которых почти не было в обучающих текстах модели.
Поэтому в рабочих системах векторный поиск обычно сочетают с поиском по словам: один ловит смысл, другой — точные формулировки.
Зачем это знать при работе с сайтом
Векторный поиск лежит в основе того, как языковые модели подбирают источники для ответа. Прежде чем сгенерировать текст, система ищет подходящие фрагменты в базе, и делает это по смысловой близости, а не по вхождению фразы. Отсюда практика подготовки страниц под ответы нейросетей: значение имеет самодостаточность фрагмента, а не плотность ключевых слов.
Тот же механизм стоит за поведением обычного поиска, где релевантность давно оценивается по смыслу, и за способностью системы отвечать на длинный хвост — редкие формулировки, которых не было ни в одном тексте буквально.
Частые вопросы
Чем векторный поиск отличается от поиска по ключевым словам?
Нужно ли что-то делать на сайте ради векторного поиска?
Заменит ли он обычный поиск?