milvus-io/milvus
数据面向 AI 搜索与 RAG 应用的向量数据库,用于存储 embedding 并做可扩展的相似度检索。
Milvus 是一个向量数据库,适合需要把大量 embedding 保持可检索、而不是自己训练模型的团队。它把向量与整数、字符串、JSON 等标量字段一起存储,支持带元数据过滤的最近邻搜索,因此在应用检索层超出单机容量时比较有用。
作用与机制
向量插入到声明了维度的 collection 中;查询返回 top-k 最近结果,并可指定返回字段。数据库支持 HNSW、IVF、FLAT、SCANN 与 DiskANN 等索引,并提供量化变体和 mmap 选项,以权衡内存与成本。
其关键机制是分布式设计:K8s 原生部署将计算与存储分离,读多时可增加 query node,写多时可增加 data node;副本会把数据段加载到多个 query node 上,以提高容错和吞吐。稀疏向量与稠密向量可放在同一 collection 中,从而把 BM25 全文检索或学习型稀疏 embedding 与语义搜索、重排结合起来。
三种运行方式
README 记录了三条路径,前置条件各不相同:
- Milvus Lite:
pip install pymilvus[milvus-lite],随后用本地文件路径实例化客户端。这是 Python 中最快的原型验证方式。 - Standalone 服务:基于 Docker 的单机部署,客户端用 URI 和凭据连接。
- 分布式集群:完全分布式、K8s 原生模式,面向大规模向量量的水平扩展。
从源码构建时,README 列出 Linux(Ubuntu 20.04+)、Intel macOS(Big Sur 11.5+)或 Apple Silicon macOS(Monterey 12.0.1+),并要求 Go ≥1.21、CMake ≥3.26.4 且 <4、Python >3.8 且 ≤3.11;Linux 路径另需 GCC ≥11,macOS 路径需 llvm ≥15。
运维特性与范围
项目声称支持用户认证、TLS 加密和基于角色的访问控制,如果数据库存放用户或业务数据,这些很重要。多租户可在 database、collection、partition 或 partition key 层级隔离。冷热存储把频繁访问的数据放在内存或 SSD,把较冷数据移到更便宜的介质。
以上是作者描述的能力;README 未说明升级或回滚行为,也没有独立的性能验证。benchmark 链接指向厂商的基准测试工具,因此结果应视为厂商自报。代码以 Apache-2.0 许可发布,由 LF AI & Data Foundation 治理。
生态包括 Python SDK、管理界面 Attu、Prometheus/Grafana 监控、CDC 同步,以及 Spark、Kafka、Fivetran 和 Airbyte 连接器。教程覆盖 RAG、混合搜索、图像与多模态搜索和推荐系统。
本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。