召回率上不去,搜索和 RAG 就废一半:一文讲透如何提高召回率

一、先说结论:什么是召回率?

召回率,说白了就是:

用户真正想要的内容,你有没有尽可能多地找出来。

举个例子。

用户搜索:

“怎么提高 RAG 检索效果?”

系统里其实有 10 篇相关文档,但你只召回了 4 篇。

那么召回率就偏低。

很多系统效果差,不是大模型不会回答,而是前面检索阶段就把正确资料漏掉了。尤其在搜索系统、推荐系统、知识库问答、RAG、智能客服、企业文档问答里,召回率非常关键。


二、为什么召回率这么重要?

2.1 召回率决定“有没有机会答对”

排序、重排、大 模型 生成都属于后续环节。

但如果第一步召回阶段没有把正确内容找出来,后面再强也没用。

这就像你让厨师做菜,但食材一开始就没买对。

2.2 低召回常见表现

用户会感觉:

  • 明明知识库里有答案,但系统说不知道。
  • 搜索关键词稍微换个说法,就搜不到。
  • 用户输入口语化问题,系统匹配不到正式文档。
  • 同义词、缩写、别名、错别字搜不到。
  • RAG 回答看起来很流畅,但内容不对。

所以提高召回率,本质上就是:

让系统尽可能别漏掉用户真正需要的内容。


三、提高召回率的核心思路

3.1 不要只靠一种检索方式

传统关键词检索擅长“字面匹配”,比如 BM25、倒排索引。

向量检索擅长“语义理解”,比如用户说“怎么提升检索命中率”,系统能找到“召回率优化方案”。

现在主流做法是 混合检索 Hybrid Search:把关键词检索和向量检索结合起来。Weaviate 官方文档也明确提到,混合检索会结合 BM25 关键词搜索和向量搜索的优势,既保留关键词精确匹配能力,又增强语义理解能力。

一句话:

想提高召回率,不要单腿走路,要多路召回。


四、方法一:关键词检索优化

4.1 做好分词

中文搜索里,分词非常重要。

比如:

“苹果手机维修”

如果分词错了,可能变成:

“苹果 / 手机维修”

也可能变成:

“苹果手机 / 维修”

不同分词结果,召回内容完全不同。

常见优化方式:

  • 使用更适合业务的中文分词器。
  • 加入业务词典。
  • 加入品牌词、产品词、行业词。
  • 对专有名词做保护。
  • 对人名、地名、公司名做特殊处理。

例如在企业知识库里,可以把这些词加入词典:

  • 混合检索
  • 向量数据库
  • LangChain
  • Milvus
  • Elasticsearch
  • RAG
  • Agent
  • 前缀缓存
  • KV Cache

否则系统可能会乱切词,导致召回失败。


4.2 做同义词扩展

用户表达是非常多样的。

比如用户搜索:

“提高召回率”

相关文档里可能写的是:

  • 提升检索命中率
  • 优化搜索覆盖率
  • 增强检索效果
  • 减少漏召回
  • 提高 recall
  • 检索效果优化

如果系统只做字面匹配,就会漏掉很多内容。

所以可以建立同义词表:

召回率 => 检索命中率、搜索覆盖率、recall、漏召回
大模型 => LLM、语言模型、生成式 AI
知识库问答 => RAG、检索增强生成、智能问答
向量检索 => 语义检索、embedding 检索

同义词扩展是提高召回率非常直接的方法。


4.3 做别名和缩写处理

很多业务系统里,用户喜欢用简称。

比如:

中国工商银行 => 工行
中华人民共和国 => 中国
检索增强生成 => RAG
大语言模型 => LLM
向量数据库 => Vector DB

如果没有别名映射,用户搜“RAG”,文档里写“检索增强生成”,可能就搜不到。

所以建议维护三类词表:

4.3.1 中文别名表

阿里云 => 阿里云计算、Alibaba Cloud
腾讯云 => Tencent Cloud
飞书 => Lark

4.3.2 英文缩写表

LLM => Large Language Model
RAG => Retrieval-Augmented Generation
NLP => Natural Language Processing

