一句话定义
向量数据库是以高维向量为一等公民的数据系统:负责嵌入向量的存储、近似最近邻(ANN)索引、元数据过滤、增删改与水平扩展,把"语义相似度检索"变成一条可运维的数据管道。
为什么重要
大模型时代几乎所有"理解语义"的需求(RAG 知识库、推荐、以图搜图、去重)最终都收敛为同一个动作:在高维空间里找最近邻。当向量从几千条涨到几亿条,NumPy 暴力循环就撑不住了,需要专门的索引与系统工程。向量数据库就是这件事的标准化答案——就像关系数据库之于结构化数据。
前置知识
无硬性前置。知道"向量是一串数字"即可,其余概念本库会从零建立。
核心概念
- 嵌入(embedding):用模型把对象编码成定长向量,如 1536 维浮点数组,语义相近的对象在空间中距离更近。
- ANN 索引:近似最近邻索引,用可控的召回损失换百倍千倍的查询加速。
- 元数据过滤:相似度之外叠加结构化条件(租户、类目、时间)。
- CRUD 与一致性:新增、更新、删除向量,并约定"写完多久能查到"。
- 分布式:分片(sharding)与副本(replica)支撑容量与可用性。
原理与机制
一条完整的数据流:
原始数据(文本/图片/音频)
│ 编码器(embedding 模型)
▼
嵌入向量(d 维浮点数组, 可选 L2 归一化)
│ 批量写入
▼
┌────────────────────────────────────┐
│ 向量数据库 │
│ 向量存储 + ANN 索引(IVF/HNSW/…) │
│ 元数据索引 + 过滤器 │
│ 增删改 + 段合并 + 一致性级别 │
│ 分片 + 副本 + 监控 │
└────────────────────────────────────┘
│ 查询: query 向量 + 过滤条件 + top-k
▼
top-k 近邻 → (可选)重排 rerank → 业务(RAG/推荐/搜索)它与 RAG 的分工:本库关心检索引擎本身(左半段管道),RAG 站点关心切块与提示组织(应用层)。
公式或模型
本节不适用:本篇是全景导览,无计算模型;距离与召回公式见 kp-003、kp-004。
图示
见上方数据流图。右侧查询路径是"在线"路径(毫秒级),左侧写入路径是"离线"路径(批量、可异步)——读写两条路径的资源竞争是后文所有架构设计的主线。
实例或案例
客服知识库:10 万篇文档切块成 80 万个片段,各生成 1024 维向量写入向量库。用户提问"发票丢了怎么报销"被编码成查询向量,库在 5 毫秒内返回 top-8 相似片段(含 department=财务 过滤),交给大模型生成答案。若无向量库,等价做法是对 80 万片段逐一调用相似度计算,单次查询需数百毫秒到数秒。
直观类比
传统数据库回答"这个值等于什么"(等值/范围匹配),向量数据库回答"什么和这个最像"(语义排序)。B+ 树按大小划分数轴,ANN 索引按相似性划分高维空间——这是两套完全不同的空间观。
常见误区
- "向量库就是一个只会算距离的玩具"——成熟向量库的数据系统能力(过滤、事务性写入、副本、备份)才是与算法库(FAISS/hnswlib)的分水岭,详见 kp-018。
- "检索结果是精确的"——几乎所有规模化检索都是近似的,存在漏召回的可能,这是特性不是缺陷,见 kp-004。
- "向量无损包含原文"——嵌入是有损压缩,语义细节(精确数字、专有名词)可能丢失,这正是 kp-015 稀疏检索存在的理由。
自测题
- 向量数据库与 FAISS 这类算法库的本质差别是什么?
- 一段文本进入向量库之前经历了哪几步?
- 为什么说生产环境的向量检索是概率性的?
答:算法库只有内存中的索引与距离计算;向量库在其上补齐数据系统能力——持久化、CRUD、元数据过滤、分布式与高可用、一致性语义、监控运维。
答:切块(分片成语义单元)→ 嵌入模型编码 → (可选归一化)→ 携带元数据写入,进入内存段并异步建索引。
答:ANN 索引用启发式剪枝换速度,真实最近邻可能不在被扫描的候选里;召回率是可测量的指标,而非恒等于 1。
与其他知识点的关系
kp-002 讲管道第一环"嵌入从哪来";kp-004 把"近似"形式化;kp-018 展开本篇框架图中的系统组件。
延伸阅读
Wang et al., "Milvus: A Purpose-Built Vector Data Management System"(SIGMOD 2021)——第一篇把向量库作为数据管理系统系统化论述的论文,本篇框架图的学术原型。