Milvus
Milvus is a high-performance, open-source vector database built for scale, written in Go and C++. It efficiently organizes and searches vast amounts of unstructured data (text, images, multi-modal) for AI applications, supporting distributed and standalone deployments. It is designed for developers building AI applications that require vector search, such as RAG, semantic search, and recommendation systems.
🎬 Milvus vector database in 150 Seconds · Zilliz
✨ Key features
- Fully-distributed, K8s-native architecture for horizontal scaling
- Supports multiple vector index types (HNSW, IVF, FLAT, SCANN, DiskANN)
- Hardware acceleration for CPU/GPU, including NVIDIA CAGRA
- Native support for sparse vectors and full-text search (BM25)
- Multi-tenancy with isolation at database, collection, partition levels
- Data security with authentication, TLS, and RBAC
🎯 Use cases
- Build Retrieval-Augmented Generation (RAG) pipelines
- Implement semantic image or text search
- Create hybrid search combining dense and sparse vectors
- Develop recommendation systems
- Power question answering and graph RAG applications
📦 Installation
🧰 Requirements: Requires Python 3.8+ for the SDK; for building from source, Linux (Ubuntu 20.04+), macOS (Big Sur 11.5+), Go 1.21+, CMake 3.26.4+, GCC/llvm, and Python 3.8-3.11 are needed. No API keys required for local use.
pip install -U pymilvus
For Milvus Lite (local vector database):
pip install pymilvus[milvus-lite]
To build Milvus from source:
git clone https://github.com/milvus-io/milvus.git
cd milvus/
./scripts/install_deps.sh
make
🚀 Usage
from pymilvus import MilvusClient
# Create a client (local file for Milvus Lite)
client = MilvusClient("milvus_demo.db")
# Create a collection
client.create_collection(
collection_name="demo_collection",
dimension=768
)
# Insert data (data is a list of dicts with 'id' and 'vector')
res = client.insert(collection_name="demo_collection", data=data)
# Search
query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?"])
res = client.search(
collection_name="demo_collection",
data=query_vectors,
limit=2,
output_fields=["vector", "text", "subject"]
)
❓ FAQ
How do I install Milvus?
Install the Python SDK with pip install -U pymilvus. For a lightweight local version, use pip install pymilvus[milvus-lite] and create a client with a local file name.
Can I use Milvus for full-text search?
Yes, Milvus natively supports full-text search with BM25 and learned sparse embeddings like SPLADE and BGE-M3, and you can combine dense and sparse vectors in hybrid search.
What are the system requirements for building from source?
For Linux, you need Go 1.21+, CMake 3.26.4+ (but <4), GCC 11+, and Python 3.8-3.11. For macOS, similar requirements with llvm 15+.
Is Milvus available as a managed service?
Yes, Zilliz Cloud offers Milvus as a fully managed service with Serverless, Dedicated, and BYOC options.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.