
(图片:象征着连接与多维空间的数据网络)
在生成式 AI(Generative AI)和大语言模型(LLM)爆发的今天,**'向量数据库'**成为了技术圈的高频词汇。无论是构建企业级的知识库问答系统(RAG),还是实现以图搜图、个性化推荐,向量数据库都是不可或缺的基础设施。
而在众多向量数据库中,Milvus 作为开源界的明星项目,凭借其云原生架构、极高的性能和良好的可扩展性,成为了许多开发者的首选。
本文将带你深入浅出 Milvus,从核心理论到结合真实 AI 嵌入模型 (Embedding Model) 的可执行 Python 实战,让你快速掌握这款强大的工具。
一、为什么我们需要向量数据库?
在传统的数据库(如 MySQL、PostgreSQL)中,我们通常通过精确匹配(如 WHERE name = 'Alice')或简单的文本索引来进行搜索。
但在 AI 世界里,文本、图像、音频等非结构化数据被转换成了高维向量(Vector Embeddings)。例如,一段话可能被大模型表示为包含数百个浮点数的数组。在这个数组空间里,语义相近的句子,它们的向量距离就越近。
传统数据库无法高效处理这种'在高维空间中寻找最近邻居(Approximate Nearest Neighbor, ANN)'的问题,而这正是 Milvus 的强项。
Milvus 的核心使用场景
- 检索增强生成(RAG):给大模型外挂知识库,解决大模型胡说八道(幻觉)的问题。
- 多模态搜索:以图搜图、以音搜音。
- 推荐系统:寻找用户向量与商品向量的相似度。
二、Milvus 的核心概念与架构图解
为了用好 Milvus,我们需要先理解它的几个核心理论概念。
1. 数据模型 (Data Model)
Milvus 的数据组织方式与关系型数据库有相似之处,但专为向量优化:
- Collection(集合):相当于传统数据库的 Table(表)。
- Entity(实体):相当于表中的一行数据(Row)。
- Field(字段):相当于列(Column),其中必须包含一个向量字段,也可以包含普通的标量字段(如 ID、文本内容、时间戳等)。
2. 距离度量 (Metric Types)
如何判断两个向量有多'像'?Milvus 支持多种距离度量方式:
- L2 (欧氏距离):计算两点间的直线距离。值越小,越相似。
- IP (内积):计算向量投影。值越大,越相似。
- COSINE (余弦相似度):计算向量间的夹角。值越大,越相似(常用于 NLP 文本向量)。
3. Milvus 架构一览
Milvus 采用云原生架构,计算与存储分离。它可以单机部署,也可以在 K8s 上分布式部署。
- Proxy 接入层:gRPC/REST 客户端入口。
- 协调层 Coordinator Service:Root Coord, Query Coord, Data Coord。


