pgvector
Расширение PostgreSQL для хранения и поиска по векторным эмбеддингам.
Что это
pgvector — хранение, индексирование и similarity search по векторам прямо в PostgreSQL. IVFFlat и HNSW индексы обеспечивают быстрый поиск по миллионам векторов.
Векторы хранятся рядом с остальными данными — один SQL-запрос может сочетать семантический поиск с фильтрацией по обычным полям.
По сравнению с Pinecone и Weaviate, pgvector не требует отдельной инфраструктуры — расширение ставится на существующий PostgreSQL. По сравнению с ChromaDB, pgvector предлагает полную ACID-совместимость и SQL-интеграцию. Для проектов с миллионами векторов может уступать специализированным решениям (Milvus, Qdrant), но для корпоративных RAG-систем с десятками-сотнями тысяч документов — оптимальный выбор.
Ключевые возможности
SQL-интеграция
Векторный поиск в обычном SQL-запросе — JOIN, WHERE, ORDER BY всё работает. Можно комбинировать семантический поиск с любыми реляционными фильтрами.
HNSW-индексы
Быстрый approximate nearest neighbor поиск по миллионам векторов. Настраиваемые параметры ef_construction и m позволяют балансировать точность и скорость.
ACID
Транзакции для векторных операций — данные всегда консистентны. Обновление документа и его эмбеддинга происходит атомарно.
Почему мы используем
pgvector — альтернатива ChromaDB для проектов, где уже есть PostgreSQL. Не нужна отдельная векторная БД — эмбеддинги, метаданные и бизнес-данные в единой СУБД.
Мы выбираем pgvector, когда нужно сочетать семантический поиск с бизнес-фильтрами: «найди похожие документы, но только в категории X, для пользователя Y, за последний месяц». В ChromaDB такие запросы требуют пост-фильтрации, в pgvector — один SQL-запрос.
Сильные стороны
Не нужна отдельная инфраструктура — всё в PostgreSQL, который уже есть.
Знакомый язык запросов — не нужно учить новый API для векторного поиска.
Наш опыт
Мы используем pgvector в RAG-системах, где нужна комбинация семантического поиска с реляционными фильтрами: поиск по документам с учётом прав доступа, дат, категорий.
Типовой стек: OpenAI text-embedding-3-small → pgvector → LangChain RetrievalQA. Индексы HNSW для production, IVFFlat для прототипирования. Настраиваем через Django ORM с кастомными полями (VectorField) и менеджерами для similarity search.
Для каких задач применяем
- RAG-системы с реляционными фильтрами
- Семантический поиск по документам
- Рекомендательные системы