下面是关于向量数据库核心能力的详细介绍,涵盖向量存储、索引构建、相似度检索与元数据过滤四个方面,内容力求简单明了、贴近实际应用场景。
核心能力:向量存储、索引构建、相似度检索、元数据过滤
在 RAG 技术栈中,向量数据库承担着“知识库的大脑”这一角色。它不像传统数据库那样通过精确匹配的关键词来查找内容,而是基于语义相似度进行检索。支撑这一能力的基础,正是以下四项核心功能。
1. 向量存储
向量存储指的是将文本、图片等非结构化数据,经过嵌入模型转换为高维向量后,进行持久化保存的能力。每一段文档(chunk)在入库时都会生成一个与之对应的浮点数数组,这个数组就是它在向量空间中的“坐标”。
- 为什么不用普通数据库存储向量?
普通数据库对高维向量的查询效率极低,因为相似度搜索不是简单的等于比较,而是需要计算向量之间的距离(如余弦相似度、欧氏距离)。向量数据库针对这种计算做了专门的存储结构和算法优化。
- 实践中需要注意什么?
向量的维度由嵌入模型决定(例如 768 维、1536 维),存储时需要确保维度匹配,否则后续检索会失败。同时,向量数据通常比原始文本占用更多空间,合理设置数据保留策略有助于控制成本。
2. 索引构建
将向量存入数据库只是第一步,若要对海量向量进行快速近似搜索,必须建立索引。索引本质上是给向量数据创建一种特殊的数据结构,以加速最近邻(ANN)查询,避免每次都全局遍历。
- 常用索引类型
- Flat(暴力搜索):遍历所有向量,精度 100%,但数据量大时速度慢,适合万级以下小规模测试。
- IVF(倒排文件索引):通过聚类将向量空间划分成多个小区,查询时先在少数几个近邻区搜索,大幅减少计算量。
- HNSW(分层可导航小世界图):基于图结构的索引,查询速度和精度平衡较好,是很多生产环境的首选。
- 实用建议
向量数量在几十万以下时,HNSW 通常是最省心的选择;数据量达到百万级以上,可以结合量化技术(如 PQ)降低内存占用。索引参数(如每个群集的大小、图节点的连接数)会影响速度与精度,需要根据实际业务对延迟和召回率的要求进行微调。
3. 相似度检索
相似度检索是向量数据库最核心的查询能力。给定一个查询向量,数据库根据索引快速返回与之距离最近的一批向量(及对应的原始文本片段)。
- 流程简述
- 用户问题 → 嵌入模型 → 查询向量
- 查询向量传入数据库,触发 ANN 搜索
- 返回 top‑k 个最相似的向量及其元数据
- 这些向量对应的文本片段,就是提供给 LLM 的上下文
- 衡量相似度的距离指标
常用有余弦相似度(语义方向的一致性)和欧氏距离(数值绝对值差异)。对于文本嵌入,余弦相似度更常用,因为归一化的向量可以忽略长度影响,专注于方向。
- 实用性提示
检索质量的好坏不仅取决于索引,还与 embedding 模型的选择、文本分块策略以及预处理方式密切相关。如果发现检索结果不对路,可以尝试调整 k 值、更换 embedding 模型或优化文档切分方式,而不一定需要更换向量数据库。
4. 元数据过滤
单纯的向量相似度搜索有时过于“开放”,会返回语义相关但不满足业务约束的结果。例如,用户问“最新退货流程”,系统可能将去年的旧文档也排在前列,因为文字表述相似。元数据过滤提供了在向量搜索前或后,按结构化条件进行精准筛选的能力。
- 常见用法
- 时间过滤:只检索最近三个月内更新过的文档。
- 来源过滤:只查《员工手册》,排除其他资料。
- 权限过滤:根据用户部门,只检索其有权查看的文档。
- 标签过滤:只查 FAQ 类片段,忽略技术规范。
- 实现方式
大多数向量数据库支持在查询时添加过滤条件,过滤可以在搜索前(Pre‑filtering)或搜索后(Post‑filtering)执行。Pre‑filtering 先缩小数据范围再计算向量距离,效率更高,但需要过滤后的数据量足够大才能保证召回质量。在实际项目中,可以使用一个较宽松的过滤条件配合较大的 k 值,再在应用层进一步精选。
- 与 RAG 的集成价值
元数据过滤让 RAG 的检索从“语义模糊匹配”升级为“语义+业务规则的精准路由”。它有效解决了单纯语义搜索可能带来的信息过时、越权访问等问题,让系统在灵活与可控之间找到平衡。
结合这四层能力,向量数据库将原始文档变成了可被语义理解、可精确筛选的动态知识网络。在接下来的实践中,你会看到如何利用这些能力一步一步构建出高质量的知识问答系统。