// the find
milvus-io/milvus
Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search
Milvus is a purpose-built vector database written in Go/C++ that handles billion-scale ANN search. It separates compute and storage into independent microservices, so you can scale query nodes and data nodes independently. The target audience is teams building RAG pipelines, semantic search, or recommendation systems who need more than what pgvector offers at scale.
1. Index breadth is real: HNSW, IVF variants, DiskANN, SCANN, and GPU-accelerated CAGRA in one system — you're not locked into one ANN algorithm. 2. Native sparse+dense hybrid search with BM25 built in, so you don't need a separate Elasticsearch sidecar for keyword fallback. 3. Milvus Lite (`pip install pymilvus[milvus-lite]`) gives you a local file-backed instance for dev — the same client SDK works against Lite, standalone Docker, and the full distributed cluster. 4. The operational tooling (Attu GUI, Birdwatcher debugger, Prometheus/Grafana support, CDC for replication) is more mature than most vector DB projects.
1. The distributed mode requires Kubernetes, etcd, MinIO, and Pulsar (or Kafka) — the dependency footprint is enormous before you write a single vector. Overkill for anything under a few hundred million vectors. 2. Go + C++ split codebase means building from source requires GCC 11+, CMake, Python, and Go all in sync; the `install_deps.sh` script does a lot of heavy lifting and breaks on anything non-standard. 3. Schema changes on existing collections are limited — adding fields is supported but altering vector dimensions or index type requires dropping and recreating the collection, which is painful on large datasets. 4. Standalone mode is fine for single-node use but the Lite version (Python-only) and the full standalone Docker image have meaningfully different behavior and resource profiles, which creates friction when moving from local dev to production.