Qdrant
Written in Rust. Payload filtering is part of the search itself, quantisation options cut memory, and sparse vectors enable hybrid retrieval. REST and gRPC APIs, a managed Qdrant Cloud, and distributed mode with sharding and replication.
Two capable open-source stores, each with a managed cloud. We help you pick the one that fits your filtering, hybrid and hosting needs, then deploy and tune it.
Qdrant and Weaviate sit between pgvector, which lives inside Postgres, and Milvus, which is built for cluster scale. Both are dedicated vector databases that one team can operate, with filtering and hybrid retrieval as first-class features rather than add-ons.
Written in Rust. Payload filtering is part of the search itself, quantisation options cut memory, and sparse vectors enable hybrid retrieval. REST and gRPC APIs, a managed Qdrant Cloud, and distributed mode with sharding and replication.
Written in Go. BM25 keyword search and hybrid fusion are built in, modules can vectorise content on ingest with external or local models, and multi-tenancy is native. GraphQL, REST and gRPC APIs, plus a managed Weaviate Cloud.
Every point carries a JSON payload. Filters on that payload are evaluated during the graph traversal, not applied to a candidate list afterwards, so selective filters do not starve results. Payload indexes make common filters cheap.
Scalar, product and binary quantisation store compressed vectors in memory while the originals stay on disk for rescoring. That lets a large collection run on modest hardware. We measure recall before and after, because the right scheme depends on the embedding model.
Keyword signals are stored as sparse vectors next to dense ones, and the query API fuses the two result lists. Multiple named vectors per point let you search by text, image or title in the same collection. Embedding is done by your pipeline or an integration, which keeps the model choice in your hands.
Tenants are separated by a payload field with an index tuned for that pattern, so one collection can hold many small tenants. Snapshots give backups, and distributed mode adds sharding and replication when one node is no longer enough.
An inverted index gives BM25 keyword search without a second engine. A hybrid query runs keyword and vector search together and fuses them with a weighting you control. Exact codes and paraphrased questions both work from one call.
Vectoriser modules call an external embedding API or a locally hosted model when objects are written and when queries arrive. The database owns the embedding step, which is convenient for small teams. We still pin the model and plan for re-embedding, per our embeddings strategy.
A collection can be declared multi-tenant, with each tenant isolated in its own shard. Tenants can be activated, deactivated and offloaded, which suits SaaS products with many customers of very different sizes.
GraphQL, REST and gRPC APIs with official clients. Vector compression options reduce memory for large collections. Backups to object storage, replication and horizontal scaling are available, and Weaviate Cloud takes the operations off your hands.
| Capability | Qdrant | Weaviate |
|---|---|---|
| Metadata filtering | Payload filters during search, payload indexes | Property filters during search, inverted index |
| Hybrid keyword + vector | Sparse vectors fused in the query API | Built-in BM25 with hybrid fusion |
| Vectorise on ingest | Your pipeline or an integration | Built-in vectoriser modules |
| Multi-tenancy | Payload partitioning with a tenant index | Native tenants, one shard each |
| Memory compression | Scalar, product and binary quantisation | Vector compression options |
| Managed cloud | Qdrant Cloud | Weaviate Cloud |
| Self-host | Docker, Kubernetes, distributed mode | Docker, Kubernetes, replication |
| APIs | REST, gRPC | GraphQL, REST, gRPC |
| Implementation language | Rust | Go |
Neither is wrong for most mid-sized workloads. If Postgres already holds your data and the corpus is modest, pgvector may be simpler still. If you are heading for cluster scale, read about Milvus. The selection guide puts all five side by side, and the comparison article goes deeper on trade-offs.
Both stores loaded with a sample of your corpus, your real queries and filters, recall and latency measured, a written recommendation.
Schema, payload or property indexes for the filters you will run, named vectors where needed, tenancy model and quantisation settings.
Quantisation explainedSparse vectors or BM25 configured, fusion weights tuned on a labelled query set, and reranking added where it lifts answer quality.
Hybrid search definedDocker or Kubernetes manifests, or managed cloud set-up; backups, monitoring, upgrade notes and a handover session.
LLMOps and monitoringQuery patterns, filter selectivity, keyword needs, tenant model, hosting and residency constraints. Output: shortlist and bake-off plan.
Both stores on a sample of your data, measured on your queries. A recommendation with the numbers behind it, kept for your records.
Ingestion, schema and indexes, hybrid retrieval, tenancy, and integration behind a retrieval interface in your LLM application.
Load test, backups verified by restore, monitoring and alerts, runbook, and a walkthrough with the team that will own it.
BM25, vectors and reranking, with reciprocal rank fusion explained in plain words.
ReadAll five stores on one comparison table with a decision tree.
CompareHow compressed vectors save memory and what it costs in precision.
ReadThe long-form guide to choosing between embedded, self-hosted and managed stores.
Read the guideQdrant when filtering on rich metadata is central, memory is tight and you want quantisation, or you prefer to own the embedding step. Weaviate when you want keyword search built in, vectorisation handled at ingest through modules, or native multi-tenancy. We run both against your real queries before recommending.
Yes, in different ways. Weaviate has BM25 keyword search built in and fuses it with vector results in one hybrid query. Qdrant represents keyword signals as sparse vectors and fuses dense and sparse results in its query API. See hybrid search.
Both. Each runs under Docker or Kubernetes on your own infrastructure, and each vendor offers a managed cloud. The choice usually comes down to residency rules and whether a team is available to operate it.
Quantisation stores vectors in a compressed form so more of the index fits in memory, at a small cost in precision. Both stores offer it. Qdrant exposes several schemes, which is useful for large collections on modest hardware. Our glossary entry explains the trade-off.
Weaviate has native multi-tenancy, with each tenant isolated within a collection. Qdrant partitions by a tenant field in the payload with an index tuned for that pattern. Both approaches work; we choose by tenant count and isolation requirement.
Three to six weeks for a production deployment with ingestion, filtering, hybrid retrieval where needed, and monitoring. Ask for a scoping call.
Tell us about your systems, your data and your constraints. We reply within one business day with a straight answer and a suggested next step.