Обычная база данных хорошо ищет по точным совпадениям и числовым диапазонам. Векторная база заточена под другой вопрос: «найди ближайшие точки к моему запросу в многомерном пространстве».
Что внутри
- Векторы фиксированной размерности (например, 768 или 1536).
- Метаданные: к какому документу относится вектор, какие у документа метки и атрибуты.
- Специальный индекс для приближённого поиска ближайших соседей (ANN).
- Фильтры по метаданным, чтобы сужать поиск (например, только документы своего отдела).
Что выбирают
- Pinecone, Weaviate, Qdrant, Milvus, Chroma — самостоятельные векторные базы.
- pgvector — расширение PostgreSQL, удобно, если хочется одно решение для всех данных.
- Elasticsearch, OpenSearch — поддерживают векторный поиск рядом с обычным.
- Строите RAG поверх своих документов
- Нужен семантический поиск или сравнение объектов по смыслу
- Хотите делать рекомендации «похожие на это»
- Маленький объём данных, который помещается в обычный массив в памяти
- Задача чисто полнотекстового поиска без разбора смысла
Документация продукта на 10 000 страниц разбита на куски примерно по 500 токенов. Каждому куску посчитан эмбеддинг и записан в векторную базу вместе со ссылкой на исходный раздел. Когда сотрудник пишет ассистенту «как настроить уведомления», система за миллисекунды находит 5 наиболее близких кусков и отдаёт их большой языковой модели для подготовки ответа.
Если только начинаете и не уверены в нагрузке — берите pgvector внутри PostgreSQL, которая у вас уже есть. Так не придётся поднимать новый сервис, настраивать резервные копии и осваивать отдельный язык запросов. Перейти на самостоятельную векторную базу можно потом, когда упрётесь в потолок производительности.