README.md 6.0 KB
Newer Older
J
jielinxu 已提交
1
![Milvuslogo](https://github.com/milvus-io/docs/blob/master/assets/milvus_logo.png)
J
jielinxu 已提交
2 3


J
jielinxu 已提交
4 5
![LICENSE](https://img.shields.io/badge/license-Apache--2.0-brightgreen)
![Language](https://img.shields.io/badge/language-C%2B%2B-blue)
Y
yinghao.zou 已提交
6
[![codebeat badge](https://codebeat.co/badges/e030a4f6-b126-4475-a938-4723d54ec3a7?style=plastic)](https://codebeat.co/projects/github-com-jinhai-cn-milvus-master)
J
jielinxu 已提交
7

J
JinHai-CN 已提交
8
- [Slack Community](https://join.slack.com/t/milvusio/shared_invite/enQtNzY1OTQ0NDI3NjMzLWNmYmM1NmNjOTQ5MGI5NDhhYmRhMGU5M2NhNzhhMDMzY2MzNDdlYjM5ODQ5MmE3ODFlYzU3YjJkNmVlNDQ2ZTk)
J
jielinxu 已提交
9
- [Twitter](https://twitter.com/milvusio)
J
jielinxu 已提交
10
- [Facebook](https://www.facebook.com/io.milvus.5)
J
jielinxu 已提交
11 12
- [Blog](https://www.milvus.io/blog/)
- [CSDN](https://zilliz.blog.csdn.net/)
J
jielinxu 已提交
13
- [中文官网](https://www.milvus.io/zh-CN/)
J
jielinxu 已提交
14

J
JinHai-CN 已提交
15 16 17 18 19

# Welcome to Milvus

## What is Milvus

J
jielinxu 已提交
20
Milvus is an open source similarity search engine for massive feature vectors. Designed with heterogeneous computing architecture for the best cost efficiency. Searches over billion-scale vectors take only milliseconds with minimum computing resources.
J
JinHai-CN 已提交
21

J
jielinxu 已提交
22
Milvus provides stable Python, Java and C++ APIs.
J
JinHai-CN 已提交
23

J
jielinxu 已提交
24
Keep up-to-date with newest releases and latest updates by reading Milvus [release notes](https://milvus.io/docs/en/releases/v0.5.0/).
J
JinHai-CN 已提交
25

J
jielinxu 已提交
26
- Heterogeneous computing
J
JinHai-CN 已提交
27

J
jielinxu 已提交
28
  Milvus is designed with heterogeneous computing architecture for the best performance and cost efficiency. 
J
JinHai-CN 已提交
29

J
jielinxu 已提交
30
- Multiple indexes
J
JinHai-CN 已提交
31

J
jielinxu 已提交
32
  Milvus supports a variety of indexing types that employs quantization, tree-based, and graph indexing techniques. 
J
JinHai-CN 已提交
33

J
jielinxu 已提交
34
- Intelligent resource management
J
JinHai-CN 已提交
35

J
jielinxu 已提交
36
  Milvus automatically adapts search computation and index building processes based on your datasets and available resources.
J
jielinxu 已提交
37

J
jielinxu 已提交
38
- Horizontal scalability
J
jielinxu 已提交
39

J
jielinxu 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
  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.
J
JinHai-CN 已提交
57 58

## Architecture
J
jielinxu 已提交
59

J
jielinxu 已提交
60
![Milvus_arch](https://github.com/milvus-io/docs/blob/master/assets/milvus_arch.png)
J
JinHai-CN 已提交
61 62 63

## Get started

J
jielinxu 已提交
64 65 66 67 68 69 70 71 72
### Hardware Requirements

| Component | Recommended configuration           |
| --------- | ----------------------------------- |
| CPU       | Intel CPU Haswell or higher         |
| GPU       | NVIDIA Pascal series or higher      |
| Memory    | 8 GB or more (depends on data size) |
| Storage   | SATA 3.0 SSD or higher              |

J
jielinxu 已提交
73
### Install using docker
J
JinHai-CN 已提交
74 75 76

Use Docker to install Milvus is a breeze. See the [Milvus install guide](https://milvus.io/docs/en/userguide/install_milvus/) for details.

J
jielinxu 已提交
77
### Build from source
J
JinHai-CN 已提交
78

J
jielinxu 已提交
79
#### Software requirements
J
JinHai-CN 已提交
80

J
jielinxu 已提交
81 82 83 84
- Ubuntu 18.04 or higher
- CMake 3.14 or higher
- CUDA 10.0 or higher
- NVIDIA driver 418 or higher
J
JinHai-CN 已提交
85

J
jielinxu 已提交
86
#### Compilation
J
JinHai-CN 已提交
87

J
jielinxu 已提交
88
##### Step 1 Install dependencies
J
JinHai-CN 已提交
89 90

```shell
J
jielinxu 已提交
91 92
$ cd [Milvus sourcecode path]/core
./ubuntu_build_deps.sh
J
JinHai-CN 已提交
93 94
```

J
jielinxu 已提交
95
##### Step 2 Build
J
JinHai-CN 已提交
96 97 98 99 100 101 102 103 104 105

```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`.

J
jielinxu 已提交
106
#### Launch Milvus server
J
JinHai-CN 已提交
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130

```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
```

J
jielinxu 已提交
131
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).
J
JinHai-CN 已提交
132 133 134 135 136

### Try your first Milvus program

#### Run Python example code

J
jielinxu 已提交
137
Make sure [Python 3.5](https://www.python.org/downloads/) or higher is already installed and in use.
J
JinHai-CN 已提交
138 139 140 141 142

Install Milvus Python SDK.

```shell
# Install Milvus Python SDK
J
jielinxu 已提交
143
$ pip install pymilvus==0.2.3
J
JinHai-CN 已提交
144 145
```

J
jielinxu 已提交
146
Create a new file `example.py`, and add [Python example code](https://github.com/milvus-io/pymilvus/blob/master/examples/AdvancedExample.py) to it.
J
JinHai-CN 已提交
147 148 149

Run the example code.

J
jielinxu 已提交
150
```shell
J
JinHai-CN 已提交
151 152 153 154 155 156 157 158 159 160 161 162
# 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
```

J
jielinxu 已提交
163 164 165
#### Run Java example code
Make sure Java 8 or higher is already installed.

J
jielinxu 已提交
166
Refer to [this link](https://github.com/milvus-io/milvus-sdk-java/tree/master/examples) for the example code.
J
jielinxu 已提交
167

J
JinHai-CN 已提交
168 169
## Contribution guidelines

J
jielinxu 已提交
170
Contributions are welcomed and greatly appreciated. If you want to contribute to Milvus, please read our [contribution guidelines](CONTRIBUTING.md). This project adheres to the [code of conduct](CODE_OF_CONDUCT.md) of Milvus. By participating, you are expected to uphold this code.
J
JinHai-CN 已提交
171

J
jielinxu 已提交
172
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.
J
JinHai-CN 已提交
173 174 175 176 177 178 179 180 181 182 183 184 185

## 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). 

## Milvus Roadmap

Please read our [roadmap](https://milvus.io/docs/en/roadmap/) to learn about upcoming features.

## Resources

[Milvus official website](https://www.milvus.io)

J
jielinxu 已提交
186
[Milvus docs](https://www.milvus.io/docs/en/userguide/install_milvus/)
J
JinHai-CN 已提交
187

J
jielinxu 已提交
188 189
[Milvus bootcamp](https://github.com/milvus-io/bootcamp)

J
JinHai-CN 已提交
190 191
[Milvus blog](https://www.milvus.io/blog/)

J
jielinxu 已提交
192
[Milvus CSDN](https://zilliz.blog.csdn.net/)
J
JinHai-CN 已提交
193 194 195 196 197 198

[Milvus roadmap](https://milvus.io/docs/en/roadmap/)


## License

J
jielinxu 已提交
199 200
[Apache 2.0 license](LICENSE)