4.3.3 业务内部黑话表

企业内部最容易出现这种问题。

比如:

智能客服项目 => 小智
搜索中台 => Search Hub
知识库系统 => KB

这些词对外人没意义,但对企业内部检索非常关键。


4.4 做拼写纠错和错别字处理

用户输入经常不标准。

比如:

Elasticsearch => ElasticSearch、ES、elsticsearch
向量数据库 => 向量数据哭
召回率 => 招回率

如果系统不做纠错,召回会明显下降。

可以做:

  • 拼音纠错。
  • 编辑距离纠错。
  • 热词纠错。
  • 用户搜索日志纠错。
  • 大模型改写纠错。

例如用户输入:

“怎么题高招回率”

系统可以改写成:

“怎么提高召回率”

这一步对搜索体验提升很明显。


五、方法二:向量检索优化

5.1 什么是向量检索?

关键词检索看的是“词有没有出现”。

向量检索看的是“意思像不像”。

比如用户问:

“怎么让知识库问答更准?”

文档标题是:

“RAG 检索召回优化实战”

这两个句子字面不完全一样,但意思相关。

向量检索就有机会把它召回。

Pinecone 关于 RAG 的资料中提到,检索阶段会把用户问题转换成向量,再去向量数据库中搜索相似内容;混合检索还会结合稀疏检索与稠密向量检索,并在结果合并后进行重排。


5.2 选择合适的 Embedding 模型

向量检索效果很大程度取决于 Embedding 模型。

如果模型不适合中文,召回率会很差。

选择模型时要看:

  • 是否支持中文。
  • 是否支持中英混合。
  • 是否适合问答场景。
  • 是否适合长文本。
  • 是否适合代码、法律、医疗、金融等垂直领域。
  • 是否支持多语言。
  • 是否有较好的语义相似度表现。

如果是中文知识库,尽量选择中文表现好的 Embedding 模型。

如果是企业内部技术文档,可以考虑:

  • 通用中文 Embedding。
  • 中英双语 Embedding。
  • 代码 Embedding。
  • 领域微调 Embedding。

5.3 文档切分要合理

RAG 里召回率低,很多时候不是模型问题,而是文档切分问题。

5.3.1 切得太大

如果一个 chunk 太大,里面混了太多主题。

用户问一个具体问题时,这个 chunk 的语义会被稀释,向量相似度下降。

比如一个 chunk 里同时包含:

  • 用户登录
  • 权限校验
  • 订单支付
  • 优惠券
  • 日志监控

用户问“权限校验怎么做”,这个 chunk 可能不够聚焦。

5.3.2 切得太小

如果切得太小,上下文不完整。

比如只切出一句:

“具体流程如下。”

这种 chunk 没有意义,也很难被召回。

5.3.3 推荐做法

比较稳妥的做法是:

  • 按标题层级切分。
  • 按段落切分。
  • 保留上下文。
  • 设置 chunk overlap,也就是上下文重叠。
  • 对表格、代码、列表单独处理。
  • 给 chunk 加元数据,比如标题、章节、来源、时间、标签。

5.4 给 chunk 加标题和上下文

很多文档正文里没有明确关键词,但标题里有。

比如:

标题:三、如何提高召回率
正文:可以通过多路召回、Query 改写、混合检索、重排序等方式优化。

如果只把正文拿去向量化,可能少了“召回率”这个核心词。

更好的做法是:

标题 + 小标题 + 正文 一起向量化

例如:

文档标题:RAG 检索优化方案
章节标题:如何提高召回率
正文:可以通过多路召回、Query 改写、混合检索、重排序等方式优化。

这样召回效果通常会更好。


六、方法三:混合检索提高召回率

6.1 什么是混合检索?

混合检索就是:

关键词检索 + 向量检索 + 结果融合。

关键词检索适合找精确词。

向量检索适合理解语义。

两者结合后,召回率通常会明显提升。

Elasticsearch 对混合检索的解释是,将词法搜索和语义搜索融合成一个排序列表,词法搜索擅长匹配精确词和短语,语义搜索擅长理解查询背后的含义。


