Milvus 是 Zilliz 主导、捐赠给 LF AI & Data 基金会,Apache‑2.0 开源协议的云原生分布式向量数据库。专门存储、检索Embedding高维向量,解决海量向量的近似最近邻ANN相似搜索,是大模型RAG、多模态AI的底层存储引擎。

传统数据库擅长精确匹配;Milvus擅长**“找相似”**:文本、图片、音频经过Embedding模型转为高维数值向量,Milvus快速找出语义/特征最接近的数据。

核心能力

  1. 丰富向量索引:HNSW、IVF系列、DiskANN,支持CPU/GPU加速;可在检索速度、召回率、内存占用三者之间权衡取舍。
  2. 混合查询:向量相似度搜索 + 标量字段过滤(where条件过滤元数据),生产环境高频使用。
  3. 存算分离分布式架构:Proxy接入、Coordinator协调、Query/Data计算节点、对象存储持久化;计算、存储可独立横向扩缩,支持百亿级向量,毫秒级召回。
  4. 多部署形态
版本适用场景
Milvus‑LitePython库,pip install,笔记本原型开发
Milvus Standalone单机部署,百万~亿级向量生产
Milvus DistributedK8s分布式集群,十亿~百亿级企业业务
Zilliz Cloud托管云服务,免运维
  1. 多语言SDK:Python(pymilvus)、Go、Java、REST API;配套可视化工具Attu、CLI。

典型业务场景

  • RAG知识库:企业文档、私有知识库,语义检索,缓解大模型幻觉(Milvus最主流场景)
  • 多模态检索:以图搜图、视频片段检索、音频检索
  • 推荐系统:用户/物品向量做相似推荐、粗排召回
  • 异常检测、风控、药物分子相似度匹配等科学计算场景

基础概念(类比MySQL)

Milvus概念MySQL类比说明
CollectionTable集合,存放向量与元数据
FieldColumn字段,可以是向量、int、varchar、JSON
EntityRow一行记录,一条业务数据
IndexIndex向量索引,ANN检索的核心

和FAISS的区别

  • FAISS:Meta开源的检索算法库,只做内存内向量搜索,不是完整数据库,没有持久化、分布式、过滤、高可用,需要自己封装存储层。
  • Milvus:完整数据库,封装FAISS等底层算法,提供持久化、分布式、过滤、备份、扩缩容,直接用于线上服务。

极简Python示例(Milvus‑Lite)

from pymilvus import MilvusClient
 
client = MilvusClient("demo.db")
# 创建集合,向量维度8
client.create_collection(collection_name="test", dimension=8)
 
# 插入向量
data = [{"vector":[0.1]*8, "id":1}]
client.insert("test", data)
 
# 向量相似检索
res = client.search(collection_name="test", data=[[0.1]*8], limit=2)
print(res)