Open-Source Vector Databases
Choose with your filters, permissions and recovery path in the test.
A successful nearest-neighbor query is a starting point. A retrieval service also has to exclude unauthorized documents, reflect updates and preserve search quality under load. I would make those requirements visible before choosing a dedicated vector server or extending an existing database.
Sources reviewed: 2026-09-06. This comparison uses official repositories, licenses and documentation. The shortlists are my interpretation, not results from a benchmark run against these systems.
Comparison at a glance
The table identifies the reviewed core or extension, not every commercial edition. AGPL is part of open source; Redis's version-specific license choice is explained below.
Rating (1–5): an editorial readiness score for the fit named in the same row, dated 2026-09-06. It adds five criteria worth 0, 0.5 or 1 point each: maintenance, open edition (what the open-source edition includes without a paid tier), maturity and community, operating scope and interoperability, with caps for archived, stale or prerelease projects. The breakdown sits under the table and the method on the Blog index. A rating is not a benchmark or a universal ranking; the workload sections still decide.
| Project | Rating | Core license | I would shortlist it for | Main constraint |
|---|---|---|---|---|
| Qdrant 1.19.1 | Apache-2.0 | Dedicated vector retrieval with metadata filters | Payload indexes, shard placement and recovery need explicit design. | |
| Milvus 3.0.0 | Apache-2.0 | A vector platform with separate ingestion and query capacity | Standalone and distributed deployments have different operational scope. | |
| Weaviate 1.39.2 | BSD-3-Clause | Object collections, hybrid retrieval and tenant-oriented workloads | Modules, tenant lifecycle and backup coverage must match the deployment. | |
| pgvector 0.8.6 | PostgreSQL license | Vectors beside transactional data already in PostgreSQL | ANN indexes compete for database resources; selective filters need tuning. | |
| Chroma 1.5.9 | Apache-2.0 | Local retrieval development and a collection-oriented API | Local, single-node and distributed architectures are different deployments. | |
| LanceDB 0.38.0 | Apache-2.0 | Embedded multimodal retrieval over local or object storage | OSS embedding does not include the managed serving layer of Enterprise. | |
| Vespa 8.750.13 | Apache-2.0 | Search applications combining retrieval and custom ranking | Schemas, ranking profiles and serving infrastructure need dedicated ownership. | |
| Redis 8.10.1 | AGPLv3 option; RSALv2/SSPLv1 alternatives | Vector search where Redis is already part of the platform | Verify the selected license, memory budget and exact query/deployment feature set. |
How each rating was computed
Five criteria worth 0, 0.5 or 1 point each. Caps: archived upstream 1, no stable release in 18 months 2, no general-availability release 2.5. "Open edition" scores what the open-source edition includes without a paid tier. Scored on 2026-09-06 from the official repository, releases and documentation; the method is on the Blog index.
| Project | Maintenance | Open edition | Maturity | Operations | Interoperability | Rating |
|---|---|---|---|---|---|---|
| Qdrant | 1 | 1 | 1 | 1 | 1 | 5 |
| Milvus | 1 | 1 | 1 | 0 | 1 | 4 |
| Weaviate | 1 | 1 | 1 | 0.5 | 1 | 4.5 |
| pgvector | 1 | 1 | 0.5 | 1 | 1 | 4.5 |
| Chroma | 1 | 0.5 | 0.5 | 1 | 0.5 | 3.5 |
| LanceDB | 1 | 0.5 | 0.5 | 1 | 0.5 | 3.5 |
| Vespa | 1 | 1 | 1 | 0 | 0.5 | 3.5 |
| Redis | 1 | 1 | 1 | 1 | 1 | 5 |
The pgvector license is the permissive PostgreSQL license. Redis 8's license file offers AGPLv3, RSALv2 or SSPLv1 as alternatives. The AGPLv3 option is open source; do not carry a Redis 7.x licensing assumption into a Redis 8 decision.
Start with the workload
- Existing PostgreSQL application: start with pgvector when joins, transactions and one recovery boundary are valuable. Compare a dedicated service when representative load demonstrates a reason to separate it.
- Dedicated retrieval with restrictive metadata filters: start with Qdrant and include those filters from the first trial. Compare Milvus for a distributed platform with independently sized ingestion and query work.
- Collections, hybrid retrieval and many tenants: include Weaviate. Treat tenant isolation and lifecycle as acceptance criteria, not an assumption inferred from a collection name.
- Local development or retrieval embedded in a service: compare Chroma and LanceDB. Decide early whether production needs an embedded library, a single server or a distributed service.
- Ranking is a core application capability: include Vespa. If Redis already holds relevant application data, test its vector query path before introducing another service solely for similarity search.
For RAG, the database is one part of retrieval. Chunking, embedding choice, lexical matching, reranking and access rules can change answer quality even when the storage engine stays the same.
Version and operational notes
Qdrant — index the filters as well as the vectors
Qdrant documents payload filtering and hybrid, multi-stage queries. Payload indexes should reflect the fields used to restrict searches.
I would benchmark tenant, document-state and date filters together, with the expected selectivity. Test updates and deletion visibility under concurrent reads. Record the selected replication and consistency settings, then verify recovery on that topology.
Milvus — choose the deployment before estimating its cost
The component reference separates serving and coordination roles from storage dependencies. It also warns that standalone-to-cluster migration is not an online upgrade.
I would size and test the exact release architecture rather than copy a diagram from an older major version. Rehearse recovery of metadata, stored data and the write-ahead path together. A local server trial does not measure a distributed deployment's operating cost.
Weaviate — tenant state affects recovery
The management guides cover hybrid queries, collection configuration and replication. Current backup guidance includes active and inactive tenants, but excludes offloaded tenants.
I would verify every tenant state during a restore, with the production backup provider. Pin client and server versions together. If a configured vectorizer calls an external model service, include its credentials, data flow and failure behavior in the architecture.
pgvector — filtered ANN needs a real query plan
The reviewed README documents exact search, HNSW, IVFFlat and iterative index scans. Approximate scans can return too few results when filtering removes candidates; tuning and iterative scanning matter.
I would inspect the actual query plan with tenant filters, concurrent writes and index maintenance. Keep PostgreSQL backups and recovery in the trial. An extension avoids a second service but does not provide unlimited database capacity.
Chroma — preserve the API, re-evaluate the deployment
Chroma's architecture overview distinguishes local, single-node and distributed modes. An easy local start is useful; each deployment still has its own durability boundary.
I would test persistence after process loss, collection deletion and updates, then document the production authentication and recovery path. Compare the exact server version and client API used by the application.
LanceDB — separate embedded storage from managed serving
OSS can use local or cloud object storage. The Enterprise comparison distinguishes embedding OSS in your service from managed distributed serving and operations.
I would measure object-store reads, cold-query latency and index maintenance in the intended environment. Using S3 does not itself supply application authentication, a query service or a recovery policy for the service embedding the library.
Vespa — retrieval and ranking form an application
The nearest-neighbor reference combines vector retrieval with query filters and ranking profiles. This is useful when the application needs to own how candidates are selected and scored.
I would test the entire ranking pipeline, including model inference where used, under the real query mix. Budget for schema evolution, document feeding and operating the serving cluster.
Redis — specify the vector query path
The vector search reference documents index and distance choices. Redis offers several related capabilities; name the commands and indexes your application requires.
I would verify memory use, persistence, eviction behavior and query routing in the chosen deployment. Check OSS support for each required feature instead of assuming parity with a commercial service. Pin the Redis version and chosen license together.
A trial that can change the decision
Keep documents, embedding model, dimensions, distance metric and queries constant. Compare configurations at a stated quality target.
- Two quality measurements: measure ANN recall against exact nearest neighbors from the same filtered dataset. Separately score retrieval relevance using judged documents; exact vector neighbors are not automatically useful answers.
- Permissions: test restrictive tenant and document filters before results leave the service. A client-supplied tenant value is not an authorization boundary by itself.
- Change visibility: insert, update and delete while querying. Measure when the expected change becomes visible, including after replica failure.
- Recovery and model migration: restore into a clean environment. Preserve source documents, chunk IDs and embedding versions; rehearse rebuilding an index with a new model without mixing incompatible vectors.
- Cost at the same quality: compare p95 latency and throughput while ingesting, with indexes, replicas, payloads and cold storage included.
For scale intuition, one million 768-dimensional float32 vectors occupy about 2.86 GiB of raw values. That excludes indexes, metadata, replicas, logs and runtime overhead; it is not a RAM sizing recommendation.
Complete the data path
Use object storage for the source material and recovery artifacts, an orchestrator for versioned ingestion, and an OLAP database when the question is analytical aggregation. Choose each layer for a measured requirement.
The technical glossary explains RAG and related concepts with examples and primary sources.
Graph databases complement similarity search with explicit relationships and traversals. That comparison also covers Graph RAG and why combining both models still requires provenance and access checks.