pgvector: PostgreSQL Extension for Vector Similarity Search
pgvector adds native vector data types and similarity search to PostgreSQL, enabling semantic search, RAG, and embeddings without a separate vector database.
pgvector is a PostgreSQL extension that adds native vector data types and similarity-search operators, enabling semantic search and embeddings-based retrieval entirely within Postgres. ## Key Features - **Vector type**: Stores dense vectors up to 16,000 dimensions (sufficient for all major embedding models) - **Distance operators**: L2 distance (`<->`), inner product (`<#>`), cosine distance (`<=>`), and L1 distance - **Approximate indexes**: HNSW (hierarchical navigable small world graphs) and IVFFlat (inverted file with flat quantization) for fast approximate nearest-neighbor search ## Why It Matters Before pgvector, using embeddings for search required a separate vector database (Pinecone, Weaviate, Qdrant). pgvector allows teams already using PostgreSQL to add semantic search without new infrastructure — storing embeddings alongside relational data, joining on foreign keys, and filtering with standard SQL `WHERE` clauses. ## Use Cases - **RAG** (Retrieval-Augmented Generation): Store document chunk embeddings, retrieve relevant context for LLM prompting - **Semantic search**: Find similar documents by meaning rather than keywords - **Recommendations**: Find similar items based on embedding similarity - **Semantic Search: Finding Content by Meaning Instead of Keywords**: Detect near-duplicate content by cosine similarity threshold **See also:** Vector Databases: How Embedding Search Powers Modern AI Applications