🎯 课程主题
理解向量数据库(Vector Database)的概念及其与传统关系型数据库的区别,掌握主流向量数据库选型,并在 Windows 上完成 Docker 的安装与代理配置。
📝 核心知识点
1. 向量数据库 vs 关系型数据库
| 对比维度 | 关系型数据库 (MySQL/PostgreSQL/SQLite) | 向量数据库 (Milvus/Chroma/FAISS) |
|---|---|---|
| 存储内容 | 精确的结构化数据(文本、数字、日期) | 高维向量 + 元数据 |
| 查询方式 | 精确查询(WHERE id=1) | 模糊/相似度查询(Top-K 最近邻) |
| 典型场景 | 订单管理、用户信息、财务报表 | 图像相似搜索、语义检索、推荐系统 |
| 索引机制 | B-Tree / Hash 索引 | ANN 近似最近邻索引(IVF、HNSW 等) |
2. 现实场景举例
- 手机相册分类:将每张照片转化为向量,按向量夹角相似度自动归类(人物相册、风景相册等)。
- 电商模糊搜索:用户搜索「小碎花风格的短裙」,通过向量相似度匹配,返回语义接近的商品,而非精确关键词匹配。
- 传统倒排索引做的是精确查找,向量数据库实现的是语义级模糊查找。
3. 主流向量数据库对比
| 数据库 | 特点 | 适用场景 |
|---|---|---|
| Milvus | 生产级,支持十亿级向量规模 | 企业级 RAG 系统 |
| FAISS | Meta 开源,纯库级别,无服务端 | 本地原型验证 |
| Chroma | 轻量级,上手简单 | 小型项目 / PoC |
| PG Vector | PostgreSQL 扩展 | 已有 PG 技术栈的团队 |
| Redis / Elasticsearch | 传统数据库+向量扩展 | 混合检索场景 |
| Pinecone | 商业 SaaS | 不想自运维的团队 |
课程推荐:生产环境优先选择 Milvus,兼顾轻量级开发到十亿级向量规模。
4. Docker 安装与环境准备
- 为什么需要 Docker:Milvus 官方推荐通过 Docker 容器部署,方便管理依赖和环境隔离。
- 安装步骤:
- 从 Docker 官网下载安装包(或使用课程提供的版本)
- 一路 "下一步" 完成安装
- 首次启动需 Accept 协议、Skip 注册/登录
- 验证安装:在 CMD/PowerShell 中执行
docker命令,有正常输出即成功
5. Docker 代理配置(关键步骤)
由于 Milvus 最新版在国内镜像站可能未同步,需要通过代理下载。
- 方案一(推荐)—— HTTP 代理:
- Docker Desktop → 右上角齿轮图标 → Resources → Proxies
- 配置 HTTP/HTTPS 代理:
http://127.0.0.1:7890(以 Clash 代理为例,端口根据实际情况调整)
- 方案二 —— 国内镜像加速:
- Docker Desktop → Settings → Docker Engine
- 在 JSON 配置中添加
registry-mirrors(阿里云镜像加速器 + 南京大学镜像) - ⚠️ 注意:镜像站可能未同步 Milvus 最新版本,仅适用于旧版
🏗️ 架构与工作流
┌──────────────────────────────────────────────────────┐
│ RAG 数据管线 │
│ │
│ 文档加载 → 文档切分 → 向量化(Embedding) → 向量存储 │
│ (环节1) (环节2) (环节3) (环节4) │
│ │ │
│ ┌───────────▼────────┐ │
│ │ 向量数据库 │ │
│ │ (Milvus) │ │
│ │ │ │
│ │ ┌────────────────┐ │ │
│ │ │ Collection │ │ │
│ │ │ ├─ 向量字段 │ │ │
│ │ │ ├─ 文本字段 │ │ │
│ │ │ └─ 元数据字段 │ │ │
│ │ └────────────────┘ │ │
│ └────────────────────┘ │
└──────────────────────────────────────────────────────┘
部署架构 (Windows 本地开发):
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Python │────▶│ Docker │────▶│ Milvus │
│ (pymilvus) │ │ Container │ │ Standalone │
│ Client │◀────│ Engine │◀────│ :19530 │
└─────────────┘ └──────────────┘ └─────────────┘
💻 代码实战
Docker 安装验证
# 在 CMD 或 PowerShell 中执行,验证 Docker 是否安装成功
docker --version
# 输出示例:Docker version 24.0.7, build afdd53b
Docker 代理配置(Docker Engine JSON)
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://your-id.mirror.aliyuncs.com",
"https://docker.nju.edu.cn"
]
}
使用阿里云镜像需登录阿里云容器镜像服务获取个人加速地址。
⚠️ 常见问题与避坑指南
- 科学上网是前提:如果使用代理方案(方案一),需要确保代理工具(如 Clash)已启动且端口正确(默认 7890)。
- 国内镜像可能缺少最新版 Milvus:若使用国内镜像加速(方案二),Milvus 最新版可能无法拉取,需降级到镜像站有缓存的版本。
- Docker Desktop 首次启动较慢:需等待 Docker Engine 完全启动(左下角状态为绿色 Running)后再执行后续操作。
- Windows 版本要求:Docker Desktop 需要 Windows 10/11 专业版或企业版(支持 Hyper-V),家庭版可能需额外配置 WSL2。
- 代理配置后需重启 Docker:修改 Proxies 或 Docker Engine 配置后,务必重启 Docker Desktop 使配置生效。
💡 个人总结与延伸
- 向量数据库是 RAG 系统的核心存储层,负责持久化向量数据并支持高效的相似度检索。
- Milvus 是企业级首选:相比轻量级的 Chroma 和纯库级别的 FAISS,Milvus 提供了完整的服务端架构、横向扩展能力和丰富的索引类型。
- Docker 是当前 AI 基础设施部署的事实标准,掌握 Docker 代理配置对国内开发者尤为重要。
- 下一节将在 Docker 环境中正式安装并启动 Milvus。