问题: 什么是混合检索,讲讲流程和原理

👇 点击展开/折叠 面试背诵模板(建议先背这个) 混合检索(Hybrid Search)是一种融合多种检索策略的搜索方法,核心是将基于语义的向量检索与基于关键词的全文检索相结合,通过加权融合(如RRF算法)综合排序,实现语义理解与精确匹配的优势互补。纯向量检索擅长理解上下文语义,但对专有名词、缩写、ID等精确匹配效果差;纯关键词检索精确匹配强,但无法理解同义词和复杂语义。混合检索通过并行执行两种检索、归一化分数后融合排序,兼顾召回率和准确性,是RAG系统中最常用的检索策略之一。
---

一、为什么需要混合检索

在RAG系统中,单一的检索方式存在明显局限:

检索方式 优势 劣势
向量检索(语义) 理解同义词、上下文语义,处理自然语言表达 对专有名词、产品ID、缩写等精确匹配效果差
关键词检索(全文) 精确匹配术语、数字、代码、特定短语 无法理解同义词(如“手机”vs“移动电话”),语义泛化能力弱

混合检索将两者结合,取长补短:用向量检索召回语义相关的文档,用关键词检索保证精确术语不丢失,再通过融合算法综合排序。

二、混合检索的完整流程

阶段一:双路并行检索

① 向量检索路径:将用户查询通过Embedding模型转为向量,在向量数据库中执行ANN(近似最近邻)搜索,返回Top-K个语义最相似的文本块及其相似度分数。

② 全文检索路径:对用户查询进行分词处理,在倒排索引(Inverted Index)中匹配包含查询关键词的文档,返回匹配的文本块及其相关性分数(如BM25得分)。

阶段二:结果融合与重排

③ 分数归一化:将向量检索的相似度分数和全文检索的相关性分数映射到同一量纲(如0~1区间),消除不同检索方式分数分布差异的影响。

④ 融合排序:采用RRF(Reciprocal Rank Fusion)或加权求和等算法综合计算最终得分。RRF算法公式为:score = Σ 1/(k + rank_i),其中rank_i是文档在第i种检索方式中的排名,k为常数(通常取60)。

⑤ 输出最终结果:根据融合后的综合得分重新排序,输出Top-N个最相关的文本块作为检索结果,供LLM生成答案。

三、核心融合算法:RRF(Reciprocal Rank Fusion)

RRF是混合检索中最常用的融合算法,不依赖分数绝对值,仅基于排名计算,对分数分布差异鲁棒。

计算方式:对每个文档,在所有检索方式中的排名取倒数,累加求和。例如,某文档在向量检索中排名第2,在全文检索中排名第5,其RRF分数为 1/(60+2) + 1/(60+5) ≈ 0.0161 + 0.0154 = 0.0315。所有文档按此得分降序排列。

优点:不要求不同检索方式的分数具有可比性,只需排名可靠,实现简单且效果稳定。

四、Dify中的混合检索配置

在Dify知识库的“高质量”索引模式下,混合检索是默认或推荐的检索策略,具体设置方式因版本不同有所差异:

  • 检索策略选择:在知识库的“检索设置”中,可选择“混合检索”选项(部分版本中默认开启,无需额外配置)。
  • 权重调整:部分版本支持调整向量检索和全文检索的权重配比(如语义权重0.7,关键词权重0.3)。
  • Rerank整合:在“高质量”模式下,可进一步启用Rerank模型,在混合检索初步排序后进行二次精排,提升顶部结果的精确度。

五、混合检索的适用场景

  • 企业知识库问答:用户问题可能包含产品型号、订单号等精确术语,也可能包含自然语言描述(如“最近有啥优惠”)
  • 技术文档检索:代码示例中的API名称需精确匹配,但功能描述需语义理解
  • 医疗/法律领域:专业术语需精确匹配,但症状描述、案情叙述需语义理解

六、总结要点

混合检索的本质是“语义理解 + 精确匹配”的双引擎模式,通过将两种检索方式的优势结合,在召回率和准确率之间取得最优平衡。它已成为现代RAG系统的标配检索策略,显著优于单一检索方式。