一文读懂 Milvus:全球领先的开源向量数据库,AI 应用的“记忆中枢”
在 AI 时代,文本、图像、音频被转化为高维向量,而高效存储与检索这些向量,成为智能应用的**核心瓶颈**。此时,**Milvus** 作为专为向量设计的数据库横空出世
公众号:技海拾贝
专注 AI 工程化、云原生、大数据技术实战 | 每周深度解读一个核心技术
📖 前言:当 AI 需要“记住”世界
你是否思考过:
🔹 为什么抖音能精准推荐你感兴趣的视频?
🔹 为什么淘宝“拍立淘”能秒搜相似商品?
🔹 为什么 Copilot 能理解你代码的上下文?
答案藏在 向量(Vector) 中。
在 AI 时代,文本、图像、音频被转化为高维向量,而高效存储与检索这些向量,成为智能应用的核心瓶颈。
此时,Milvus 作为专为向量设计的数据库横空出世——它不仅是工具,更是 AI 应用的“记忆中枢”。
本文带你深度解析 Milvus 的前世今生、技术内核与实战价值。
🔍 什么是 Milvus?
Milvus 是一个专为非结构化数据检索设计的开源向量数据库,由Zilliz公司开发并捐赠给LF AI & Data基金会托管。它专注于高效存储、索引和查询大规模高维向量数据(如图像特征、文本嵌入、音频指纹等), enabling 以图搜图、语义搜索、推荐系统等AI核心应用。
与传统关系型数据库处理结构化表格数据不同,Milvus处理的是AI模型生成的高维向量(768维、1024维甚至更高),通过近似最近邻(ANN)搜索技术,在毫秒级时间内从十亿级向量中找到最相似的结果。
核心定位:为生产级AI应用而生的云原生向量数据库。
Zilliz成立于中国上海,总部在美国硅谷,于2019年开源了全球首个向量数据库产品 Milvus,它在 GitHub 上获得了超过 1.8 万颗 Star,在全球拥有超过 1000 家企业用户,成为目前全球最流行的开源向量数据库。而早在 2022 年,Zilliz 就完成了累计超过 1.03 亿美金的 B 轮融资,估值达到惊人的 6 亿美金。
💡 通俗理解:
如果把传统数据库比作“图书馆目录”,Milvus 就是“大脑海马体”——它不记文字,而是存储“语义指纹”,实现“以意搜意”。
🌱 发展历程:从实验室到全球开源标杆
2.1 起源:Oracle工程师的远见
创始人Charles Xie(星爵) 的故事始于2016年。作为Oracle 12c云数据库的创始工程师之一,Charles在Redwood Shores总部见证了数据库从本地部署向云转型的全过程。然而,他敏锐地意识到一个被忽视的真相:全球80%的数据是非结构化的(图像、视频、文本、分子结构),但仅有1%被有效分析。
“当时我看到深度学习的突破,特别是NLP领域的进展,意识到向量嵌入(Vector Embeddings)将成为解锁非结构化数据语义的关键。” Charles回忆道。
2017年,Charles毅然离开Oracle,用自己在特斯拉等公司的投资收益(约30万美元,原本计划用于购房首付)创立了Zilliz。
星爵(Charles Xie)
向量数据库公司Zilliz创始人谢超,星爵为其花名。
星爵是 Zilliz 的创始人兼首席执行官。Zilliz 是一家致力于开发用于 AI 应用的非结构化数据平台的公司。他是全球最流行的开源向量数据库 Milvus 的创造者。Milvus 被全球超过 5000 家企业使用,累计下载安装量超过 20M。星爵还积极参与 LF AI & Data 开源基金会,从 2020 年至今一直担任董事,并在 2020 年和 2021 年担任董事会主席。在创立 Zilliz 之前,他是 Oracle 12c 云数据库项目的创始工程师。星爵在华中科技大学获得学士学位,在威斯康星大学麦迪逊分校获得硕士学位。
2017年,在数据领域工作了15年后,星爵观察到了一个现象:大量的非结构化数据一直未被有效地处理和利用,传统数据库如Oracle等公司通常处理的是结构化数据。于是,他决定从硅谷回到中国创业,成立了向量数据库公司“Zilliz”。
图|Zilliz 在 SIGMOD’21 发表的论文,Milvus 是全球真正意义的第一款向量数据库产品
Milvus 产研团队
栾小凡,Zilliz 合伙人、Milvus 数据库工程总监,LF AI & Data基金会技术咨询委员成员。他先后任职于 Oracle 美国总部、软件定义存储创业公司 Hedvig 、阿里云数据库团队,曾负责阿里云开源 HBase 和自研 NoSQL 数据库 Lindorm 的研发工作。栾小凡拥有康奈尔大学计算机工程硕士学位。
我们的工程师团队毕业于斯坦福、伯克利、康奈尔、北大、交大、浙大、华科等顶级学府,我们每周都会进行数据库学习和论文精读,每次技术交流和方案讨论都能碰撞出很多灵感的火花。如果你渴望更多的技术成长、了解业界学术界的最新动态,欢迎加入我们!这里没有那么多条条框框,我们相信每个人的思考都有独特的价值,每一个成员都是平等的个体。不肝不卷,我们希望做更有挑战的事情,帮助每个人成为更好的自己。
王翔宇,Milvus 数据库高级研发工程师,技术界的偶像是 Linux Torvalds,最爱的开源项目是 git,平时爱好写代码、打 Dota,踢足球。毕业三年,他完成了从学生到技术负责人的转变。
我毕业以后就加入了 Zilliz,作为 Milvus 数据库项目的发起人之一,我见证了一个流行开源项目的诞生和成长。目前,Milvus 数据库在 GitHub 上获得了七千多颗星,并且我们收到了来自全世界各地用户的反馈,这给我带来了极大的成就感。此外,由于这是一个从零开始新写的一个项目,在研发过程中,会有很多机会去让你调研学习新的优秀的系统设计和实现,并将其运用到项目中,这是只有在早期团队中才会有的机会。如果是在一个已经比较成熟的软件中做开发,用户可能会离我很远,但是做开源软件的时候,用户离我很近,这样的体验不可多得。
曹镇山,Milvus 数据库高级研发工程师。华中科技大学计算机软件应用技术硕士。兴趣方向包括分布式系统、数据库、时空大数据分析处理等,目前在 Zilliz 主要从事开源向量数据库 Milvus 的研发。加入 Zilliz 两年来,他在开源时空数据分析框架 Arctern 与开源向量数据库 Milvus 等多个项目中担任研发工作,并在 Milvus 2.0 中负责多个核心模块的编写和维护。除了敲代码,钻研心理学(尤其是犯罪心理学和积极心理学)和爬山也是曹镇山的两大爱好。
两年前,我正式开启了我的职业转型之路。之前我做的是游戏开发,在这里,我需要更主动地学习研究,亲自推动项目的落地实施。在 Zilliz,一切都是开源开放的文化,身边都是有趣的技术大牛、健身大神、游戏达人。Milvus 数据库每次版本更新时,会带来众多用户的积极反馈,也会带来用户和粉丝的更多期待,我们为了版本的准时发布而积极努力着。也许这就是开源的魅力——当你收到用户和粉丝们的赞许,那一刻,也许一切都值了。
孙秉义,Milvus 数据库工程师,上海交通大学软件工程专业硕士,负责 Milvus 2.0 数据储存相关的研发工作。关注数据库和分布式系统,热爱开源,日常嗜好电脑游戏、美食、看书。
我们研发团队对于写代码都很有热情,遇到问题的时候可以直接到座位上问负责人,当然,我们也会注意文档的完善。我们目前在上海和杭州两地分布式办公,每周开在线会议同步一些信息,这样开展工作大家都彼此知道手上有什么活儿、短期和长期的目标是什么。苦苦思索后灵光一现解决问题的时候,是我最有成就感的时刻。
2.2 早期探索与关键转折
创业初期并非一帆风顺。Zilliz最初的尝试是GPU加速数据库,希望通过专用硬件加速大规模数据处理。技术上虽然可行,但商业上难以立足——GPU成本高昂,而CPU方案(如ClickHouse)正在快速缩小性能差距。
真正的转折来自早期用户的反馈。当用户询问是否能用系统加速图像搜索时,团队意识到:向量本身才是比GPU更基础的抽象。2018年,团队彻底转向,专注于向量搜索这一当时尚无明确市场认知的领域。
2.3 开源破局与快速成长
- 2019年:Milvus正式开源,年底获得约30个用户
- 2020年:用户增长至200+,加入LF AI基金会
- 2021年:发布Milvus 2.0,全面云原生架构重构
- 2023年:RAG(检索增强生成)元年,随着大模型爆发,Milvus GitHub星标骤增, queries从技术人员扩展到普通开发者
- 2024年:被Forrester评为向量数据库类别领导者,GitHub突破30,000+ Stars,推出2.4版本(GPU加速)和2.5版本(统一向量+关键词搜索)
在 2019 年 3 月 18 日, Zilliz 的工程师们在上海漕河泾的厂房里敲下了向量数据库历史上的全球第一行代码。2020 年,Milvus 项目加入 Linux 基金会并成功毕业。自推出以来,Milvus 在 GitHub 上拥有超过 26,000 个星标和 260 多位贡献者,全球下载和安装量超过 2000 万次,已经成为全球使用最广泛的向量数据库之一。Milvus 已经被 5,000 多家企业所采用,服务于AIGC、电子商务、媒体、金融、电信和医疗等多个行业。
2.4 现状:企业级开源的标杆
如今,Milvus已服务全球5,000+企业,成为名副其实的"开源项目商业化"成功案例。有趣的是,很多人知道Milvus却不知道Zilliz——这正是团队所期望的:Zilliz作为幕后团队,通过Zilliz Cloud(托管服务)维持核心项目的完全开源与持续创新
🌟 创始人星爵寄语(2025):
“Milvus 的使命不是替代传统数据库,而是成为 AI 时代的‘新基础设施’。我们坚持开源,因为向量智能属于全人类。”
⚙️ 核心特点:为何开发者选择 Milvus?
| 特性 | 说明 | 价值 |
|---|---|---|
| 极致性能 | IVF_PQ/HNSW 索引 + GPU 加速 | 10 亿向量 <100ms 检索(P99) |
| 云原生架构 | 存算分离、K8s Operator 管理 | 弹性扩缩容,运维成本降低 70% |
| 混合查询 | 向量 + 标量(WHERE age>18) | 满足真实业务复杂过滤需求 |
| 多模态支持 | 文本/图像/音频/视频统一向量化 | 一套系统支撑全场景 AI 应用 |
| 生态无缝集成 | LangChain/LlamaIndex/Spring AI 官方支持 | 5 行代码接入 RAG 应用 |
| 企业级可靠 | 多副本、快照备份、审计日志 | 金融级数据安全与合规 |
🌐 典型应用场景
| 场景 | 案例 | Milvus 作用 |
|---|---|---|
| 智能推荐 | 电商“猜你喜欢”、短视频推荐 | 实时计算用户兴趣向量相似度 |
| AIGC 增强 | RAG 知识库、Copilot 代码补全 | 毫秒级召回相关上下文 |
| 多模态搜索 | 淘宝“拍立淘”、Pinterest 以图搜图 | 图像向量相似性匹配 |
| 生物信息 | 基因序列比对、药物分子筛选 | 高维生物特征快速检索 |
| 安全风控 | 人脸核身、异常行为检测 | 实时比对特征向量防欺诈 |
💡 真实案例:
某头部银行使用 Milvus 构建智能客服知识库,将问答准确率提升 35%,响应延迟降至 80ms。
🔬 原理流程:向量如何被“记住”与“找回”?

