Skip to main content
VectorDB provides unified wrappers for five production-grade vector databases, each optimized for different deployment scenarios and feature requirements.

Supported backends

Pinecone

Managed cloud with namespace-based multi-tenancy and serverless scale

Weaviate

Cloud or self-hosted with hybrid search and native BM25

Chroma

Local or HTTP for development and lightweight prototyping

Milvus

Self-hosted or managed with partition-key multi-tenancy

Qdrant

Self-hosted or cloud with named vectors and quantization

Backend comparison

Pinecone

Architecture

Pinecone uses lazy client initialization with GRPC transport for production-grade performance. Key features:
  • Serverless and pod-based deployment models
  • Namespace-based multi-tenancy (lightweight, per-query scoping)
  • Automatic metadata flattening for nested dictionaries
  • Batch processing with progress tracking
  • Support for dense and sparse (hybrid) vectors
File: src/vectordb/databases/pinecone.py

Connection

Index creation

Multi-tenancy

Pinecone uses namespaces for logical data isolation:

Metadata constraints

Pinecone requires scalar metadata values (str, int, float, bool) or lists of strings. Nested dictionaries are automatically flattened:

Weaviate

Architecture

Weaviate uses eager connection initialization with collection-centric design. Key features:
  • Native hybrid search (vector + BM25)
  • Generative search (RAG with OpenAI, Cohere, etc.)
  • Tenant-based multi-tenancy (full isolation)
  • Flexible schema with property types
  • Query-time reranking
File: src/vectordb/databases/weaviate.py

Connection

Collection creation

Multi-tenancy

Weaviate uses tenants for strong data isolation:
Weaviate natively supports BM25 keyword ranking:

Metadata filtering

Weaviate supports MongoDB-style filters:

Chroma

Architecture

Chroma supports both in-process (ephemeral/persistent) and HTTP client modes. Key features:
  • Zero-setup local development
  • In-memory or persistent storage
  • HTTP server for remote access
  • Native metadata filtering
  • Embedding function integration
File: src/vectordb/databases/chroma.py

Connection

Collection management

Metadata filtering

Milvus

Architecture

Milvus is designed for large-scale deployments with partition-key based multi-tenancy. Key features:
  • Partition-key multi-tenancy (schema-level partitioning)
  • Scalable infrastructure (horizontal scaling)
  • Multiple index types (IVF, HNSW, DiskANN)
  • Dynamic schema fields
  • GPU acceleration support
File: src/vectordb/databases/milvus.py

Connection

Collection with partition key

Multi-tenancy

Milvus uses partition keys for tenant isolation:

Qdrant

Architecture

Qdrant supports named vectors and advanced payload filtering. Key features:
  • Named vectors (multiple embeddings per document)
  • Quantization for memory optimization
  • Rich payload filtering (nested JSON support)
  • Collection aliases
  • Snapshot support
File: src/vectordb/databases/qdrant.py

Connection

Collection with named vectors

Payload filtering

Qdrant supports nested JSON payloads:

Feature matrix

Choosing a backend

  • You want a fully managed serverless solution
  • You need namespace-based multi-tenancy
  • You prefer minimal operational overhead
  • You need auto-scaling for variable workloads
  • You need native hybrid search (vector + BM25)
  • You want built-in generative AI capabilities
  • You need flexible schema with strong typing
  • You require tenant-based data isolation
  • You’re in development/prototyping phase
  • You need local testing without external dependencies
  • You want simple setup with minimal configuration
  • You have lightweight indexing requirements
  • You need partition-key based multi-tenancy
  • You have large-scale infrastructure requirements
  • You want fine-grained index type control (IVF, HNSW)
  • You need GPU acceleration for embedding generation
  • You need named vectors (multiple embeddings per document)
  • You want quantization for memory optimization
  • You require rich nested payload filtering
  • You need snapshot/backup capabilities

Common patterns

All wrappers implement a consistent interface for common operations:

Index/collection creation

Document upsert

Query

Hybrid search

This consistency allows you to swap backends with minimal code changes, making it easy to benchmark different databases against your workload.