惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
F
Fortinet All Blogs
U
Unit 42
F
Full Disclosure
雷峰网
雷峰网
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
罗磊的独立博客
D
DataBreaches.Net
C
Check Point Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
O
OpenAI News
C
CXSECURITY Database RSS Feed - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Hacker News
The Hacker News
Webroot Blog
Webroot Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
N
News | PayPal Newsroom
P
Proofpoint News Feed
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
Google Online Security Blog
Google Online Security Blog
H
Help Net Security
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
M
MIT News - Artificial intelligence
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
MyScale Blog
MyScale Blog
腾讯CDC

博客园 - 若-飞

企业AI Agent落地的核心逻辑与路径 基于langchain,Function Call的成功率怎么解决? LangChain Checkpoint(检查点)是什么?—— Agent 的"存档机制" RAG 设计:Embedding 如何切分 AI 客服系统设计:RAG 知识库设计 Go 百万连接服务器设计:从网卡到业务的全链路解析 深度解析 sync.Pool:从设计哲学到生产实践 Goroutine 泄漏:原因、检测与防范 Go Channel 关闭与超时机制完全指南 Go Map 无限增长问题解决方案 LangChain 聊天记录压缩:原理、机制与实战 揭开 sklearn 文本分类的核心原理:从词袋到逻辑回归 大模型“胡说八道”怎么办?一张图读懂检测、评估与修复全方案 企业级AI知识库权限隔离设计:让AI“懂规矩”比“懂知识”更重要 RAG系统设计全解析:从架构到多模态的核心知识图谱 RAG召回率提升全攻略:7大核心方法让检索更精准 RAG召回率提升秘籍:Metadata过滤的底层原理与实践 构建更好的RAG系统:深入理解混合搜索 一文搞懂 RAG 的召回率(Recall)是什么? LangChain / LangGraph、MCP、Harness Engineer 与 Claude Code 的对应关系 Agent Harness 技术笔记:从 Trajectory 到 Function Calling Loop BLEU 是什么?——从原理到工程实践 一文讲清:Approve / Permit / Permit2 的本质区别 分库分表后跨分页查询的完整方案 ai如何处理私有数据 ai幻觉是啥,以及如何解决 别再让大模型“凭空瞎猜”了!带你认识AI最强外挂:ChromaDB 用 useQuery 管请求:TanStack React Query 入门小结 HD钱包--BIP44 TRON 四种 API 面怎么选:从节点协议到 JSON-RPC 再到 TronGrid 以太坊节点存储与共识机制全解析 BSC节点发现协议全解析:UDP发现、Bootnode引导与Gossip交易广播 以太坊节点发现背后的分布式哈希表(DHT)与 Kademlia 原理解析 Solidity中的bytes与string:深入理解这两种特殊的动态数组 智能合约自毁:当资产还在,合约死了 —— 深度解析 selfdestruct 导致的资产锁定风险 TDengine CLI (taos) 使用指南 —— Docker 本地开发实战 在 macOS 上用 DBeaver 连接 TDengine:踩坑总结与最终配置指南 Solidity Storage Slot 深度解析 Geth Snapshot Export/Import 深度解析: 不是备份工具,而是数据分析利器 基于BSC 公链的数据备份与 Snapshot 机制深度解析 Docker 共享内存完全指南:从原理到实践,避免常见的理解误区 Docker容器"僵尸状态"问题排查与自动重启方案 SSE协议深度解析:被低估的HTTP服务器推送标准 TDengine vs MySQL:时序数据处理的时代之选 Proxmox 启用 QEMU Guest Agent 实战指南 解决 Blockscout "batch too large" 错误的完整指南 一文讲清楚什么是基准测试(Benchmark) Rust中的宏(Macro):编译时的代码生成魔法 Docker优雅关闭的艺术:为什么stop_grace_period能防止数据丢失 为什么 Go 没有依赖注入和 Bean 机制?语言设计哲学对比
一文搞懂 RAG 中 Retriever 和 Reranker 的区别
若-飞 · 2026-07-06 · via 博客园 - 若-飞

下面是一篇适合作为学习笔记或博客的内容,重点解释 Retriever 和 Reranker 的区别,通过生活案例和 RAG Demo 来帮助理解。

一文搞懂 RAG 中 Retriever 和 Reranker 的区别

学习 RAG 时,很多人都会看到下面这张架构图:

用户问题
    │
    ▼
Retriever(检索)
    │
    ▼
Top20
    │
    ▼
Reranker(重排序)
    │
    ▼
Top3
    │
    ▼
LLM

很多初学者都会有一个疑问:

Retriever 已经找到了文档,为什么还要再来一个 Reranker?

其实,两者的职责完全不同。

一句话概括:

Retriever 负责"找",Reranker 负责"排"。


先看一个最容易理解的例子

假设你去一家大型图书馆。

你问管理员:

我想学习《Go 高并发编程》。

管理员不会马上给你一本书。

他会先跑到书架,把所有可能相关的书全部拿回来。

例如:

① Go语言入门
② Go高并发编程
③ Go网络编程
④ Go微服务开发
⑤ Java并发编程
⑥ Python协程

