项目详情

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 走完。

项目速览

核心数据

45.8k
Stars
372+
贡献者
7 年
持续演进(2019 起)
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 等索引库只解决「搜」,没有持久化、增删改、过滤、多租户、高可用。生产系统要的是完整的数据管理能力。

规模与新鲜度两难

十亿向量 + 实时写入 + 每秒上万查询,单机内存放不下、索引重建慢。需要分布式架构原生解决,而不是运维硬扛。

核心理念

为向量搜索重新造一台数据库

核心机制

分布式架构:四层拆解

ACCESS LAYER · 接入层 SDK (Py/Go/Java/Node) RESTful / gRPC Proxy(无状态网关) 校验 / 路由 / 负载均衡 / 限流 COORDINATOR · 协调层(大脑,HA 可选) RootCoord(DDL / 元数据) DataCoord(数据/段管理) QueryCoord(负载/调度) 维护拓扑, 故障自动转移 WORKER · 执行层(无状态,可水平扩展) QueryNode(查询执行) DataNode(流式写入) IndexNode(索引构建) 读写负载 独立伸缩 STORAGE · 存储层(存算分离的底座) etcd(元数据) Woodpecker WAL(写前日志) 对象存储(S3 · Vortex/Parquet) 状态全部 下沉存储层
数据面(随流量伸缩) 控制面 / 存储底座 架构要点:无状态 worker + 共享存储 = 存算分离
核心机制

一条数据的旅程:写入与查询

写入管线(实时可见) Client Insert Woodpecker WAL DataNode 消费 Growing Segment (内存增量段,立即可查) Sealed Segment (刷盘 + 建索引 → 历史段) 查询管线(增量 + 历史合并) Client Search Proxy 路由 QueryNode Growing:内存增量直查 Sealed:HNSW/DiskANN 索引 标量过滤 (先过滤后搜索) Reduce 归并 (多副本/多段 TopK) 设计取舍:Log-as-Database 写入先落 Woodpecker WAL 再异步成段——v3.0 起 WAL 可独立部署成服务,写路径的吞吐与故障隔离和查询彻底解耦; 查询同时扫 Growing(新鲜)+ Sealed(历史),用「可见性一致性」换取实时写入即刻可搜,这是 RAG 场景的关键能力。
主流程(实线箭头) 存储落地 / 异步阶段 架构要点注释
核心机制

索引引擎:按场景选武器

索引类型适用规模典型场景
FLAT精确暴力扫百万级以内召回率 100% 基线、小数据集
HNSW图索引千万级,吃内存低延迟高召回,最常用默认选
IVF_FLAT / IVF_PQ聚簇 + 量化亿级内存受限,量化换精度
DiskANN磁盘图索引十亿级向量放 SSD,冷数据低成本检索
SCANN各向异性量化千万级高召回 + 高吞吐平衡
GPU_CAGRAGPU 图索引亿级NVIDIA GPU 加速建索引与查询

另支持 mmap 加载、标量位图 / 跳表索引做过滤加速。v3.0 新增 FAISS 透传索引——直接写 IVF64,Flat 这类 Faiss 索引工厂串,Faiss 配方原样跑在 Milvus 上。

核心机制

混合检索:稠密 + 稀疏双路召回

Query 文本 同一份数据 Dense 路语义召回 BGE / OpenAI embedding → HNSW Sparse 路关键词召回 BM25 / SPLADE / BGE-M3 → SINDI 融合重排 RRF / WeightedRanker (v3.0:Function Chain 可组合) TopK 结果 语义 + 精确词双保险
两路召回(同一 collection 内原生支持) 融合层(RRF 公式可在 Playground 里亲手调)

纯语义检索会被「同义不同词」骗,纯关键词会被「同词不同义」骗——两路融合是 RAG 检索质量的工业标配,Milvus 把它做进内核而非应用层。

版本演进

v3.0「Lake-native」:向量库长出数据湖能力

快速上手

三行代码跑起向量搜索

$ 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 Litepip install pymilvus百万向量内notebook 原型、CI 测试、边缘设备
Standalonedocker-compose 单容器千万级中小项目、单机生产、开发环境
DistributedK8s / 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 主导贡献,中性基金会托管降低厂商锁定顾虑。

适用场景

适合谁用

风险提示

需要警惕

在线体验

亲手玩转 Milvus 的两个核心机制

不需要装任何东西——在浏览器里跑 ANN 图索引贪心搜索(看它如何只访问 2% 的点拿到 86% 召回),再调 RRF 融合参数体会混合检索的排序逻辑。

打开 Playground

纯前端实现,零网络依赖 · 模拟的是 NSW 贪心搜索与 RRF 融合的算法本质

潜力评估

未来空间

向量数据库赛道的定义者之一。v3.0 转向 lake-native——把向量检索嵌进数据湖生态而非自成孤岛,路线判断领先一步。RAG 退潮与否不影响语义检索作为基础设施的长期需求。

社区规模头部(45.8k stars) 基金会治理 学术背书(SIGMOD/VLDB) 竞争激烈(Qdrant / Weaviate / pgvector)

上一个
Taste Skill
下一个
morphicons
1 / 17