一、向量是什么¶
在 AI 场景里,向量可以理解成一个“很长的数字列表”,例如:
[0.23, -0.54, 1.20, ..., 0.87]
这个数字列表不是随便生成的,它通常承载了原始数据的语义或特征。
例如:
- 一张图片会被编码成代表颜色、形状、对象特征的向量;
- 一段文本会被编码成代表主题、语义、上下文的向量。
二、向量数据库到底是做什么的¶
向量数据库就是专门用来:
- 存储这些向量;
- 高效检索与某个目标向量最相似的其他向量。
如果你给它一个查询向量,它会在海量向量里快速找到“距离最近”的那些结果。
三、向量数据库解决了什么问题¶
传统数据库很擅长做精确查询,比如:
- 根据用户名找用户;
- 根据订单号查订单;
- 根据时间范围查日志。
但它不擅长做“找最相似的内容”。
而向量数据库最核心的能力就是相似性搜索,例如:
- 找和这段问题最像的文档片段;
- 找和这张图片最像的图片;
- 找和这首歌风格最接近的音乐。
常见相似度度量包括:
- 余弦相似度;
- 欧几里得距离;
- 内积等。
四、一个直观比喻¶
你可以把向量数据库想象成一个巨大的“贴纸墙”:
- 每张贴纸代表一条数据;
- 相似的贴纸会被放得更近;
- 当你拿来一张新贴纸时,系统会帮你快速找到周围最接近的那些贴纸。
这就是相似性检索的本质。
五、向量数据库有哪些主流选择¶
5.1 原生向量数据库¶
这类数据库从设计之初就针对向量检索优化。
常见代表:
- Milvus / Zilliz Cloud
- Qdrant
- Chroma
5.2 传统数据库的向量扩展¶
这类方案是在已有数据库基础上增加向量能力。
常见代表:
- PostgreSQL + pgvector
- Redis + RedisSearch
- Elasticsearch
六、为什么 RAG 几乎离不开向量数据库¶
因为 RAG 的第一步通常就是:
- 把用户问题转成向量;
- 再从知识库中找最相关的文档片段。
如果没有一个高效的向量检索层,RAG 在海量知识库上就很难跑得快,也很难保证召回质量。
七、什么时候一定要用向量数据库¶
如果你的系统具备这些特点,就基本需要向量数据库:
- 文档很多;
- 需要按语义检索而不是关键词精确匹配;
- 需要支持 RAG、推荐、相似搜索、多模态检索。
八、一个实用判断¶
向量数据库不是为了替代传统数据库,而是补上“语义相似检索”这块能力。很多真实系统里,往往是传统数据库和向量数据库一起存在:前者负责结构化数据,后者负责语义理解。