6.2 为什么混合检索能提高召回?

因为用户问题有两种典型类型。

6.2.1 第一种:关键词强相关

比如用户搜:

“Milvus HNSW 参数”

这种问题里,“Milvus”“HNSW”是强关键词。

如果只用向量检索,可能会召回一些“向量数据库优化”的泛化内容,但不一定精确。

关键词检索更适合。

6.2.2 第二种:语义强相关

比如用户问:

“为什么知识库明明有答案,大模型还是答不上来?”

这句话没有直接说“召回率低”,但本质就是召回问题。

向量检索更适合。

所以混合检索的价值就是:

精确词靠关键词检索,模糊意图靠向量检索。


6.3 常见混合检索架构

一个典型流程是:

用户问题
  ↓
Query 预处理
  ↓
关键词检索 BM25
  ↓
向量检索 Embedding Search
  ↓
结果合并去重
  ↓
重排序 Rerank
  ↓
返回 TopK 文档
  ↓
交给大模型生成答案

Weaviate 文档中也提到,Hybrid Search 会把向量搜索和关键词搜索结果融合,并且融合方式和相对权重可以配置。


6.4 结果融合怎么做?

不用讲复杂公式,可以理解成:

系统从两个渠道各找一批候选内容。

比如:

关键词检索召回:A、B、C、D
向量检索召回:C、D、E、F

合并后:

A、B、C、D、E、F

其中 C、D 同时被两个渠道召回,通常说明它们更重要。

常见融合方式:

  • 分数加权融合。
  • 排名融合。
  • RRF 融合。
  • 规则融合。
  • 先粗召回,再统一重排。

Elastic 的资料中提到,混合搜索可以通过 BM25 和向量检索结合,并使用 RRF 这类方式融合结果;向量可以提升召回,而关键词检索能保留精确匹配能力。


七、方法四:多路召回

7.1 什么是多路召回?

多路召回就是:

不只用一种策略找内容,而是多个召回通道一起找。

比如:

多路召回的核心目标是:

宁可多召回一些候选内容,也不要一开始就漏掉正确答案。


7.2 搜索系统里的多路召回

比如用户搜索:

“Java 面试问 RAG 项目怎么讲”

可以走多个通道:

7.2.1 标题召回

找标题里包含:

Java 面试
RAG 项目
大模型项目
简历项目

7.2.2 正文召回

找正文中出现:

混合检索
向量数据库
知识库问答
Agent
Embedding

7.2.3 向量召回

找语义相关内容:

AI 工程师面试
大模型项目包装
RAG 项目落地
简历优化

7.2.4 标签召回

根据标签找:

Java
AI 转型
RAG
大模型
面试

7.2.5 热门召回

如果很多用户都点击某类文章,也可以适当提高召回概率。


7.3 RAG 里的多路召回

RAG 场景中可以这样设计:

用户问题
  ↓
原始问题向量召回
  ↓
改写问题向量召回
  ↓
关键词 BM25 召回
  ↓
标题字段召回
  ↓
摘要字段召回
  ↓
元数据过滤召回
  ↓
合并去重
  ↓
重排序

比如用户问:

“项目里怎么体现混合检索?”

可以改写成多个查询:

然后分别召回,再合并。

这类方法对提高召回率非常有效。


八、方法五:Query 改写

8.1 为什么要 Query 改写?

用户的问题经常很口语化。

比如用户问:

“这个搜不到咋办?”

系统很难直接理解。

但可以改写成:

“搜索系统召回率低的原因和优化方法”

再去检索,效果会好很多。

Query 改写就是把用户原始问题变成更适合检索的问题。


8.2 常见 Query 改写方式

8.2.1 同义词改写

提高召回率
↓
提升检索命中率
减少漏召回
提高搜索覆盖率

8.2.2 问句改写成关键词

为什么我的知识库问答总是找不到答案?
↓
RAG 召回率低 知识库 检索不到答案

8.2.3 口语化改写成专业表达

搜出来的东西不全
↓
搜索系统召回率不足

