{
  "slug": "choosing-a-vector-database",
  "title": "Choosing a Vector Database",
  "description": "Criteria-based decision guide: dedicated vs. add-on vector stores, scale thresholds, hybrid search support, self-host vs. managed, and a start-here recommendation.",
  "category": "Guide",
  "tags": [
    "vector-databases",
    "rag",
    "retrieval",
    "pgvector",
    "infrastructure",
    "agents"
  ],
  "updated": "2026-06-25",
  "canonical": "https://changegamer.ai/resources/choosing-a-vector-database",
  "markdown": "https://changegamer.ai/resources/choosing-a-vector-database.md",
  "outline": [
    {
      "depth": 2,
      "text": "Key facts",
      "anchor": "key-facts"
    },
    {
      "depth": 2,
      "text": "What type of vector store do you need?",
      "anchor": "what-type-of-vector-store-do-you-need"
    },
    {
      "depth": 2,
      "text": "Decision axes",
      "anchor": "decision-axes"
    },
    {
      "depth": 2,
      "text": "Option comparison",
      "anchor": "option-comparison"
    },
    {
      "depth": 2,
      "text": "Start here",
      "anchor": "start-here"
    },
    {
      "depth": 2,
      "text": "Verified sources",
      "anchor": "verified-sources"
    }
  ],
  "related": [
    {
      "slug": "rag-retrieval-for-agents",
      "title": "RAG and Retrieval for Agents",
      "description": "End-to-end practitioner reference for Retrieval-Augmented Generation: pipeline stages, chunking strategies, dense/sparse/hybrid retrieval, reranking, agentic retrieval patterns, quality failure modes, and evaluation — with verified sources for every named technique.",
      "url": "https://changegamer.ai/resources/rag-retrieval-for-agents"
    },
    {
      "slug": "agent-memory-context",
      "title": "Agent Memory and Context Management",
      "description": "Architecture reference for agent memory: types (working, long-term, episodic, semantic, procedural), context-management techniques (summarization, RAG, sliding windows, prompt caching), storage substrates, and memory frameworks — with security notes and cross-links to related guides.",
      "url": "https://changegamer.ai/resources/agent-memory-context"
    },
    {
      "slug": "chunking-strategies-for-rag",
      "title": "Chunking Strategies for RAG",
      "description": "Practitioner reference for chunking documents before embedding: fixed-size, recursive, semantic, late chunking, and contextual retrieval — with a strategy comparison table, chunk-size and overlap tradeoffs, code/table/Markdown handling, embedding model context limits, and evaluation methods.",
      "url": "https://changegamer.ai/resources/chunking-strategies-for-rag"
    },
    {
      "slug": "hybrid-search-for-rag",
      "title": "Hybrid Search for RAG: BM25 + Dense Retrieval and Fusion",
      "description": "How to combine lexical (BM25/SPLADE) and dense vector retrieval with Reciprocal Rank Fusion for higher first-stage recall in RAG pipelines — with the RRF formula, a sparse-method comparison table, and verified DB support.",
      "url": "https://changegamer.ai/resources/hybrid-search-for-rag"
    }
  ],
  "body": "Choosing where to store and search vectors is an infrastructure decision, not an embedding or algorithm decision. This guide covers selection criteria only — for index types (HNSW/IVF) and embedding models see /resources/embeddings-vector-search; for the full RAG pipeline see /resources/rag-retrieval-for-agents; for hybrid retrieval see /resources/hybrid-search-for-rag.\n\n## Key facts\n\n- Where vectors get stored and searched is fundamentally an ops/infrastructure call, separate from which embedding model or ANN algorithm you pick.\n- Vector stores fall into four types: extensions to a database you already run, dedicated vector databases, embedded in-process libraries, and fully managed cloud services.\n- Scale drives the choice: small corpora tolerate almost any option, tens of millions of vectors push you toward purpose-built or columnar stores, and billion-scale deployments need systems engineered specifically for that volume.\n- Combining vector similarity with keyword matching is table stakes for real-world RAG deployments, and which products support it natively differs a lot as of 2026.\n- Handling storage yourself keeps costs and data under your control but adds real operational work; letting a vendor manage it removes that maintenance burden at a higher price point.\n- For teams already on Postgres, layering in pgvector is the lowest-friction starting point; those without a database already chosen tend to land on Qdrant, the most frequently suggested open-source dedicated engine.\n\n## What type of vector store do you need?\n\n- **Extension / add-on** — vector search added to a database you already operate: pgvector (PostgreSQL), Redis vector search, Elasticsearch/OpenSearch kNN, MongoDB Atlas Vector Search.\n- **Dedicated vector database** — purpose-built, vector search is the primary API: Pinecone, Qdrant, Weaviate, Milvus.\n- **Embedded library** — runs in-process, no server: LanceDB OSS, Chroma (in-process), FAISS.\n- **Managed cloud service** — fully hosted, no infra to operate: Pinecone Serverless, Qdrant Cloud, Weaviate Cloud, MongoDB Atlas.\n\n## Decision axes\n\n**Vector count (scale)** — below ~1 M vectors almost anything works; at 10 M+ dedicated DBs (Qdrant, Milvus) and columnar stores (LanceDB) are designed for it; at billion+ scale Milvus Distributed and Pinecone Serverless are purpose-engineered. pgvector reaches hundreds of millions with HNSW but needs careful tuning.\n\n**Filtered metadata search** — all named dedicated DBs support pre-filtering; pgvector supports WHERE clauses that interact with the vector index. Filtered-search accuracy varies — Qdrant and Pinecone document accuracy-preserving filtered search explicitly.\n\n**Hybrid search (vector + keyword)** — required for most production RAG. Verified native support (mid-2026): Qdrant (dense+sparse, RRF), Weaviate (BM25F + vector fusion), Milvus (BM25 + dense + sparse), Elasticsearch/OpenSearch (BM25 + kNN), MongoDB Atlas ($rankFusion/$scoreFusion), Redis (FT.HYBRID in recent versions), LanceDB. pgvector is not native but Postgres gives you tsvector full-text + vectors, fused with RRF at the query layer. Chroma is better for dev than production hybrid.\n\n**Self-host vs. managed** — operational cost often exceeds storage cost. Managed services remove ops burden at a price premium; self-hosted options trade ops work for cost control and data sovereignty.\n\n**Consistency** — pgvector inherits Postgres ACID guarantees (ideal when vectors must stay transactionally consistent with relational data); dedicated DBs vary from eventual to strong — verify for your write pattern.\n\n**Cost model** — embedded libs: compute only; pgvector: free extension + your Postgres host; dedicated self-hosted: free software + your servers; managed: per read/write/storage or per cluster. Compare total cost at your query volume, not just storage.\n\n## Option comparison\n\n| Option | Type | Best when | Main tradeoff |\n|---|---|---|---|\n| **pgvector** | Add-on (Postgres) | Already on Postgres; &lt; ~100 M vectors; need ACID | Ops tied to Postgres; limited distributed scale |\n| **Qdrant** | Dedicated (self-host/managed) | Production RAG; strong filtered + hybrid search | More infra than pgvector if you have no dedicated stack |\n| **Weaviate** | Dedicated (self-host/managed) | Object store + vector; multi-tenant SaaS | Heavier footprint; config complexity |\n| **Milvus** | Dedicated (self-host) | Billion-scale; distributed | Complex deployment |\n| **Pinecone** | Fully managed | No-ops priority; serverless auto-scale | Vendor lock-in; per-query cost at high QPS |\n| **Elasticsearch / OpenSearch** | Add-on (search cluster) | Already running ES/OS; want BM25 hybrid | Not purpose-built; operational weight |\n| **MongoDB Atlas Vector Search** | Add-on (Atlas) | Already on Atlas; vector + document in one query | Atlas-only; managed cost |\n| **Redis** | Add-on (cache layer) | Ultra-low latency; data already in Redis | Memory-bound; less suited to large cold corpora |\n| **LanceDB** | Embedded / managed | Columnar analytics + vectors; multimodal | Single-node OSS; Enterprise for distributed |\n| **Chroma** | Embedded / managed | Local dev, prototyping, teaching | Single-node; limited production hybrid story |\n| **FAISS** | Library (no server) | Research; custom pipelines; recall baseline | No server/persistence — you build everything |\n\n## Start here\n\n- **Already run PostgreSQL?** Add **pgvector** first — HNSW/IVFFlat indexes, transactional consistency, no new infrastructure; pair with tsvector + RRF for hybrid. Migrate to a dedicated store only when you hit operational pain or scale limits.\n- **No existing database constraint?** **Qdrant** is the most commonly recommended open-source dedicated vector DB for production RAG as of 2026 — native hybrid, strong filtered ANN, Apache 2.0, self-hosted or managed.\n- **Development/prototyping only?** LanceDB OSS or Chroma (in-process) — iterate with no infra.\n- **Billion-scale?** Pinecone Serverless (no-ops) or Milvus Distributed (self-hosted).\n- **Existing Elastic/OpenSearch stack?** Use its built-in kNN + BM25 hybrid — no new DB needed.\n\n## Verified sources\n\n- pgvector (PostgreSQL extension): https://github.com/pgvector/pgvector\n- Qdrant hybrid search: https://qdrant.tech/articles/hybrid-search/\n- Weaviate hybrid search: https://weaviate.io/blog/hybrid-search-explained\n- Milvus overview: https://milvus.io/docs/overview.md\n- Pinecone: https://www.pinecone.io/\n- MongoDB Atlas hybrid search ($rankFusion / $scoreFusion): https://www.mongodb.com/blog/post/product-release-announcements/boost-search-relevance-mongodb-atlas-native-hybrid-search\n- Redis hybrid search (FT.HYBRID): https://redis.io/blog/revamping-context-oriented-retrieval-with-hybrid-search-in-redis-84/\n- Elasticsearch hybrid search: https://www.elastic.co/search-labs/blog/hybrid-search-elasticsearch\n- LanceDB: https://github.com/lancedb/lancedb\n- Chroma: https://github.com/chroma-core/chroma\n- FAISS (Meta AI): https://github.com/facebookresearch/faiss",
  "sources": [
    "https://github.com/pgvector/pgvector",
    "https://qdrant.tech/articles/hybrid-search/",
    "https://weaviate.io/blog/hybrid-search-explained",
    "https://milvus.io/docs/overview.md",
    "https://www.pinecone.io/",
    "https://www.mongodb.com/blog/post/product-release-announcements/boost-search-relevance-mongodb-atlas-native-hybrid-search",
    "https://redis.io/blog/revamping-context-oriented-retrieval-with-hybrid-search-in-redis-84/",
    "https://www.elastic.co/search-labs/blog/hybrid-search-elasticsearch",
    "https://github.com/lancedb/lancedb",
    "https://github.com/chroma-core/chroma",
    "https://github.com/facebookresearch/faiss"
  ]
}