Tooling

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 vector type and HNSW / IVFFlat indexes to Postgres. PostgreSQL license. The default first move in 2026 — works on Neon, Supabase, RDS, Crunchy, Railway, Fly. Combined with pg_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 + vss extension — k-NN over a DuckDB column; MIT; perfect for analytical / batch use cases. See Data Warehouses.
  • sqlite-vec — replaces older sqlite-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.

On this page