8.2.4 多查询改写

一个问题生成多个查询:

原问题:怎么提高 RAG 检索效果?
 
改写:
1. RAG 如何提高召回率
2. 知识库问答检索优化方法
3. 混合检索在 RAG 中怎么用
4. 向量检索召回率低怎么解决
5. BM25 和向量检索如何结合

8.3 大模型改写 Query

现在很多 RAG 系统会用 LLM 做 Query Rewrite。

流程是:

用户原始问题
  ↓
大模型理解意图
  ↓
生成多个检索查询
  ↓
多路召回
  ↓
合并结果

例如用户问:

“我简历里那个 AI 文案项目怎么讲得高级点?”

大模型可以改写为:

AI 文案生成项目 架构设计
RAG 在内容生成系统中的应用
大模型项目 简历包装
AI 文案系统 技术亮点
提示词工程 内容生成 质量评估

这样能召回更多相关内容。


九、方法六:扩大 TopK

9.1 什么是 TopK?

TopK 就是检索时返回前多少条结果。

比如:

TopK = 5

表示只返回最相关的 5 条。

如果 TopK 太小,可能漏掉正确答案。


9.2 提高召回率可以适当扩大 TopK

比如:

关键词检索 TopK = 50
向量检索 TopK = 50
合并后 100 条
重排后取前 10 条

这样做的好处是:

第一阶段尽量多找,第二阶段再筛。

也就是:

粗召回:多找一些
精排序:再挑最好的

9.3 注意 TopK 不是越大越好

TopK 太大会带来几个问题:

  • 检索变慢。
  • 成本上升。
  • 噪声变多。
  • 大模型上下文塞不下。
  • 后续重排压力变大。

所以更合理的做法是:

召回阶段 TopK 稍大
重排阶段压缩
生成阶段只放最相关内容

例如:

召回 100 条
重排 20 条
最终给大模型 5 条

十、方法七:重排序 Rerank

10.1 Rerank 不是直接提高召回,但能释放召回价值

召回阶段为了不漏,通常会多召回一些内容。

但多召回也会带来噪声。

这时候就需要 Rerank。

Rerank 的作用是:

把召回来的候选内容重新排一遍,把真正相关的内容排到前面。

Pinecone 文档中也提到,混合检索架构里可以在多个层级使用 rerank,包括对每个索引结果和合并结果做重排。


10.2 Rerank 常见做法

10.2.1 规则重排

根据标题匹配、关键词命中、时间、热度等规则加分。

比如:

标题命中关键词 +10
正文命中关键词 +5
最近更新 +3
用户点击率高 +2

10.2.2 模型重排

使用专门的 rerank 模型判断:

用户问题和文档片段到底有多相关?

模型重排比普通向量相似度更精细。

10.2.3 大模型重排

把候选内容交给大模型,让它判断哪些最相关。

适合小规模、高价值场景,但成本较高。


十一、方法八:优化索引字段

11.1 不要只索引正文

很多系统召回率低,是因为只索引了正文。

更好的方式是多字段索引:

标题
小标题
正文
摘要
标签
作者
分类
更新时间
来源
关键词
FAQ 问法

用户搜索时,不同字段权重不同。

通常:

标题权重 > 小标题权重 > 标签权重 > 正文权重

因为标题命中往往更能说明相关性。


11.2 给文档生成 摘要 字段

有些正文很长,直接检索效果不好。

可以先用大模型给文档生成摘要:

原文:几千字技术文档
摘要:本文主要介绍 RAG 系统中如何通过混合检索、Query 改写、向量召回、BM25、Rerank 提高召回率。

然后对摘要也建索引。

这样用户搜索时,更容易命中核心信息。


11.3 给文档生成关键词字段

可以给每篇文档提取关键词:

召回率
混合检索
BM25
向量检索
RAG
Rerank
Query 改写
Embedding

这些关键词可以单独建索引,提高召回概率。


十二、方法九:元数据过滤不要太死

12.1 过滤条件过严会降低召回率

很多系统会加过滤条件,比如:

