High-performance cloud-native vector database built for scalable similarity search and AI applications
An open-source vector database that stores embeddings and runs fast approximate nearest-neighbor search at scale.
It powers semantic search, recommendations, and RAG by finding the closest vectors to a query across billions of records.
| Category | Vector |
| Pronunciation | Pronounced "MIL-vus". The name comes from the Latin genus for kites, a bird of prey. |
| First released | 2019 |
| Latest release | 3.0 |
| License | Apache-2.0 |
| Written in | Go, C++ |
| Runs on | Linux, Macos |
| Deployment | Self-hosted, Managed |
| Wire protocol | grpc, http |
| Query dialect | milvus-query |
| Consistency | tunable |
| ACID support | no |
| JSON support | native |
| Full-text search | native |
| Vector support | native |
| HA model | raft |
| Managed by | zilliz-cloud |
Milvus is an open-source vector database built to store and search embeddings, the numeric vectors that models produce for text, images, audio, and other unstructured data. Instead of matching exact values, it finds the nearest vectors to a query using approximate nearest-neighbor (ANN) search, the retrieval step behind semantic search, recommendations, and retrieval-augmented generation. It also filters on metadata alongside the vector search, so you can combine "similar to this" with ordinary predicates like category or date.
Milvus was created by Zilliz, a company founded in 2017 by Charles Xie, and open-sourced under the Apache 2.0 license in 2019. It graduated from the LF AI & Data Foundation in 2021, and a full architectural rewrite arrived with Milvus 2.0 in 2022. The project reached its largest redesign yet with Milvus 3.0 in 2026, which moved to a lake-native design that can index vectors sitting in object storage instead of copying them into the engine first.
Milvus is one of the most widely deployed open-source vector databases, with tens of thousands of adopters. Nvidia and Roblox run it in production, Bosch searches billions of driving scenarios with it, and Shell and Cisco use it behind internal RAG systems. Zilliz offers a managed version, Zilliz Cloud, for teams that would rather not operate the cluster themselves.
Milvus separates compute from storage instead of packing everything into one process. A cluster splits into access, coordinator, worker, and storage layers, so query nodes, data nodes, and index nodes each scale on their own. Metadata lives in etcd, the write log flows through a message queue like Pulsar or Kafka, and the vectors themselves sit in object storage such as S3 or MinIO. That layout lets a deployment grow one bottleneck at a time.
When you insert data, Milvus appends it to the log, and index nodes build an ANN index in the background while the new data stays searchable in a growing segment. A search request fans out to query nodes that scan both sealed and growing segments, apply any metadata filters, and merge the top results. The actual vector math runs in Knowhere, the C++ engine that implements the index algorithms and distance functions.
Milvus ships in three forms. Milvus Lite is an embedded Python build for prototyping, Standalone runs the whole system in a single process for small workloads, and Distributed runs the full disaggregated cluster on Kubernetes for scale. The same API works across all three, so you can start on Lite and move up to a cluster without rewriting your application code.
A collection is Milvus's table: a set of entities that share a schema. The schema defines a primary key, one or more vector fields, and scalar fields for metadata like tags, prices, or timestamps. A collection can also enable dynamic fields, so you attach extra JSON keys without redefining the schema when your data changes.
Milvus stores embeddings as vector fields, and one collection can hold several of them. It supports dense float vectors from models, binary vectors, and sparse vectors for keyword-style signals. You pick a similarity metric per field, usually cosine, inner product, or L2, and searches on that field use the metric set at creation.
An index makes vector search fast by trading a little recall for a large speed gain. Milvus supports several: HNSW builds a navigable graph in memory, IVF clusters vectors into lists, DiskANN keeps most of the index on SSD for huge datasets, and GPU indexes push the work onto the card. You tune each one to balance recall, latency, and memory.
A search takes a query vector and returns its nearest neighbors under the collection's metric. Milvus supports top-k retrieval, range search within a distance threshold, and grouping search that dedupes results by a scalar field. Query-time parameters like nprobe or ef trade accuracy for speed, separate from the index you built up front.
Milvus applies boolean filters on scalar fields during the vector search, so you constrain by category, date, or owner without a second query. Hybrid search goes further: it runs several vector fields together, often a dense embedding plus a sparse BM25 field, and fuses their rankings with a reranker to cover semantic and keyword relevance.
Milvus offers tunable consistency, from strong to eventual, so you decide whether a search must see the latest writes or can trade freshness for lower latency. Partitions split a collection into segments you can target directly, such as one per tenant or per day, which prunes the search space and keeps large collections responsive.
Live GitHub adoption, updated daily
A handful of the companies running it in production
Retrieval for RAG and agent memory, where a model pulls the most relevant chunks from a large corpus. Milvus returns nearest-neighbor matches in milliseconds and filters them by source or recency in one query.
Datasets too large to hold in memory, where DiskANN and GPU indexes keep search fast without paying for RAM to fit every vector. Milvus is built to scale the vector count into the billions across a cluster.
Recommender systems that match users to items by embedding similarity. Milvus sustains high query throughput and combines the vector match with metadata filters for inventory, region, or price in one call.
Image, audio, and video search where content is embedded into vectors instead of tagged by hand. Milvus indexes any embedding the same way, so text-to-image and reverse-image lookups run on the same engine.
Milvus indexes vectors, it is not your primary datastore. With no ACID transactions or foreign keys, your canonical records should stay in Postgres or similar, with embeddings synced into Milvus for search.
For a few thousand vectors, a full cluster is overkill. Milvus Lite or pgvector inside your existing database is simpler to run, and the overhead of a distributed cluster is hard to justify at that size.
Milvus has no SQL, no joins, and no group-by aggregation over columns. For reporting, rollups, and multi-table analytics, a relational or OLAP engine such as Postgres or ClickHouse fits that work far better.
When you need only exact lexical matching without embeddings, a full-text engine like Elasticsearch or Typesense is a closer fit. Milvus adds sparse keyword search, but dedicated engines cover pure text better.
Head-to-head specs against the top 5 alternatives
| Spec | ||||||
|---|---|---|---|---|---|---|
| Identity | ||||||
| License | Apache-2.0 | Apache-2.0 | Proprietary | Apache-2.0 | BSD-3-Clause | Elastic-2.0 |
| First released | 2019 | 2021 | 2021 | 2022 | 2019 | 2010 |
| Capabilities | ||||||
| ANN algo | hnsw, ivf, diskann, scann | hnsw | proprietary | hnsw | HNSW | HNSW |
| Hybrid search | Native | Native | Native | Native | Native | Native |
| Vector | Native | Native | Native | Native | Native | Native |
| Ecosystem | ||||||
| Managed providers | 1 | 1 | 1 | 1 | 1 | 3 |
| Integrations | 7 | 11 | 4 | 4 | 4 | 6 |
| Use cases | ||||||
| Best for | Large-scale vector similarity search, RAG applications, and AI-powered recommendations | Semantic search, RAG pipelines, recommendation engines, image similarity, and AI agent memory with advanced filtering | Production-scale vector search with zero infrastructure management and enterprise security requirements | AI/LLM applications, RAG pipelines, semantic search, and rapid prototyping of embedding-based apps | Semantic search, RAG pipelines, and AI-native applications requiring hybrid vector and keyword search | Full-text search, log analytics, observability, security analytics, and real-time data exploration at scale |
| Not ideal for | Traditional relational data, OLTP workloads, or applications not using embeddings | Traditional relational queries, OLTP workloads, time-series data, or use cases not involving vector embeddings | Self-hosted deployments, on-premise requirements, cost-sensitive prototyping, or workloads needing open-source flexibility | General-purpose data storage, OLTP, analytics, or production workloads requiring high availability | Traditional relational workloads, complex transactions, or use cases requiring strong ACID guarantees | Primary data storage for transactional workloads, strong-consistency requirements, or simple key-value use cases |
Run Milvus Standalone with Docker, connect with the Python client, create a collection, and run your first vector search. A few minutes end to end.
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
bash standalone_embed.sh startpip install pymilvusfrom pymilvus import MilvusClient
client = MilvusClient("http://localhost:19530")
client.create_collection(collection_name="demo", dimension=8)
client.insert(
collection_name="demo",
data=[{"id": 1, "vector": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]}],
)results = client.search(
collection_name="demo",
data=[[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]],
limit=3,
)
print(results)That is a working vector store. Point any official client at the same endpoint, or browse collections visually with Attu, the Milvus admin UI.
High-performance open-source vector database for next-generation AI applications
AI-native vector database with hybrid search and built-in model integration
Open-source AI-native vector database for building LLM-powered applications with embeddings
The world's most advanced open-source relational database
The most popular document database for modern applications
Fast in-process analytical database with rich SQL support and zero dependencies
Connect to Milvus in 30 seconds. Browse tables, run queries, and edit rows visually, on localhost, self-hosted, or cloud.
Open Milvus in 1bench