Vector-поиск - стандартный кирпич современных AI-продуктов. На наших RAG-системах используются и pgvector, и Qdrant. Разбираем, в каких сценариях что лучше.
pgvector - для чего работает
- Объёмы до 10 млн векторов размерности 1024–1536.
- Требуется JOIN с реляционными данными (метаданные, права доступа, фильтры).
- Команда уже на Postgres, лишний сервис в стеке нежелателен.
- Latency до 50 мс приемлем (с HNSW и нормальным cache).
Qdrant / Weaviate - для чего
- Объёмы от 50 млн векторов и выше.
- Латентность нужна < 20 мс на p95.
- Сложные гибридные запросы (vector + sparse + полнотекст).
- Готовые фичи: квантизация, payload-индексы, multi-tenancy из коробки.
Pinecone - почти не используем
Хороший продукт, но дорогой и проприетарный. Для большинства проектов open-source-альтернативы (Qdrant) дают тот же результат за половину стоимости. Берём Pinecone только если у клиента уже стоит и команда умеет с ним работать.
Эвристика выбора
Старт каждого RAG-проекта - pgvector. На объёме до миллиона документов он обычно справляется. Когда упираемся в latency или объём - выносим в Qdrant. Из последних 11 проектов на pgvector осталось 7, перевели в Qdrant - 4.