pgvector: як додати векторний пошук у PostgreSQL
8 вересня 2026 р.

Коли команда починає будувати семантичний пошук чи RAG, часто виникає питання: одразу брати окрему векторну базу даних чи можна обійтися наявним PostgreSQL? Для багатьох проєктів відповідь — pgvector. Розберемо, що це й коли його достатньо.
Що таке pgvector
pgvector — це розширення для PostgreSQL, яке додає новий тип даних vector і вміння шукати схожі вектори прямо в базі. Замість того щоб піднімати окремий сервіс, ви додаєте векторний пошук у базу, яка у вас, найімовірніше, вже є. Це різко знижує поріг входу.
Як це виглядає на практиці
Робота починається з увімкнення розширення й створення колонки для векторів:
CREATE EXTENSION vector;
CREATE TABLE documents (
id bigserial PRIMARY KEY,
content text,
embedding vector(1536)
);
Далі ви зберігаєте ембединги своїх текстів у колонці embedding, а пошук найближчих за змістом записів робиться звичайним SQL-запитом:
SELECT content
FROM documents
ORDER BY embedding <-> '[...]'
LIMIT 5;
Оператор <-> рахує відстань між векторами й повертає найрелевантніші результати. Для великих обсягів додають індекс (наприклад, HNSW), який робить пошук швидким.
Головна перевага
Найбільший плюс pgvector — простота. Дані й вектори живуть в одній базі, тому ви можете поєднувати семантичний пошук зі звичайними SQL-фільтрами (за датою, категорією, користувачем) в одному запиті. Не потрібно синхронізувати два сховища й тримати окрему інфраструктуру. Для команди, яка вже працює з PostgreSQL, це величезна економія складності.
Коли pgvector достатньо
Для більшості проєктів — цілком: внутрішні бази знань, пошук по документах, RAG для застосунку з помірними обсягами. Якщо у вас від тисяч до кількох мільйонів векторів і PostgreSQL вже в стеку, pgvector — розумний вибір за замовчуванням.
Коли думати про спеціалізовану базу
Окремі векторні бази (Pinecone, Qdrant, Weaviate) варто розглядати, коли обсяги стають дуже великими (десятки-сотні мільйонів векторів і вище), потрібне екстремально низьке затримання чи специфічні можливості пошуку в масштабі. Але приходити до цього краще від реальної потреби, а не «про запас».
Практична порада
Починайте з pgvector, якщо у вас уже є PostgreSQL. Ви швидко отримаєте робочий семантичний пошук з мінімальною складністю, а мігрувати на спеціалізоване рішення завжди зможете пізніше — коли (і якщо) впертеся в реальні обмеження. Передчасна складна інфраструктура частіше шкодить, ніж допомагає.