数据与存储
向量数据库Vector Database
你可能会问
向量数据库到底是什么?搜「小猫吃什么」,怎么找到《幼猫喂养指南》?
简单来说
保存向量表示并进行相似度检索,常用于语义搜索和知识库问答。
关键词搜索向量检索一个对字面,一个对意思
字面没对上意思对上了说法不同,也认得出
01 · 先这样理解
把抽象概念放进真实场景
保存向量表示并进行相似度检索,常用于语义搜索和知识库问答。
换个角度想向量数据库像按位置找邻居的地图:每段内容按「意思」被安放在一个坐标上,含义越近住得越近。找资料不是对名字,而是看谁住在问题旁边。
02 · 点击演示
换个说法提问,库里的答案还找得到吗?
突出显示的部分,就是当前概念在整条流程中负责的位置。
- 这一步不存在——
文档按原文存,等着被逐字匹配《幼猫喂养指南》→ 嵌入模型
[0.82, -0.15, …] · 语义变成坐标
- 词 → 文档对照表
「幼猫」指向这篇指南「喂养」指向这篇指南向量库里指南安放在坐标 A相近内容就住在它附近 搜「小猫吃什么」→ 拆词:小猫 / 吃 / 什么
去找含这些字的文档
「小猫吃什么」→ 同一个模型转向量
落在地图上,看看谁住得近
- 0 结果文档里没有「小猫」俩字,擦肩而过字面不同,就当不存在命中幼猫喂养指南 · 相似度 0.92意思相近,坐标就近
1 / 4
Embed · 内容转成向量
03 · 放进真实任务
什么时候会遇到它
RAG 的检索层
知识库问答里「先查资料」那一步,查的往往就是向量数据库。
语义搜索
用户不必猜文档的准确用词,描述意思就能搜到。
找相似内容
「相关推荐」「查重」这类找相近而非找相同的任务。
04 · 想一想
用一个问题检查理解
知识库里明明有《差旅报销标准》,用户搜「出差住宿能报多少」却搜不到。传统关键词搜索缺了什么?
查看答案
缺语义:关键词搜索只认字面,「住宿能报多少」和「差旅报销标准」没有共同词就匹配不上。把文档转成向量后按语义检索,问题和文档在含义上离得近,就能召回。
最容易踩的坑
向量检索找的是「最像的」,不是「对的」:库里没有答案时,它照样返回几条最接近的。给 RAG 用时要设相似度门槛,不够像就承认查不到。