pgvector

PostgreSQL extension adding a vector data type and similarity search operators. Best when you want vector search within an existing PostgreSQL database.

Syntax

vector-databases
CREATE EXTENSION vector;
column_name vector(384)
SELECT * FROM t ORDER BY embedding <=> query_vec LIMIT 5;

Example

vector-databases
-- pgvector setup:
CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE documents (
  id SERIAL PRIMARY KEY,
  content TEXT,
  embedding vector(1536)
);

-- Approximate nearest neighbor index:
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);

-- Similarity search:
SELECT content, 1 - (embedding <=> $1::vector) AS similarity
FROM documents
ORDER BY embedding <=> $1::vector
LIMIT 5;