Skip to content

Decision matrix - Vector database

You have a RAG / semantic search workload. You need to pick a vector database. This page scores the major options against criteria that actually decide the choice in production. For a deeper write-up of each product, see service-comparison-vector-databases.md.

Criteria

# Criterion Why it matters
1 Hosted vs self-host Ops burden vs control
2 Hybrid search (vector + keyword + filters) Real-world queries are rarely pure vector
3 Metadata filtering at query time Multi-tenant + RBAC + per-doc filters
4 Scale ceiling Billions of vectors vs millions
5 Cost shape (per-query / storage / fixed) Predictable spend at scale
6 Language SDK quality Time-to-first-query in your stack
7 Integration with cloud-native services If you're already on AWS / Azure / GCP
8 Vendor lock vs portable format Switching costs

Scoring

Scale: 1 (poor) β†’ 5 (excellent).

Product Hosted Hybrid search Metadata filter Scale Cost predictability SDK Cloud integration Portability Total
Pinecone 5 4 5 5 3 (per-query + storage tiers) 5 3 (cloud-agnostic) 2 (proprietary) 32
Weaviate 4 (cloud + self) 5 (built-in BM25) 5 5 4 4 3 4 (open-source) 34
Qdrant 4 (cloud + self) 4 5 5 4 4 3 4 (open-source) 33
Milvus / Zilliz 4 (Zilliz hosted; Milvus self) 4 5 5 (multi-billion) 3 4 3 4 (open-source) 32
pgvector (Postgres) 4 (any Postgres host) 5 (full SQL + BM25 + vectors) 5 3 (millions, billions with sharding) 5 (your DB cost) 5 (every Postgres SDK) 5 (already there) 5 (Postgres) 37
OpenSearch / Elasticsearch 5 (managed services) 5 (BM25 + vectors + filters native) 5 5 3 4 5 (already there) 4 (open-source) 36
AWS Bedrock Knowledge Bases 5 4 4 4 3 4 5 (AWS-native) 1 (lock-in) 30
Azure AI Search 5 5 5 5 3 4 5 (Azure-native) 2 34
Vertex Vector Search 5 3 (limited hybrid) 4 5 3 4 5 (GCP-native) 1 30
Chroma 3 (lighter hosted) 3 4 3 (tens of millions) 5 4 2 5 (OSS) 29

Recommendations by scenario

  • Already running Postgres, <50M vectors, want one fewer database to manage β†’ pgvector. Best total score; you avoid a new system entirely.
  • Already running OpenSearch or Elasticsearch β†’ OpenSearch / Elasticsearch. Native vector search shipped a few years ago; reuse what you have.
  • Cloud-native AWS, prefer fully managed RAG including chunking and ingestion β†’ AWS Bedrock Knowledge Bases if vendor lock is acceptable; otherwise OpenSearch Serverless.
  • Cloud-native Azure β†’ Azure AI Search. Best-in-class hybrid search and Azure-native.
  • Cloud-native GCP β†’ Vertex Vector Search if you need global low latency; AlloyDB pgvector if you want SQL too.
  • Want to self-host on K8s with great performance β†’ Qdrant or Weaviate. Both excellent OSS; Weaviate has stronger built-in hybrid search.
  • Need billions of vectors, willing to operate β†’ Milvus (or Zilliz hosted) - the one purpose-built for that scale.
  • Need fastest time-to-first-query for prototyping β†’ Chroma locally, then migrate when you outgrow it.
  • Don't want to think about it, willing to pay β†’ Pinecone. It just works; predictable behavior; the largest community of how-tos.

Anti-patterns

  • Running a dedicated vector DB to store <1M vectors when your existing Postgres / OpenSearch could handle it.
  • Picking based on benchmarks alone - real-world hybrid + metadata filtering performance dominates pure vector recall benchmarks.
  • Forgetting to budget for re-embedding when you change the embedding model.