Milvus 是一个开源、高性能、可扩展的向量数据库,专门用于存储和检索高维向量数据。它支持近似最近邻搜索(ANN),适用于图像检索、自然语言处理(NLP)、推荐系统、异常检测等 AI 应用场景。
1. Milvus 的特点
(1)高性能
- 支持数十亿级向量数据,查询速度快。
- 使用 近似最近邻(ANN)索引算法,如 HNSW、IVF-FLAT、IVF-PQ、SCANN 等。
(2)分布式架构
- 可以横向扩展(scalability),适用于大规模数据集。
- 支持云端部署,可结合 Kubernetes 进行管理。
(3)多种索引支持
- HNSW(Hierarchical Navigable Small World):高效、高准确度的图索引。
- IVF-FLAT(Inverted File Index + Flat Search):适用于大规模数据检索。
- IVF-PQ(Inverted File Index + Product Quantization):节省存储,提高检索效率。
(4)多种数据类型
- 支持不同类型的向量(浮点数、二进制),同时可存储元数据(metadata),比如文本、标签等。
- 支持 JSON 存储,可以存放结构化数据。
(5)多种 API 语言支持
- Python
- Go
- Java
- C++
(6)与 AI 生态兼容
- 可与 PyTorch、TensorFlow、OpenAI Embeddings、Hugging Face 集成,用于 NLP、计算机视觉等任务。
- 支持 Kubernetes 部署,适合云原生应用。
2. Milvus 架构
Milvus 采用 分布式架构,主要组件包括:
组件 | 作用 |
---|---|
Proxy | 处理客户端请求,分发查询 |
QueryNode | 负责向量搜索 |
IndexNode | 负责构建索引 |
DataNode | 负责存储和管理数据 |
MetaStore | 存储元数据 |
Coordinator(协调器) | 负责管理集群 |
3. 安装 Milvus
Milvus 可以使用 Docker 进行安装:
(1)Linux下的安装方法
1)安装 Docker & Docker Compose
# 安装 Docker
sudo apt update
sudo apt install -y docker.io
# 安装 Docker Compose
sudo apt install -y docker-compose
2)拉取 Milvus
git clone https: