2019-10-25 16:10:20 +08:00
2019-10-22 17:11:55 +08:00
![Milvuslogo ](https://github.com/milvus-io/docs/blob/master/assets/milvus_logo.png )
2019-10-15 19:45:58 +08:00
2019-10-16 10:32:16 +08:00
![LICENSE ](https://img.shields.io/badge/license-Apache--2.0-brightgreen )
![Language ](https://img.shields.io/badge/language-C%2B%2B-blue )
2019-10-17 20:40:48 +08:00
[![codebeat badge ](https://codebeat.co/badges/e030a4f6-b126-4475-a938-4723d54ec3a7?style=plastic )](https://codebeat.co/projects/github-com-jinhai-cn-milvus-master)
2019-10-25 16:27:56 +08:00
![Release ](https://img.shields.io/badge/release-v0.5.0-orange )
![Release_date ](https://img.shields.io/badge/release_date-October-yellowgreen )
2019-10-16 10:32:16 +08:00
2019-10-15 18:42:20 +08:00
- [Slack Community ](https://join.slack.com/t/milvusio/shared_invite/enQtNzY1OTQ0NDI3NjMzLWNmYmM1NmNjOTQ5MGI5NDhhYmRhMGU5M2NhNzhhMDMzY2MzNDdlYjM5ODQ5MmE3ODFlYzU3YjJkNmVlNDQ2ZTk )
2019-10-16 14:25:24 +08:00
- [Twitter ](https://twitter.com/milvusio )
2019-10-21 09:28:12 +08:00
- [Facebook ](https://www.facebook.com/io.milvus.5 )
2019-10-16 10:32:16 +08:00
- [Blog ](https://www.milvus.io/blog/ )
- [CSDN ](https://zilliz.blog.csdn.net/ )
2019-10-16 11:30:23 +08:00
- [中文官网 ](https://www.milvus.io/zh-CN/ )
2019-10-16 10:32:16 +08:00
2019-10-15 18:42:20 +08:00
# Welcome to Milvus
## What is Milvus
2019-10-28 17:12:51 +08:00
Milvus is an open source similarity search engine for massive-scale feature vectors. Built with heterogeneous computing architecture for the best cost efficiency. Searches over billion-scale vectors take only milliseconds with minimum computing resources.
2019-10-15 18:42:20 +08:00
2019-10-18 18:12:56 +08:00
Milvus provides stable Python, Java and C++ APIs.
2019-10-15 18:42:20 +08:00
2019-10-25 16:27:56 +08:00
Keep up-to-date with newest releases and latest updates by reading Milvus [release notes ](https://milvus.io/docs/en/release/v0.5.0/ ).
2019-10-15 18:42:20 +08:00
2019-10-22 17:11:55 +08:00
- Heterogeneous computing
2019-10-15 18:42:20 +08:00
2019-10-28 17:12:51 +08:00
Milvus is built with heterogeneous computing architecture for the best performance and cost efficiency.
2019-10-15 18:42:20 +08:00
2019-10-22 17:06:02 +08:00
- Multiple indexes
2019-10-15 18:42:20 +08:00
2019-10-22 17:06:02 +08:00
Milvus supports a variety of indexing types that employs quantization, tree-based, and graph indexing techniques.
2019-10-15 18:42:20 +08:00
2019-10-22 17:06:02 +08:00
- Intelligent resource management
2019-10-15 18:42:20 +08:00
2019-10-22 17:11:55 +08:00
Milvus automatically adapts search computation and index building processes based on your datasets and available resources.
2019-10-18 18:12:56 +08:00
2019-10-22 17:11:55 +08:00
- Horizontal scalability
2019-10-18 18:12:56 +08:00
2019-10-22 17:11:55 +08:00
Milvus supports online / offline expansion to scale both storage and computation resources with simple commands.
- High availability
Milvus is integrated with Kubernetes framework so that all single point of failures could be avoided.
- High compatibility
Milvus is compatible with almost all deep learning models and major programming languages such as Python, Java and C++, etc.
- Ease of use
Milvus can be easily installed in a few steps and enables you to exclusively focus on feature vectors.
- Visualized monitor
You can track system performance on Prometheus-based GUI monitor dashboards.
2019-10-15 18:42:20 +08:00
## Architecture
2019-10-22 17:14:04 +08:00
2019-10-22 17:11:55 +08:00
![Milvus_arch ](https://github.com/milvus-io/docs/blob/master/assets/milvus_arch.png )
2019-10-15 18:42:20 +08:00
## Get started
2019-10-28 17:12:51 +08:00
### Hardware requirements
2019-10-18 18:12:56 +08:00
| Component | Recommended configuration |
| --------- | ----------------------------------- |
| CPU | Intel CPU Haswell or higher |
| GPU | NVIDIA Pascal series or higher |
2019-10-28 17:12:51 +08:00
| RAM | 8 GB or more (depends on data size) |
| Hard drive| SATA 3.0 SSD or higher |
2019-10-18 18:12:56 +08:00
2019-10-15 19:45:58 +08:00
### Install using docker
2019-10-15 18:42:20 +08:00
Use Docker to install Milvus is a breeze. See the [Milvus install guide ](https://milvus.io/docs/en/userguide/install_milvus/ ) for details.
2019-10-15 19:45:58 +08:00
### Build from source
2019-10-15 18:42:20 +08:00
2019-10-15 19:45:58 +08:00
#### Software requirements
2019-10-15 18:42:20 +08:00
2019-10-15 19:36:19 +08:00
- Ubuntu 18.04 or higher
- CMake 3.14 or higher
- CUDA 10.0 or higher
- NVIDIA driver 418 or higher
2019-10-15 18:42:20 +08:00
2019-10-15 19:45:58 +08:00
#### Compilation
2019-10-15 18:42:20 +08:00
2019-10-15 19:45:58 +08:00
##### Step 1 Install dependencies
2019-10-15 18:42:20 +08:00
```shell
2019-10-15 19:36:19 +08:00
$ cd [Milvus sourcecode path]/core
2019-10-25 16:27:56 +08:00
$ ./ubuntu_build_deps.sh
2019-10-15 18:42:20 +08:00
```
2019-10-15 19:45:58 +08:00
##### Step 2 Build
2019-10-15 18:42:20 +08:00
```shell
$ cd [Milvus sourcecode path]/core
$ ./build.sh -t Debug
or
$ ./build.sh -t Release
```
When the build is completed, all the stuff that you need in order to run Milvus will be installed under `[Milvus root path]/core/milvus` .
2019-10-15 19:45:58 +08:00
#### Launch Milvus server
2019-10-15 18:42:20 +08:00
```shell
$ cd [Milvus root path]/core/milvus
```
Add `lib/` directory to `LD_LIBRARY_PATH`
```
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/milvus/lib
```
Then start Milvus server:
```
$ cd scripts
$ ./start_server.sh
```
To stop Milvus server, run:
```shell
$ ./stop_server.sh
```
2019-10-21 09:51:11 +08:00
To edit Milvus settings in `conf/server_config.yaml` and `conf/log_config.conf` , please read [Milvus Configuration ](https://github.com/milvus-io/docs/blob/master/reference/milvus_config.md ).
2019-10-15 18:42:20 +08:00
### Try your first Milvus program
#### Run Python example code
2019-10-22 17:06:02 +08:00
Make sure [Python 3.5 ](https://www.python.org/downloads/ ) or higher is already installed and in use.
2019-10-15 18:42:20 +08:00
Install Milvus Python SDK.
```shell
# Install Milvus Python SDK
2019-10-22 17:06:02 +08:00
$ pip install pymilvus==0.2.3
2019-10-15 18:42:20 +08:00
```
2019-10-15 19:36:19 +08:00
Create a new file `example.py` , and add [Python example code ](https://github.com/milvus-io/pymilvus/blob/master/examples/AdvancedExample.py ) to it.
2019-10-15 18:42:20 +08:00
Run the example code.
2019-10-22 17:06:02 +08:00
```shell
2019-10-15 18:42:20 +08:00
# Run Milvus Python example
$ python3 example.py
```
#### Run C++ example code
```shell
# Run Milvus C++ example
$ cd [Milvus root path]/core/milvus/bin
$ ./sdk_simple
```
2019-10-16 10:32:16 +08:00
#### Run Java example code
Make sure Java 8 or higher is already installed.
2019-10-16 11:29:46 +08:00
Refer to [this link ](https://github.com/milvus-io/milvus-sdk-java/tree/master/examples ) for the example code.
2019-10-16 10:32:16 +08:00
2019-10-29 09:32:36 +08:00
## Milvus roadmap
Please read our [roadmap ](https://milvus.io/docs/en/roadmap/ ) to learn about upcoming features.
2019-10-15 18:42:20 +08:00
## Contribution guidelines
2019-10-28 09:31:46 +08:00
Contributions are welcomed and greatly appreciated. Please read our [contribution guidelines ](CONTRIBUTING.md ) for detailed contribution workflow. This project adheres to the [code of conduct ](CODE_OF_CONDUCT.md ) of Milvus. By participating, you are expected to uphold this code.
2019-10-15 18:42:20 +08:00
2019-10-16 10:32:16 +08:00
We use [GitHub issues ](https://github.com/milvus-io/milvus/issues/new/choose ) to track issues and bugs. For general questions and public discussions, please join our community.
2019-10-15 18:42:20 +08:00
## Join the Milvus community
To connect with other users and contributors, welcome to join our [slack channel ](https://join.slack.com/t/milvusio/shared_invite/enQtNzY1OTQ0NDI3NjMzLWNmYmM1NmNjOTQ5MGI5NDhhYmRhMGU5M2NhNzhhMDMzY2MzNDdlYjM5ODQ5MmE3ODFlYzU3YjJkNmVlNDQ2ZTk ).
2019-10-28 17:48:00 +08:00
## Thanks
2019-10-28 11:19:09 +08:00
2019-10-28 17:48:00 +08:00
We greatly appreciate the help of the following people.
2019-10-28 11:19:09 +08:00
- [akihoni ](https://github.com/akihoni ) found a broken link and a small typo in the README file.
2019-10-15 18:42:20 +08:00
## Resources
[Milvus official website ](https://www.milvus.io )
2019-10-15 19:36:19 +08:00
[Milvus docs ](https://www.milvus.io/docs/en/userguide/install_milvus/ )
2019-10-15 18:42:20 +08:00
2019-10-16 10:32:16 +08:00
[Milvus bootcamp ](https://github.com/milvus-io/bootcamp )
2019-10-15 18:42:20 +08:00
[Milvus blog ](https://www.milvus.io/blog/ )
2019-10-16 10:32:16 +08:00
[Milvus CSDN ](https://zilliz.blog.csdn.net/ )
2019-10-15 18:42:20 +08:00
[Milvus roadmap ](https://milvus.io/docs/en/roadmap/ )
## License
2019-10-28 09:31:46 +08:00
[Apache License 2.0 ](LICENSE )
2019-10-21 09:51:11 +08:00
2019-09-29 16:06:13 +08:00