向量数据库是 RAG、语义搜索、推荐系统里经常出现的词。它和普通数据库最大的区别是:普通数据库擅长找“完全匹配”,向量数据库擅长找“意思相近”。
比如用户问“怎么报销差旅费”,资料里写的是“费用审批流程”。普通关键词搜索可能因为词不一样而错过;向量搜索更关注语义相似度,就更有机会把它们联系起来。
先用一句话抓住它
向量数据库像一个按“意思”整理资料的图书馆,你不必说出完全一样的关键词,它也能帮你找到相关内容。
它存储的不是原文文本本身的“意思”,而是 embedding,也就是由模型生成的一组数字向量。向量之间的距离越近,通常表示内容越相似。
为什么它会变热门
Coursera、Codecademy、StackAI 等解释文章都强调,向量数据库会存储 embedding,并通过相似度搜索找到接近内容。随着 RAG 和企业知识库问答变多,向量数据库就成了关键组件之一。
flowchart LR
Doc["文档 / 图片 / 音频"] --> Embedding["Embedding 模型"]
Embedding --> Vector["向量"]
Vector --> DB["向量数据库"]
Query["用户问题"] --> QVec["问题向量"]
QVec --> DB
DB --> Result["相似内容"]普通数据库更擅长精确条件,例如用户 ID 等于多少、订单状态是什么、日期在哪个范围内。向量数据库擅长相似度问题,例如哪几段文档和这个问题意思最接近,哪些商品和这个商品风格相似,哪些图片和这张参考图接近。
它和 RAG 的关系
很多 RAG 系统会先把文档切成片段,再把每个片段转成向量,存进向量数据库。用户提问时,系统也把问题转成向量,然后找出最接近的文档片段,交给大语言模型生成回答。
因此,向量数据库不是 RAG 的全部,但它经常是 RAG 的检索核心。资料切分、embedding 模型、相似度搜索、重排、权限过滤和答案引用,都会影响最终效果。
容易误解的地方
向量数据库不是替代所有数据库。它补上的是“按意思搜索”的能力,而不是替代事务、报表、精确查询和业务数据管理。很多系统会同时使用普通数据库和向量数据库,各自负责不同部分。
搜得相近也不代表答案一定正确。相似内容可能过时、片面或不适用。尤其在企业知识库里,如果文档切分不好、embedding 质量不高、权限过滤不严,向量搜索也会给出糟糕结果。
怎么判断它该不该用
如果你的问题是精确查询,比如“订单 123 的状态是什么”,普通数据库更直接。如果你的问题是语义匹配,比如“找出和这个问题意思相近的文档”,向量数据库就有价值。
它最适合企业知识库问答、文档语义搜索、推荐相似内容、多媒体检索和 RAG 系统。使用时要记住:向量数据库负责找相似,最终答案仍然需要来源和上下文来支撑。