向量检索,就是先把文本/图片等内容变成"数字向量",再用"向量之间的相似度"来找最相近的内容,而不是用关键字匹配。向量检索(Vector Search)= 用数学的方式,让 AI 找到"语义最相近"的内容,而不是靠关键词匹配。
它是 RAG(检索增强生成) 的核心技术。
🌰 现实例子
假设你问 AI:
plain
如何重置我的 账号 密码?
传统关键词搜索会去找包含:
- "重置"
- "账号"
- "密码"
这些关键词的文章。
但是如果文章写的是:
plain
如何修改登录凭证?
关键词完全不同,但意思一样。
➡ 关键词搜索找不到
➡ 向量检索可以找到
因为"重置密码"和"修改登录凭证"在 AI 的语义空间里非常接近。
一、 向量是什么?
向量 = 数字数组,例如:
plain
[0.2, 0.13, 0.98, -0.33, ...(几千维)]
AI(例如: text-embedding 模型)会把++一段文本变成一个向量++。
**相似的内容 → 向量距离很近
**不相似的内容 → 距离很远
二、向量检索的工作流程(最重要)
📌 步骤 1:把所有知识库内容变成向量(Embedding)
例如,把 1000 篇文档变成:
plain
文章1 → 向量A1
文章2 → 向量A2
...
文章1000 → 向量A1000
📌 步骤 2:用户提问也转成向量
用户提问:
plain
忘记密码怎么办?
Embedding → 向量 Q(Query)
📌 步骤 3:用数学方式找"向量距离最近"的文档
最常用数学方法:
- cosine similarity(余弦相似度)
| 数值 | 意义 |
|---|---|
| 1.0 | 完全相同 |
| 0.9 | 很相似(很近) |
| 0.4 | 不太相似(较远) |
| 0.0 | 完全无关 |
| -1 | 完全相反 |
- L2 距离
- 内积
然后找出最相似的几篇文档,例如:
plain
Q 和 A53 的距离 = 0.91(很近)
Q 和 A829 的距离 = 0.88
Q 和 A17 的距离 = 0.42
输出:
plain
A53、A829
这就是"检索增强"的资料。
传统关键词搜索(完全靠文字):
| 搜索 | 文档内容 | 匹配? |
|---|---|---|
| 重置密码 | 修改登录凭证 | ❌ 不匹配 |
| 重置密码 | 密码重置步骤 | ✔ 匹配 |
| 重置密码 | 修改密码的方法 | ❌ 关键词不同 |
关键词不一致,全都错过。
向量检索(靠语义)
| 问题向量 vs 文档向量 | 语义距离 | 排名 |
|---|---|---|
| Q vs "修改登录凭证" | 0.93 | 1 |
| Q vs "密码重置步骤" | 0.89 | 2 |
| Q vs "修改密码的方法" | 0.88 | 3 |
全部命中、非常精准。
三、 向量检索为什么这么强?
✔ 1. 不依赖关键词
不同表达的内容都能找到。
✔** 2. 语义理解**
"苹果"和"水果"相关
但"苹果"和"电脑"也可能相关
向量可以区分语义场景。
✔ 3. 对长文档效果特别好
FAQ、技术文档、客服知识库都适合。
✔** 4. RAG 的基础**
现在所有 AI 加速问答、知识库问答都靠它。
举例:DeepSeek / Qwen / Hunyuan / OpenAI 如何做向量检索?
1. 生成向量:
plain
POST /v1/embeddings
模型例如:
- BAAI/bge-small-en
- text-embedding-3-large
- Hunyuan-embedding
- Qwen2-embedding
2. 存到向量数据库(任选一个)
- Pinecone
- Weaviate
- Milvus(最强开源)
- Qdrant(最适合新手)
- Chroma(最简单)
3. 使用相似度检索:
plain
search(vector, topK=5)
4. 把结果发给 LLM(模型回答)
这就构成完整的 RAG 系统。