只查某个部门
只查某个时间范围
只查某个分类
只查某个标签

这些过滤有必要,但如果太严格,会把正确结果过滤掉。

比如用户问:

“权限设计方案”

系统只在“后端开发”分类里查。

但真正答案可能在“架构设计”分类里。

结果就漏了。


12.2 推荐做软过滤

硬过滤是:

必须满足这个条件,否则不要

软过滤是:

满足这个条件可以加分,但不满足也可以参与排序

比如:

同部门文档 +5 分
最近一年文档 +3 分
标题命中 +10 分

这样既能保证相关性,又不至于召回过窄。


十三、方法十:建立用户行为反馈闭环

13.1 用户行为是最真实的优化数据

用户搜索后会有很多行为:

  • 点击了哪个结果。
  • 停留多久。
  • 是否复制。
  • 是否点赞。
  • 是否继续追问。
  • 是否换关键词重新搜索。
  • 是否标记“没帮助”。

这些都是优化召回率的重要信号。


13.2 如何用行为数据提高召回率?

13.2.1 分析无结果搜索词

重点看:

用户搜了什么,但系统没有结果?

这些词通常说明:

  • 同义词没覆盖。
  • 文档没入库。
  • 分词有问题。
  • 业务词典缺失。
  • 用户表达和文档表达不一致。

13.2.2 分析低点击搜索词

有结果但没人点,说明召回结果不准。

13.2.3 分析二次搜索词

用户第一次没搜到,换了一个词又搜。

比如:

第一次:知识库答不上来
第二次:RAG 召回率低

这说明这两个词应该建立关联。


十四、方法十一:离线评测召回率

14.1 没有评测,就不知道优化有没有用

很多团队优化召回率靠感觉。

今天调一下 TopK,明天换个模型,后天改个分词。

但到底有没有提升?不知道。

正确做法是建立测试集。


14.2 测试集怎么做?

准备一批问题和标准答案文档。

例如:

问题:怎么提高 RAG 召回率?
标准相关文档:
1. RAG 检索优化方案
2. 混合检索实践
3. Query 改写策略

然后每次检索,检查这些标准文档有没有被召回。


14.3 常见评估指标

不用复杂公式,理解这几个就够了:

14.3.1 Recall@K

意思是:

前 K 条结果里,有没有召回正确文档。

比如 Recall@10,就是看前 10 条里有没有相关文档。

14.3.2 Hit Rate

意思是:

只要命中一个正确答案,就算成功。

适合 RAG 问答。

14.3.3 MRR

意思是:

正确答案排得越靠前越好。

不只是看有没有召回,还看排第几。


十五、方法十二:针对长文档做特殊处理

15.1 长文档直接向量化效果通常不好

比如一篇 2 万字文档,如果直接整体向量化,会丢失很多细节。

用户问一个小问题时,整篇文章的向量不一定能准确匹配。

所以长文档必须切分。


15.2 长文档推荐处理方式

15.2.1 按目录结构切分

一级标题
二级标题
三级标题
正文段落

15.2.2 保留父级标题

例如:

文档标题:RAG 系统设计方案
一级标题:检索模块
二级标题:提高召回率的方法
正文:可以通过混合检索、Query 改写、多路召回等方式优化。

这样比只存正文更容易召回。

15.2.3 建立文档级索引和片段级索引

可以同时建两套索引:

文档级索引:判断哪篇文档相关
片段级索引:找到具体答案位置

先找文档,再找片段,效果通常更稳。


十六、方法十三:处理表格、代码、图片和 PDF

16.1 表格不能简单按普通文本处理

很多知识在表格里。

比如:

参数名 | 说明 | 默认值
TopK | 召回数量 | 10
Score Threshold | 相似度阈值 | 0.75

如果直接抽取文本,可能结构丢失。

建议:

  • 表格转 Markdown。
  • 表格每一行单独索引。
  • 表头和单元格一起保存。
  • 给表格生成摘要。
  • 保留原始位置信息。

16.2 代码文档要保留代码块

比如用户搜索:

“Elasticsearch 混合检索 DSL 怎么写?”