注意:

管理员为什么把 Java 和 Python 也拿来了?

因为:

他怕漏掉真正相关的书。

这就是:

Retriever(检索)

Retriever 的目标只有一个:

宁可多找,也不要漏找。


接下来。

图书馆真正的专家开始工作。

他会一本一本翻。

然后告诉你:

⭐⭐⭐⭐⭐ Go高并发编程
⭐⭐⭐⭐ Go网络编程
⭐⭐⭐ Go语言入门
⭐⭐ Java并发
⭐ Python协程

最后:

只推荐前两本。

这就是:

Reranker(重排序)

Reranker 的目标:

把真正最相关的内容排到最前面。


一个 RAG 的 Demo

假设知识库里面有:

Redis 单线程模型
Redis 内存存储
Redis 数据结构
Redis Cluster
Redis 发布订阅
Kafka 消息队列
MySQL 索引

用户问:

Redis 为什么这么快?

第一步:Retriever

Retriever 去向量数据库检索。

返回:

Top5

① Redis Cluster
② Redis 单线程
③ Redis 内存
④ Redis 发布订阅
⑤ Kafka

为什么 Redis Cluster 排第一?

因为:

Retriever 使用的是:

向量相似度。

它只能判断:

"语义比较像。"

但是:

并不知道:

Redis Cluster 是否真正回答了:

Redis 为什么快?


第二步:Reranker

Reranker 拿到这 5 篇文档以后。

开始重新分析:

用户问的是:

Redis 为什么这么快?

然后:

逐个判断。

例如:

Redis 单线程
⭐⭐⭐⭐⭐

真正解释了性能原因。

Redis 内存
⭐⭐⭐⭐⭐

也回答了问题。

Redis Cluster
⭐⭐

相关。

但是:

不是重点。

Kafka
⭐

基本无关。

于是:

最终排序变成:

① Redis 单线程
② Redis 内存
③ Redis 发布订阅
④ Redis Cluster
⑤ Kafka

最后:

只把前几篇交给 LLM。


为什么不能直接使用 Reranker?

很多新人都会想到:

那为什么不用 Reranker 去搜索整个知识库?

答案:

因为:

太慢。

假设:

知识库:

100 万个 Chunk

如果:

Reranker:

一个一个比较:

问题

+

100 万篇文档

可能:

几分钟才能完成。

用户根本等不了。

而:

Retriever:

利用向量索引。

几毫秒:

就能从:

100 万

↓

Top20

速度非常快。

因此:

企业都会采用:

100 万

↓

Retriever

↓

Top20

↓

Reranker

↓

Top3

既保证速度。

又保证准确率。


Retriever 和 Reranker 的工作方式有什么不同?

Retriever 更像:

快速筛选。

例如:

HR 收到:

10000 份简历

第一步:

只看:

  • 学历

  • 工作年限

  • 技能关键词

快速筛出:

Top100

这一步:

速度最快。

但是:

并不一定最准。


Reranker 更像:

技术面试官。

只看:

100 份

但是:

每一份:

认真阅读。

最后:

选出:

Top10

这一步:

速度慢。

但是:

准确率最高。


两者最核心的区别

对比项 Retriever Reranker
核心职责 找文档 排文档
输入 用户问题 + 整个知识库 用户问题 + TopK 候选文档
检索范围 整个知识库(百万级) 候选文档(几十条)
工作方式 向量相似度检索 深度语义理解并重新打分
速度 非常快(毫秒级) 相对较慢
目标 高 Recall(高召回) 高 Precision(高准确)

为什么企业级 RAG 都要采用两阶段检索?

原因只有一句话:

没有 Retriever,速度太慢;没有 Reranker,排序不准。

因此:

现代企业几乎都会采用下面这种架构:

用户问题
      │
      ▼
Retriever
(快速找到 Top20)
      │
      ▼
Reranker
(重新排序 Top20)
      │
      ▼
Top3
      │
      ▼
LLM

Retriever 保证:

真正相关的文档不要漏掉。

Reranker 保证:

真正最重要的文档排在最前面。

两者结合,才能让 LLM 获得质量最高的上下文。


总结

可以把 Retriever 和 Reranker 用一句最容易记住的话来区分:

Retriever 像图书馆管理员,负责把可能相关的书全部找出来;Reranker 像专业老师,负责从这些书里挑出最值得阅读的几本。

因此,它们并不是竞争关系,而是协作关系。

在企业级 RAG 中:

  • Retriever:负责高召回(Recall),保证"不要漏。"

  • Reranker:负责高准确(Precision),保证"排得准。"

  • LLM:负责根据最终上下文生成答案。

这就是目前几乎所有生产级 RAG 系统采用的经典三层架构。
:::

如果从面试角度来看,你还可以记住一句非常经典的话:

Retriever 解决的是"能不能找到",Reranker 解决的是"找到了以后谁最重要",LLM 解决的是"如何把这些知识组织成自然语言回答用户"。

这句话既准确,又能体现你对整个 RAG 检索链路职责划分的理解。