项目详情
Milvus
为十亿级向量而生的云原生向量数据库
GitHub 地址
Apache-2.0
Go + C++LF AI & Data 基金会
更新于 2026-08-28 · 数据来源:GitHub API(采集于 2026-08-28)
← 返回汇总
项目速览
一句话定位
把「语义搜索」做成一门数据库工程
开源高性能向量数据库,专为大规模向量 ANN(近似最近邻)检索设计。存储向量 + 标量 + JSON,支撑 RAG、图像搜索、推荐系统等 AI 应用。适合任何需要「按语义找数据」的场景——从单机 pip install 到 K8s 上十亿级向量集群,一套 API 走完。
项目速览
核心数据
v3.0
2026-07 发布 lake-native
forks 4.2k · open issues 1,332 · 双线维护(v2.6.x 补丁线 + v3.0 特性线,v2.6.23 与 v3.0.0 同月发布)· 学术背书:SIGMOD 2021 系统论文 + VLDB 2022 Manu 论文
为什么存在
传统数据库的「语义鸿沟」
SQL 找不到相似
「找和这张图长得像的图」「找意思相近的文档」——精确匹配的 WHERE 子句无能为力,语义检索本质是高维空间的距离计算。
裸用 ANN 库不是数据库
FAISS 等索引库只解决「搜」,没有持久化、增删改、过滤、多租户、高可用。生产系统要的是完整的数据管理能力。
规模与新鲜度两难
十亿向量 + 实时写入 + 每秒上万查询,单机内存放不下、索引重建慢。需要分布式架构原生解决,而不是运维硬扛。
核心理念
为向量搜索重新造一台数据库
- 向量是一等公民:dense / sparse / 多向量共存于同一 collection,与标量、JSON 一起 CRUD,而非外挂一个索引库
- 云原生即架构:存算分离 + K8s 微服务,读多加 QueryNode、写多加 DataNode,按流量独立伸缩
- 一套 API 三种形态:Milvus Lite(pip 内嵌)→ Standalone(Docker 单机)→ Distributed(K8s 集群),从原型到生产不改代码
- 引擎与系统解耦:核心检索引擎独立,HNSW / IVF / DiskANN / GPU CAGRA 都能插进来按场景选
核心机制
分布式架构:四层拆解
数据面(随流量伸缩)
控制面 / 存储底座
架构要点:无状态 worker + 共享存储 = 存算分离
核心机制
一条数据的旅程:写入与查询
主流程(实线箭头)
存储落地 / 异步阶段
架构要点注释
核心机制
索引引擎:按场景选武器
| 索引 | 类型 | 适用规模 | 典型场景 |
FLAT | 精确暴力扫 | 百万级以内 | 召回率 100% 基线、小数据集 |
HNSW | 图索引 | 千万级,吃内存 | 低延迟高召回,最常用默认选 |
IVF_FLAT / IVF_PQ | 聚簇 + 量化 | 亿级 | 内存受限,量化换精度 |
DiskANN | 磁盘图索引 | 十亿级 | 向量放 SSD,冷数据低成本检索 |
SCANN | 各向异性量化 | 千万级 | 高召回 + 高吞吐平衡 |
GPU_CAGRA | GPU 图索引 | 亿级 | NVIDIA GPU 加速建索引与查询 |
另支持 mmap 加载、标量位图 / 跳表索引做过滤加速。v3.0 新增 FAISS 透传索引——直接写 IVF64,Flat 这类 Faiss 索引工厂串,Faiss 配方原样跑在 Milvus 上。
核心机制
混合检索:稠密 + 稀疏双路召回
两路召回(同一 collection 内原生支持)
融合层(RRF 公式可在 Playground 里亲手调)
纯语义检索会被「同义不同词」骗,纯关键词会被「同词不同义」骗——两路融合是 RAG 检索质量的工业标配,Milvus 把它做进内核而非应用层。
版本演进
v3.0「Lake-native」:向量库长出数据湖能力
- External Collection:Parquet / Lance / Iceberg / Vortex 数据湖原地建索引搜索,零拷贝不搬家;Milvus 快照本身也能当外部表被批处理系统读
- 在线 Schema 演进:线上加列 / 回填 / 删列不停服——embedding 模型升级、数亿行重算变热路径操作
- SINDI 稀疏索引:learned sparse 检索 QPS 达 MaxScore 约 10 倍;压缩 BM25 索引体积约为 2.6 的 1/3(同等召回)
- Storage V3 (Loon) + Snapshot:manifest 列式存储打底,任意时间点只读快照近零成本
- Woodpecker WAL 独立部署:写路径微服务化,高写入集群可单独扩 WAL
- 检索引擎补全:StructArray 向量子字段混合搜、faceted search(品牌/价格聚合一步到位)、XGBoost L0 重排、TEXT 长文本 LOB 存储
快速上手
三行代码跑起向量搜索
$ pip install -U pymilvus
# Milvus Lite:内嵌本地文件库,零部署(生产换 uri 即连集群)
from pymilvus import MilvusClient
client = MilvusClient("milvus_demo.db")
client.create_collection("docs", dimension=768)
client.insert("docs", data=[{"id": 1, "vector": emb, "text": "..."}])
res = client.search(
collection_name="docs",
data=query_vectors, # 查询向量,支持批量
limit=2, # TopK
output_fields=["text"], # 结果带原始文本
)
Lite → Standalone → Distributed 三种形态共用同一套 MilvusClient API,改一行 uri 从笔记本迁到生产集群。
快速上手
三种部署形态:从笔记本到十亿向量
| 形态 | 安装方式 | 规模 | 适合 |
| Milvus Lite | pip install pymilvus | 百万向量内 | notebook 原型、CI 测试、边缘设备 |
| Standalone | docker-compose 单容器 | 千万级 | 中小项目、单机生产、开发环境 |
| Distributed | K8s / Helm / Operator | 十亿级 | 大规模生产,读写独立伸缩 + 多副本 |
另有 Zilliz Cloud 托管版(Serverless / Dedicated / BYOC),官方商业公司运营,不想运维可直接用。
生态
卡位 GenAI 工具链的中心节点
框架集成
LangChain、LlamaIndex、OpenAI、HuggingFace 官方集成;pymilvus[model] 内置 embedding/rerank 模型包装,数据进库前一站式向量化。
运维工具链
Attu(Web GUI 管理)、Birdwatcher(调试)、Prometheus/Grafana 监控、Milvus CDC 数据同步、VTS 迁移工具。
数据管道
Spark / Kafka Connect / Fivetran / Airbyte 连接器,流式批式数据都能直接进 Milvus 建检索管道。
治理:LF AI & Data 基金会毕业项目,Zilliz 主导贡献,中性基金会托管降低厂商锁定顾虑。
适用场景
适合谁用
- RAG / Agent 记忆:LLM 应用的知识库检索层,需要混合检索 + 实时写入的团队
- 语义搜索 / 图像视频搜索:以图搜图、多模态检索、去重(v3.0 MinHash LSH 原生近重复检测)
- 推荐系统:用户/物品向量召回 + 标量过滤组合,亿级候选库毫秒响应
- 数据基础设施团队:已有数据湖(Parquet/Iceberg),想原地加向量检索而不搬数据——v3.0 External Collection 正对此
风险提示
需要警惕
- 运维复杂度:Distributed 模式依赖 K8s + etcd + 对象存储 + Pulsar/Woodpecker 多组件,小团队建议 Standalone 或托管版
- 内存成本:HNSW 全内存索引,亿级向量内存开销可观;DiskANN / 量化 / 冷热分层能省但调优门槛仍在
- open issues 1,332:迭代极快(3.0 与 2.6 双线月更),大版本升级需跟紧 release notes,行为变化(如稀疏索引默认算法切换)可能影响既有查询
- 厂商影响:Zilliz 主导开发,方向与商业版 Zilliz Cloud 高度协同——开源协议无风险,但路线图话语权集中
在线体验
亲手玩转 Milvus 的两个核心机制
不需要装任何东西——在浏览器里跑 ANN 图索引贪心搜索(看它如何只访问 2% 的点拿到 86% 召回),再调 RRF 融合参数体会混合检索的排序逻辑。
纯前端实现,零网络依赖 · 模拟的是 NSW 贪心搜索与 RRF 融合的算法本质
潜力评估
未来空间
向量数据库赛道的定义者之一。v3.0 转向 lake-native——把向量检索嵌进数据湖生态而非自成孤岛,路线判断领先一步。RAG 退潮与否不影响语义检索作为基础设施的长期需求。
社区规模头部(45.8k stars)
基金会治理
学术背书(SIGMOD/VLDB)
竞争激烈(Qdrant / Weaviate / pgvector)