Most vector databases force a single tradeoff between recall, latency, and cost the moment you pick an index. The unusual bet here is to refuse that choice at the architecture level: query nodes and data nodes scale independently, and you can mix index types and hot/cold storage tiers per collection rather than per cluster. That is what lets the same engine serve a laptop prototype and a billion-vector production fleet without a rewrite.
What Sets It Apart
- Compute-storage separation means write-heavy ingestion and read-heavy search scale on different nodes, so a query spike never starves your indexing pipeline.
- The index menu is unusually broad: HNSW, IVF, FLAT, SCANN, DiskANN, plus NVIDIA CAGRA on GPU and mmap variants when memory is tight, so the recall/latency/cost dial is yours to set.
- Hybrid retrieval is first-class: dense vectors and sparse signals (BM25, SPLADE, BGE-M3) combine in one query, which matters because pure semantic search quietly misses exact-keyword matches.
- Multi-tenancy spans database, collection, partition, and partition-key levels, supporting hundreds to millions of isolated tenants on shared infrastructure.
Where It Fits
The same codebase ships as Milvus Lite, an embeddable Python library for a single machine; as a standalone server; and as a fully distributed Kubernetes deployment. Migrating from one to the next is a config change, not a port, so prototypes and production share an API surface. Integrations with LangChain, LlamaIndex, OpenAI, and HuggingFace make it a common backbone for RAG pipelines.
Great Fit If, Look Elsewhere If
Great fit if you expect to scale past a few million vectors, need filtered or hybrid search, or want to tune the recall-versus-cost tradeoff per workload. Look elsewhere if your dataset fits comfortably in a single in-memory index and you want zero operational surface — running the distributed mode means managing a Kubernetes cluster, and even Milvus Lite carries a heavier dependency footprint than a thin embedded library.