Vector Databases
Qdrant, Weaviate, Milvus, Chroma, pgvector — storage and retrieval for embeddings.
Vector databases index high-dimensional embeddings for similarity search — the substrate for RAG, semantic search, recommendations, and image / audio matching. For full-text + vector hybrid search at the app tier, see Search. For RAG pipelines and chunkers, see Document Parsing & RAG. For LLM tooling, see AI/LLM.
Postgres-extension (run on the DB you already have)
- ★ pgvector — adds a
vectortype and HNSW / IVFFlat indexes to Postgres. PostgreSQL license. The default first move in 2026 — works on Neon, Supabase, RDS, Crunchy, Railway, Fly. Combined withpg_search(ParadeDB) for hybrid lexical + vector search. - ★ pgvectorscale (Timescale) — improves pgvector for large datasets via DiskANN; Apache 2.0 (TSL for some advanced features).
- lantern — alternative HNSW Postgres extension; Apache 2.0.
Standalone vector DBs
- ★ Qdrant — Rust; Apache 2.0; strong filtering, payloads, hybrid search. The default standalone OSS pick. Qdrant Cloud has a 1 GB free tier.
- ★ Weaviate — Go; BSD-3; opinionated schema with built-in vectorizer modules and named-vectors / multi-vector support. Weaviate Cloud has a small free tier.
- Milvus (Zilliz) — C++/Go; Apache 2.0; ships in lite (
milvus-lite), standalone, and distributed modes. Strongest at very large scale (billions of vectors). Zilliz Cloud is the managed offering. - Chroma — Python-first; Apache 2.0; smallest API surface; great for prototyping and local RAG. Hosted Chroma Cloud launched in 2025.
- Vespa (Yahoo) — Apache 2.0; mature search + vector engine; harder ops; great for very heterogeneous ranking workloads.
- lancedb — Rust embedded vector DB on Lance file format; Apache 2.0; great for "vector DB inside my Python script" or Parquet-shaped lakes.
In-process / embedded
- ★ DuckDB +
vssextension — k-NN over a DuckDB column; MIT; perfect for analytical / batch use cases. See Data Warehouses. sqlite-vec— replaces oldersqlite-vss; Apache 2.0; small, embeddable.- FAISS (Meta) — the canonical similarity-search C++/Python library; MIT; not a DB but the indexing primitive under many of these.
- HNSWlib — header-only HNSW; powers many implementations.
- Annoy (Spotify) — older; mmap-friendly.
Search-native with vector
- Meilisearch — vector + lexical; MIT; see Search.
- Typesense — vector + lexical; GPL-3; see Search.
- OpenSearch / Elasticsearch — k-NN plugin; Apache 2.0 / Elastic License v2; the default for "we already have a search cluster, add vectors."
- Apache Solr — k-NN since 9.0; less popular than OpenSearch in 2026.
Hosted-only / paid
- Pinecone — closed-source SaaS; small free tier; the easiest "no ops" pick.
- Turbopuffer — serverless vector DB on object storage; tiny free tier; cheap at scale.
- Vectara — RAG-as-a-service; embedding + retrieval + reranking bundled.
- Zilliz Cloud (Milvus), Qdrant Cloud, Weaviate Cloud — managed editions of the OSS engines.
Patterns to know
- Start with pgvector. For < 10M vectors most teams never need a separate DB.
- Hybrid search beats pure vector. Combine BM25 + vector with reciprocal-rank-fusion; most engines support it natively now.
- Filters are first-class. A vector match without
tenant_id = ?is a leak; pick an engine where filters are evaluated during search, not post-filter. - Index choice matters. HNSW for low-latency, IVFFlat / DiskANN for huge datasets, flat for small + accurate.
- Re-embed on model changes. Keep the embedding model + version per row; treat re-embedding as a backfill job in Data Orchestration.
- Don't over-chunk. Bigger, semantically clean chunks usually beat aggressive splitting; see Document Parsing & RAG.
Pick this if…
- Default first step in 2026: pgvector on whatever Postgres you already use.
- Standalone OSS, great filters: Qdrant.
- Schema-rich, multi-vector / multi-modal: Weaviate.
- Billions of vectors: Milvus or Vespa.
- Local RAG prototype: Chroma or
sqlite-vec. - No ops at any cost: Pinecone or Turbopuffer.
- Already have OpenSearch / Elasticsearch: use the k-NN plugin first.