关键步骤:
1️⃣ 写入:数据经 Embedding 模型转为向量 + 标量(如商品类目、价格)
2️⃣ 索引构建:后台异步构建 HNSW/IVF 索引(支持增量更新)
3️⃣ 查询:
- 标量过滤(WHERE category=‘手机’)
- 向量 ANN 搜索(余弦相似度)
- 结果融合排序
4️⃣ 返回:毫秒级返回最相关结果
Milvus 是为云原生环境设计,采用模块化设计理念,将系统分为多个组件,分别处理客户端请求、数据处理以及向量数据的存储和检索。得益于这种模块化设计,Milvus 可以轻松地更新或升级特定模块,而无需改变模块间的接口,使得在 Milvus 中集成 GPU 加速变得简单可行。
Milvus 2.4 的架构包括协调器、访问层、消息队列、工作节点和存储层等组件。工作节点进一步细分为数据节点、查询节点和索引节点。其中,索引节点负责构建索引,查询节点负责执行查询。 为了充分利用GPU的加速能力,CAGRA 被集成到了 Milvus 的索引节点和查询节点中。这种集成使得计算密集型任务,如索引构建和查询处理,能够被转移到 GPU 上执行,从而利用其并行处理能力。 在 Milvus 的索引节点中,CAGRA 被集成到了索引构建算法中,利用 GPU 硬件来高效地构建和管理高维向量索引,显著减少了索引大规模向量数据集所需的时间和资源。 同样,在 Milvus 的查询节点中,CAGRA 被用于加速执行复杂的向量相似度查询。借助GPU的处理能力,Milvus 能够以前所未有的速度执行高维距离计算和相似性搜索,从而加快查询响应时间并提升整体吞吐量。
🚀 快速开始:5 分钟体验向量检索
方式一:Docker 一键启动(推荐新手)
# 1. 启动 Milvus 单机版(含 Attu 可视化界面)
wget https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml -O docker-compose.yml
docker-compose up -d
# 2. 访问 Web 管理界面
浏览器打开:http://localhost:3000 # Attu 管理后台
方式二:Python SDK 快速验证
pip install pymilvus
💻 使用示例:构建一个“电影语义搜索”小应用
from pymilvus import connections, Collection, FieldSchema, CollectionSchema, DataType, utility
import numpy as np
# 1. 连接 Milvus
connections.connect(host='localhost', port='19530')
# 2. 定义 Schema(向量 + 标量)
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name="title", dtype=DataType.VARCHAR, max_length=200),
FieldSchema(name="genre", dtype=DataType.VARCHAR, max_length=50),
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=768) # BERT 向量维度
]
schema = CollectionSchema(fields, "movie_collection")
collection = Collection("movies", schema)
# 3. 插入模拟数据(实际用 Embedding 模型生成)
movies = [
{"title": "星际穿越", "genre": "科幻", "embedding": np.random.random(768).tolist()},
{"title": "肖申克的救赎", "genre": "剧情", "embedding": np.random.random(768).tolist()},
# ... 更多电影
]
collection.insert([
[m["title"] for m in movies],
[m["genre"] for m in movies],
[m["embedding"] for m in movies]
])
# 4. 创建索引(HNSW 高精度)
index_params = {
"metric_type": "COSINE",
"index_type": "HNSW",
"params": {"M": 8, "efConstruction": 200}
}
collection.create_index("embedding", index_params)
collection.load() # 加载到内存
# 5. 语义搜索:找“关于希望与自由的电影”
query_vec = np.random.random(768).tolist() # 实际应为“希望 自由”文本的 Embedding
results = collection.search(
data=[query_vec],
anns_field="embedding",
param={"metric_type": "COSINE", "params": {"ef": 50}},
limit=3,
expr="genre in ['剧情', '励志']" # 混合查询:先过滤类型
)
# 6. 输出结果
for hit in results[0]:
print(f"推荐电影: {hit.entity.get('title')} | 相似度: {1 - hit.distance:.4f}")
✅ 效果:输入“希望与自由”,返回《肖申克的救赎》等高相关影片!
🌅 结束语:向量智能,未来已来
Milvus 的崛起,标志着 “向量优先” 已成为 AI 基础设施的新范式。
它不仅是技术工具,更是连接算法与业务的桥梁——让推荐更懂你,让搜索有温度,让 AI 拥有“长期记忆”。
🌱 给开发者的建议:
- 初学者:从 Docker 单机版 + Python SDK 入手
- 企业落地:关注 Milvus 2.4 的 RAG 工作流与 MCP 集成
- 深度参与:贡献代码、参与社区(GitHub: milvus-io/milvus)
📣 关注我们,技术不迷路!
✨ 公众号:技海拾贝
🔥 每周更新:
✅ AI 工程化实战(RAG/Agent/MLOps)
✅ 云原生与数据库深度解析
✅ 开源项目源码解读
✅ 大厂技术方案拆解
更多推荐



所有评论(0)