如果代码块没有被索引,就召回不到。

代码类文档建议:

  • 代码块单独切分。
  • 代码说明和代码一起存。
  • 函数名、类名、参数名单独索引。
  • 支持代码 Embedding。

16.3 PDF 要注意解析质量

PDF 里常见问题:

  • 页眉页脚干扰。
  • 换行错乱。
  • 表格错位。
  • 图片文字无法提取。
  • 标题层级丢失。

如果 PDF 解析质量差,后面检索再怎么调也没用。


十七、方法十四:召回阶段不要过早设置高阈值

17.1 相似度阈值太高会漏召回

很多向量检索系统会设置:

score > 0.8

低于这个分数就不要。

但问题是,有些正确内容分数可能只有 0.72。

如果阈值太高,直接被过滤掉。


17.2 推荐做法

召回阶段:

阈值低一点,TopK 大一点

排序阶段:

再通过 Rerank 和规则过滤

生成阶段:

只保留最相关内容

也就是:

前面宽一点,后面严一点。


十八、方法十五:领域数据 微调

18.1 通用模型不一定懂你的业务

如果你的系统是金融、医疗、法律、政务、工业、代码、企业内部知识库,通用 Embedding 模型可能不够好。

因为业务里有大量专有词:

授信
风控
放款
核保
保全
工单流转
主数据
账务中心
资损
链路追踪

通用模型未必能准确理解。


18.2 可以做领域微调

用企业内部数据构造训练样本:

用户问题
相关文档
不相关文档

让模型学会:

什么样的问题应该匹配什么样的文档。

微调成本更高,但在垂直场景中效果明显。


十九、方法十六:利用 FAQ 问法增强召回

19.1 给每个知识点生成多个问法

很多知识库文档写得很正式,但用户问得很口语。

比如文档写:

“系统支持基于 RBAC 的权限控制。”

用户可能问:

权限怎么做?
怎么控制不同角色能看什么?
管理员和普通用户怎么区分?
菜单权限怎么实现?
接口权限怎么校验?

所以可以给每个知识点生成多个 FAQ 问法。


19.2 FAQ 增强示例

原文:

系统采用 RBAC 权限模型,通过用户、角色、权限三层结构实现访问控制。

生成问法:

把这些问法也加入索引,可以显著提高召回率。


二十、方法十七:冷热数据分层召回

20.1 新内容容易召回不到

很多系统会偏向老内容,因为老内容点击多、权重高。

但新内容也可能很重要。

比如技术文档刚更新,用户马上搜索,如果系统没有及时索引,就搜不到。


20.2 解决方法

  • 建立实时索引。
  • 新文档加新鲜度权重。
  • 冷热数据分层召回。
  • 对近期更新内容单独召回一路。
  • 定期重建索引。

例如:

一路召回历史高质量文档
一路召回最近 30 天更新文档
一路召回用户所在部门文档

这样既保留经典内容,也不漏新内容。


二十一、方法十八:知识库治理

21.1 召回率低不一定是检索问题

有时候是知识库本身质量差。

常见问题:

  • 文档标题不清晰。
  • 内容重复。
  • 文档过期。
  • 文档缺少关键词。
  • 文档没有分类。
  • 文档没有摘要。
  • 文档格式混乱。
  • 同一问题多个版本答案冲突。

这些都会影响召回。


21.2 知识库治理建议

21.2.1 标题规范

不要写:

问题记录
方案
总结
测试

要写:

RAG 系统召回率优化方案
Elasticsearch 混合检索落地实践
企业知识库权限设计说明

21.2.2 标签规范

每篇文档至少有:

业务标签
技术标签
系统标签
场景标签

21.2.3 摘要规范

每篇文档生成 100 到 300 字摘要,说明它解决什么问题。

21.2.4 定期清理

删除或降权:

  • 过期文档。
  • 重复文档。
  • 低质量文档。
  • 无人访问文档。

二十二、方法十九:针对不同问题走不同召回策略

22.1 不同问题不能用同一套检索策略

比如:

22.1.1 精确查询

