稀疏检索、向量检索、混合检索和重排有什么区别?RAG检索链路解释
sparse dense hybrid retrieval reranking differences
稀疏检索主要依据查询词与文档词项的匹配程度召回内容,BM25是常见方法;向量检索把查询和文档编码为稠密向量,按向量空间中的相似度寻找语义接近的内容;混合检索并行使用两种或更多召回方式,再融合候选列表;重排则发生在初次召回之后,用更精细但通常更昂贵的模型重新计算少量候选的相关性顺序。
直接答案
稀疏检索主要依据查询词与文档词项的匹配程度召回内容,BM25是常见方法;向量检索把查询和文档编码为稠密向量,按向量空间中的相似度寻找语义接近的内容;混合检索并行使用两种或更多召回方式,再融合候选列表;重排则发生在初次召回之后,用更精细但通常更昂贵的模型重新计算少量候选的相关性顺序。
四者不是同义词。稀疏检索和向量检索是候选召回方法,混合检索是组合召回架构,重排是二阶段或多阶段检索中的后续排序步骤。一个典型RAG系统可以先用BM25与向量检索各取一批候选,用RRF融合,再对前几十条重排,最后把最相关片段送入生成模型。
一、核心区别表
左右滑动查看完整对比 →| 方法 | 主要信号 | 擅长场景 | 主要风险 | 所在阶段 |
|---|---|---|---|---|
| 稀疏检索 | 词项、词频、文档频率 | 专有名词、编号、错误码、精确短语 | 同义改写导致词汇不匹配 | 初始召回 |
| 向量检索 | 嵌入向量相似度 | 自然语言改写、概念和语义近似 | 精确标识可能被语义近邻淹没 | 初始召回 |
| 混合检索 | 多路检索结果 | 同时覆盖精确词与语义表达 | 融合和权重设置不当 | 召回与融合 |
| 重排 | 查询与候选的细粒度交互 | 提升前排候选精度 | 延迟与计算成本增加 | 召回之后 |
“语义检索”常被用于描述向量检索,但两者并非绝对等同。语义信号也可以进入学习排序或查询扩展;向量检索则明确涉及数值向量和相似度搜索。讨论系统设计时,应写出具体模型、索引和评分方式。
二、稀疏检索是什么
稀疏检索把文档和查询表示为高维但大部分维度为零的词项向量。传统倒排索引记录每个词出现在哪些文档中,可以快速找到包含查询词的候选。BM25会结合词频、文档频率和文档长度等因素计算相关性。
它对字面信息特别敏感。搜索HTTP 429、产品型号、法规条款、函数名或人名时,精确词项往往是最强信号。它也有较好的可解释性:可以检查哪些词命中、词频如何影响得分。
局限是词汇不匹配。用户问“怎样避免请求过快”,文档只写“速率限制”,若没有同义词、词干化或查询扩展,纯关键词召回可能漏掉相关内容。中文分词、拼写变化和专有名词规范化也会显著影响结果。
三、向量检索是什么
向量检索使用Embedding模型把查询和文档片段编码为固定维度的稠密向量。语义相近的表达在向量空间中通常更接近,系统再用点积、余弦相似度或其他距离函数寻找最近邻。
Dense Passage Retrieval论文展示了双编码器架构:查询和段落分别编码,段落表示可预先计算并建立索引,查询时通过最大内积搜索候选。这种做法能跨越部分字面差异,让“账户无法验证”和“身份认证失败”等表达产生关联。
向量相似不等于事实相关。Embedding可能把主题相似但无法回答问题的段落排到前面,也可能弱化版本号、否定词和精确数字。模型训练领域与实际语料不一致时,召回质量还会下降。
四、为什么叫稀疏和稠密
稀疏表示的维度通常对应词项表,文档只激活其中少量维度,所以大多数位置为零。稠密向量的每个维度一般都是连续数值,单个维度通常没有可直接解释的词义。
“稀疏”不等于低质量,“稠密”也不等于更智能。它们编码信号的方式不同。面对错误码、SKU和法条编号,稀疏检索可能更稳;面对同义改写和自然语言问题,稠密检索可能召回更多相关候选。效果必须在真实查询集上测量。
五、混合检索是什么
混合检索同时运行关键词、向量或其他检索器,然后合并结果。最常见的动机是互补:关键词检索保住精确实体,向量检索覆盖语义改写。Elastic官方文档把混合搜索描述为在同一请求中运行全文搜索与向量搜索,并推荐使用Reciprocal Rank Fusion(RRF)进行融合。
混合不等于把两个原始分数直接相加。BM25得分和向量相似度的范围、分布和含义不同,直接相加会让某一路不可预测地占优。可以先做分数归一化和加权,也可以像RRF一样只使用各列表的名次。
六、RRF如何融合结果
Reciprocal Rank Fusion根据文档在每个结果列表中的名次累加倒数分数。简化形式为:
其中ranki(d)是文档在第i个列表中的名次,k是用于降低头部名次差异敏感度的常数。一个文档若在多路检索中都靠前,融合分数会更高;只在某一路出现的文档也能保留机会。
RRF的优势是不要求BM25分数与向量分数处于同一尺度。它的局限是会丢弃原始得分差距信息,也不会自动知道某一路在特定查询上更可靠。参数、每路候选数和去重规则仍需验证。
七、重排是什么
重排先接收初始检索器返回的少量候选,再用更精细的相关性模型重新排序。初始召回要在大规模语料上快速筛选,重排只处理几十或几百条候选,因此可以承受更高的单文档计算成本。
Cross-encoder会把查询与候选文档共同输入模型,让Token之间充分交互,相关性判断通常更细致,但每个查询—文档对都要计算。ColBERT提出Late Interaction:查询与文档分别编码,保留Token级表示,再用延迟交互计算相关性,试图在表达能力与效率之间取得平衡。
重排不能找回从未被召回的文档。如果初始候选集漏掉正确答案,后面的模型再强也无能为力。因此应分别评估召回阶段和重排阶段。
八、检索、融合和重排的顺序
一个可解释的多阶段流程如下:
- 规范化查询,但保留错误码、实体名和数字;
- BM25从倒排索引召回前100条;
- 向量索引独立召回前100条;
- 按文档或片段ID去重;
- 使用RRF或经过验证的加权方案融合;
- 对融合后的前50条使用reranker评分;
- 应用权限、语言、时间和文档状态过滤;
- 选取前若干片段进入生成上下文;
- 保留来源ID,生成后逐条核验引用支持关系。
- 实际系统可以在检索前做过滤,也可以把过滤条件加入索引查询。关键是记录每一步进入和离开的候选,才能定位召回失败、融合压制或重排误判。
九、过滤与检索有什么区别
过滤判断文档是否满足确定条件,例如租户ID相同、语言为中文、发布时间在一年内;相关性检索判断哪些合格文档更能回答问题。过滤通常不应被模型的相似度覆盖。
在多租户系统中,权限过滤必须在返回内容前可靠执行,不能先把无权访问的文本交给模型再要求模型忽略。向量数据库或搜索引擎支持的元数据过滤方式各不相同,需要验证过滤发生在近邻搜索之前、过程中还是之后,以及是否影响召回数量。
十、Chunking如何影响四种方法
切分太大,一个片段会混入多个主题,向量表示被稀释,重排也难找到精确证据;切分太小,关键词和实体上下文可能断裂,生成阶段需要拼接更多片段。固定字符数只是起点,还应考虑标题、段落、表格和代码边界。
稀疏检索通常从保留精确词项和字段结构受益;向量检索需要片段语义相对集中;重排需要看到足够上下文判断是否真正回答查询。应把Chunking方案作为检索实验变量,而不是在建库后固定不管。
十一、如何评估初始召回
先建立包含真实查询、相关文档和必要答案证据的测试集。召回阶段常看Recall@k:在前k个候选中是否覆盖了应检索文档。也可以看命中率、MRR或nDCG,但必须明确相关性标注是文档级还是片段级。
分别运行BM25、向量检索和混合检索,对查询分类:精确实体、自然语言改写、否定条件、多跳问题、时效问题。整体平均值可能掩盖某类查询严重退化。对混合方案还要记录每个正确候选来自哪一路。
十二、如何评估重排
重排实验应固定同一候选集,比较重排前后的MRR、nDCG、Precision@k和最终答案证据覆盖率。若同时改变召回器、Chunking和reranker,就无法判断提升来自哪一步。
还要测P50/P95延迟、吞吐量、模型成本和候选数量。把1000条都交给昂贵cross-encoder可能提升少量排序指标,却使在线响应不可接受。候选规模应通过质量—延迟曲线选择。
十三、RAG中常见失败模式
- 只用向量检索,漏掉版本号、错误码和短实体;
- 只用BM25,漏掉同义表达和用户自然语言改写;
- 直接相加不同尺度的原始分数;
- 重排候选太少,正确文档在重排前已被截断;
- 把主题相关当成答案支持,返回“谈到同一领域但没有答案”的文档;
- 在切分时丢失标题、表头或来源URL;
- 权限过滤在模型读取内容之后才执行;
- 只评估最终回答,不保存每阶段候选;
- 测试集只包含容易的关键词查询;
- 更新Embedding模型后没有重建或版本化索引。
十四、如何选择方案
内容以产品编号、错误码、法律条款和专有名词为主时,先建立可靠BM25基线。用户问题改写丰富、资料表达不统一时,增加向量检索。两类查询同时存在时,用混合检索,并从RRF这类不依赖分数同尺度的方法开始。
当初始召回已能稳定覆盖正确文档,但前几名顺序仍不理想时,再加入重排。若Recall@50都很低,优先修复语料、切分、Embedding和召回策略,而不是用reranker掩盖问题。
十五、上线检查清单
- 为稀疏与向量检索分别建立可复现实验基线;
- 保留查询、候选ID、原始名次、融合名次和重排名次;
- 对精确实体、语义改写和否定查询分组评估;
- 验证RRF常数、每路候选数和去重规则;
- 记录Embedding模型、维度、距离函数与索引版本;
- 对Chunking大小、重叠和标题继承做消融实验;
- 权限过滤必须在内容暴露给模型之前生效;
- 同时监控召回质量、重排增益、延迟和成本;
- 文档更新或删除后验证各路索引一致;
- 最终生成答案逐条检查是否由检索证据支持。
十七、结论
稀疏检索捕捉字面词项,向量检索捕捉语义相似,混合检索融合多路候选,重排对小规模候选做更细判断。可靠的RAG检索链路不是盲目堆叠组件,而是先测召回是否覆盖正确证据,再判断融合是否互补、重排是否真正改善前排质量,并始终保留权限、来源和阶段性诊断数据。
参考资料
aclanthology.org:2020.emnlp main.550aclanthology.org · 术语定义与技术背景 · 访问 2026-08-30
DOI:1571941.1572114DOI · 术语定义与技术背景 · 访问 2026-08-30
DOI:3397271.3401075DOI · 术语定义与技术背景 · 访问 2026-08-30
Elastic:hybrid searchElastic · 术语定义与技术背景 · 访问 2026-08-30
Elastic:similarityElastic · 术语定义与技术背景 · 访问 2026-08-30