What it is
Milvus is a vector database for searching embeddings and large sets of unstructured data: text, images, and multimodal objects.
The project appeared in response to a new workload: applications need to search not only by exact match, but also by semantic similarity.
Milvus’s main task is to store vectors, build indexes, and quickly find nearest items in large collections.
How the project is built
Inside the project are Go and C++, approximate nearest-neighbor indexes, distributed architecture, single-machine mode, Milvus Lite, and client libraries.
The project is under the LF AI & Data Foundation, distributed under Apache 2.0, and connected to the Zilliz ecosystem.
How people use it
A normal scenario is for an app to generate embeddings from a model, store them in Milvus, and search similar documents, images, or events later.
For RAG systems, Milvus often becomes the memory layer: a user question becomes a vector, and the database returns relevant fragments for an answer.
Practical example
Minimal vector search
This example shows the Milvus idea: a collection stores vectors, and search returns the nearest items by distance.
from pymilvus import MilvusClient
client = MilvusClient("milvus_demo.db")
client.create_collection("docs", dimension=3)
client.insert("docs", [{"id": 1, "vector": [0.1, 0.2, 0.3]}])
result = client.search("docs", data=[[0.1, 0.2, 0.29]], limit=1)
The project’s strength is scaling. Milvus is designed not only for a demo set, but also for billions of vectors and heavy query load.
Strengths
Another advantage is a range of entry points: teams can start with a lightweight version for experiments and later move to distributed installation.
The limitation is that a vector database does not make search good by itself. The embedding model, document chunking, and metadata strongly affect results.
Limitations
Infrastructure cost also matters: indexes, memory, disks, and vector updates require planning, especially at large volumes.
Milvus best fits teams that already know why they need semantic search, recommendations, or similar-object retrieval.
Who it fits
For simple full-text search, it may be too much; a regular search engine can be simpler, cheaper, and easier to reason about.
In the catalog, Milvus matters as a notable project around vector data, where open source solves a serious infrastructure problem.
A practical start is to test quality on a small dataset, measure latency, and only then design a larger storage and embedding update scheme.
For products with semantic search, Milvus is usually not the first line of code, but part of an architectural decision. Teams first need to know which objects become vectors, how often they update, and which metadata is needed for filtering. Only after that does a vector database become useful: it searches similar items quickly, but search quality comes from the whole data chain.