“订单表字段 order_status 是什么意思?”

适合关键词检索、字段检索。

22.1.2 语义查询

“为什么用户支付成功但订单没更新?”

适合向量检索、故障案例召回。

22.1.3 操作型查询

“怎么配置混合检索?”

适合文档召回、FAQ 召回。

22.1.4 对比型查询

“BM25 和向量检索有什么区别?”

适合多文档召回。


22.2 可以先做意图识别

用户问题进来后,先判断类型:

精确查找
故障排查
概念解释
操作步骤
代码问题
业务规则
历史记录

然后选择不同召回策略。

例如:

精确查找 => BM25 权重大
概念解释 => 向量检索权重大
故障排查 => 案例库召回 + 向量检索
操作步骤 => FAQ + 文档标题召回

这样比所有问题都用一套 TopK 更有效。


二十三、方法二十:线上灰度和 A/B 测试

23.1 召回优化不能只看离线指标

离线测试提升了,不代表线上用户一定满意。

所以要做 A/B 测试。

比如:

A 组:只用 BM25
B 组:BM25 + 向量检索
C 组:BM25 + 向量检索 + Rerank

观察:

  • 点击率是否提升。
  • 用户是否减少二次搜索。
  • 问答满意度是否提升。
  • 无结果率是否下降。
  • 平均响应时间是否可接受。

23.2 线上指标重点看什么?

23.2.1 无结果率

用户搜了,但没有结果。

无结果率越低,召回越好。

23.2.2 点击率

召回结果有没有被用户点。

23.2.3 首条点击率

第一条结果是不是用户想要的。

23.2.4 二次搜索率

用户搜完又改关键词,说明第一次没满足。

23.2.5 RAG 答案满意度

用户是否点赞、继续追问、复制答案。


二十四、完整落地方案:如何设计一个高召回检索系统?

24.1 第一层:数据处理

文档清洗
标题提取
正文提取
表格处理
代码块处理
PDF 解析
去重
摘要生成
关键词生成
标签生成

24.2 第二层:索引建设

标题索引
正文索引
摘要索引
标签索引
关键词索引
向量索引
FAQ 问法索引
元数据索引

24.3 第三层:Query 处理

分词
纠错
同义词扩展
别名扩展
Query 改写
多 Query 生成
意图识别

24.4 第四层:多路召回

BM25 召回
向量召回
标题召回
标签召回
FAQ 召回
热门召回
最近更新召回
规则召回

24.5 第五层:融合去重

合并多路结果
去重
按来源加权
按字段加权
按时间加权
按业务规则加权

24.6 第六层:重排序

规则重排
Rerank 模型重排
大模型重排
业务权重调整

24.7 第七层:效果评估

Recall@K
Hit Rate
MRR
点击率
无结果率
二次搜索率
用户满意度

二十五、面试中怎么讲“提高召回率”?

如果面试官问:

你们项目里怎么提高召回率?

可以这样回答:

我们主要从数据、Query、召回策略和排序四个层面优化。
数据层面会做文档清洗、合理切分、标题增强、摘要和关键词生成;
Query 层面会做分词、纠错、同义词扩展、Query 改写和多 Query 生成;
召回层面采用 BM25 + 向量检索的混合检索,同时加入标题、标签、FAQ 等多路召回;
排序层面会先扩大 TopK,保证候选集覆盖,再通过 Rerank 模型和业务规则进行重排。
最后通过 Recall@K、Hit Rate、无结果率、点击率、用户反馈等指标持续评估。

这段回答非常适合写进简历或者面试表达。


二十六、总结

提高召回率,不是简单调一个参数,而是一整套系统工程。

核心可以总结成一句话:

让系统用更多角度理解用户问题,用更多通道寻找候选内容,再用更好的排序方法筛出真正相关结果。

真正有效的方法包括:

最后记住一句话:

召回阶段的目标不是一开始就找得最精准,而是尽量别漏;排序阶段的目标才是从一堆候选里挑出最好的。

所以优秀的检索系统,一定是:

召回要宽,排序要准,生成要稳。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容