Vector Database
为什么需要 Vector Database
Embedding 把文本变成了向量,但这些向量需要存在某个地方才能被检索。
你不能把向量存在普通数据库里做语义搜索——传统数据库擅长的是 id = 123、name = "张三" 这种精确匹配,而不是"找和这段话意思最接近的内容"。
Vector Database 就是专门干这件事的:存储向量 + 高效检索"最相似的向量"。
什么是 Vector Database
一句话定义:Vector Database 是专门存储高维向量、并支持语义相似度检索的数据库。
类比一下:
- 传统数据库像字典:查"这个词在哪页"
- Vector Database 像图书馆员:问"哪本书讲的意思和这个问题最接近"
它不关心向量里的每个数字是什么意思,只关心向量之间的距离。距离近 = 语义相似。这里就用到了 Cosine Similarity 来衡量相似度。
怎么做:什么时候用 Vector Database
适合用 Vector Database 的场景:
- 知识库文档很多,不能每次全量塞给模型
- 需要做语义搜索,而不是关键词搜索
- 为 RAG 系统提供稳定的检索层
什么时候可以不用:
- 数据量很小(几十条),直接用简单存储也够
- 场景很简单,只需要关键词匹配
常见坑:
- 上了向量数据库不等于 RAG 做好了:效果还取决于切分、检索策略、Prompt 拼接
- 它不能替代普通数据库:很多业务字段仍需要结构化存储
- 不是维度越高越好:更高维通常意味着更高存储和计算成本
记住这一句:Vector Database 是 Embedding 的存储层,让"语义相似的内容能被快速找到"成为可能。
标签
向量数据库vector storePineconepgvectorWeaviateMilvus