Milvus vs Weaviate
Two of the top vector databases, side by side: score, setup, license, activity and what each review found.
Milvus
Distributed vector database with dense, sparse and hybrid search at scale
Weaviate
Go vector database with built-in vectorizers, hybrid search and RAG
| What we compare | Milvus | Weaviate |
|---|---|---|
| Score parts, out of 100 | ||
| Adoption | 82, widely used | 42, known |
| Freshness | 100, active | 100, active |
| Maintenance | 84, healthy | 71, fair |
| Easy to run | 67, easy | 50, easy |
| Agent-ready | 70, partly | 40, minimal |
| Facts from GitHub and the README | ||
| Stars | 46.4k | 16.9k |
| License | Apache-2.0 (permissive) | custom license (read the license) |
| Last commit | Oct 2026 | Oct 2026 |
| Last release | Sep 2026 | Oct 2026 |
| Language | Go | Go |
| Docker | Yes | Yes |
| GPU | Optional | Not needed |
| arm64 or Apple Silicon | Mentioned | Mentioned |
Milvus
Milvus is a distributed vector database (Go and C++, LF AI & Data Foundation) that separates compute and storage on Kubernetes, with a Standalone Docker mode and pip-installable Milvus Lite. It offers HNSW, IVF, FLAT, SCANN and DiskANN indexes, GPU CAGRA, sparse BM25 and learned-sparse vectors for hybrid search, metadata filtering, multi-tenancy, hot/cold storage, auth, TLS and RBAC.
Who it is for: teams needing billion-scale vector search on Kubernetes
Strengths
- Index types HNSW, IVF, FLAT, SCANN, DiskANN plus GPU CAGRA
- Dense, sparse (BM25, SPLADE, BGE-M3) and hybrid search in one collection
- Multi-tenancy at database, collection, partition or partition-key level
- Mandatory auth, TLS and RBAC; Milvus Lite via pip for local dev
Weaknesses
- Distributed mode is Kubernetes-native with several microservices to operate
- No port, RAM or Docker command in the README; install lives in docs
- Zilliz is the major contributor and promotes its managed cloud
- Source build needs Go 1.21+, CMake, GCC 11+ and Python 3.8 to 3.11
- GPU optional
- Compose
- Compose runs Milvus, MinIO
- Models: any embedding model or service; pymilvus[model] wraps embedding and reranking models
Weaviate
Weaviate is a Go vector database that stores objects with their vectors and serves hybrid BM25 plus semantic search, filtering, built-in RAG and reranking through REST, gRPC and GraphQL APIs. It can vectorize data at import using modules for OpenAI, Cohere, HuggingFace, Google or a local model2vec image, or accept precomputed vectors. Docker Compose runs it on ports 8080 and 50051; production adds multi-tenancy, replication and RBAC.
Who it is for: teams wanting built-in vectorization, hybrid search and RAG in the database
Strengths
- Vectorizes at import with OpenAI, Cohere, HuggingFace, Google or a local model2vec container
- Hybrid BM25 plus vector, image search, filtering, RAG and reranking in one query
- Multi-tenancy, replication, RBAC, horizontal scaling and vector compression
- REST, gRPC and GraphQL with Python, TypeScript, Java, Go and C# clients
Weaknesses
- Enterprise features in wl/ need a commercial license key; one image mixes both
- Vectorization needs a module container or external API keys
- No RAM or sizing guidance in the README
- Both REST 8080 and gRPC 50051 must be exposed
- no GPU
- Docker + Compose
- Needs optional embedding inference container (e.g. model2vec) or external embedding APIs
- Models: OpenAI, Cohere, HuggingFace, Google and other integrated model providers, local model2vec (minishlab/potion-base-32M), precomputed vectors
- port 8080
More in Vector databases
Building with these?
We help teams pick an open-source AI stack and run it in production. Client work never changes a rank.