- What is Milvus?
- When is Milvus a good choice?
- How to use Milvus?
- How easy is it to use Milvus?
- Is Milvus highly available?
- Can Milvus handle datasets with 10-billion or 100-billion scale?
- How does Milvus work?
- Which index methods are supported?
- Does Milvus support simultaneous inserting and searching?
- Where are the data stored?
- How does Milvus compare to FAISS and SPTAG?
- Is Milvus an end-to-end product?
- Have questions that were not answered?
Milvus is an open source similarity search engine for massive feature vectors. It is built with heterogeneous computing architecture for the best performance and cost efficiency. Searches over billion-scale vectors take only milliseconds with minimum computing resources. It can be easily deployed on both bare metal and cloud platforms with Linux operating systems.
Milvus is best suited for applications that require reliable and efficient similarity search of large-scale vectors, and millisecond response times, regardless of scale.
Milvus returns single-row reads in 0.6 ms or less and single-row writes in approximately 0.03 ms, and supports a variety of indexes for optimizing query performance. It can also be used in hybrid search for both structured and unstructured data.
Milvus can be easily installed through pulling docker images and simple pip install for SDKs. For more details, see Install Milvus.
To start your first vector search program, please go to Milvus example code.
Milvus is designed to be used in mission critical systems with high SLAs. Milvus cluster ensures continuous service capability in case of any single point of failure.
Milvus provides Mishards, a sharding middleware for Milvus, to establish an orchestrated cluster, which can process datasets with 10-billion or 100-billion scale. However, Mishards is still in the experimental phase and is not recommended for production. Refer to Mishards Readme for more information.
When vectors are imported into Milvus, they will be stored and indexed. Each vector is assigned a unique ID. User-defined vector IDs are also supported. When vector are searched, IDs of the most similar vectors will be returned.
Currently, Milvus supports the following index methods:
Provides 100% accuracy for recalls. However, performance might be downgraded due to huge computation effort.
K-means based similarity search which is balanced between accuracy and performance.
Adopts a scalar quantization strategy that significantly reduces vector size (by about 3/4). It improves the overall throughput of vector processing.
An enhanced indexing algorithm of
IVF_SQ8. It supports heterogeneous computation on both CPU and GPU, which significantly improves the search performance.
To use this index, make sure both
gpuare added as resources in the Milvus configuration file.
Absolutely. You can simultaneously insert and search data in Milvus. If you want this function, it is recommended to set the parameter
true in section
Vectors that have been imported into Milvus are stored in your local disk. Metadata can be stored either in MySQL or SQLite 3.
While all of these supports large-scale vector similarity search, Milvus is the only one that is a high-performance and easy-to-use vector search engine that scales easily.
For more insight, see Milvus in Comparison.
Not yet. Milvus accepts vectors as input and returns vectors through queries. You cannot use Milvus to extract features from unstructured data.
If you still have questions that are not covered in this list, you can take the following steps to find an answer: