混合检索怎么做:向量 + 关键词 + 重排的三段式

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

单靠向量检索总有些词查不准。本文讲清混合检索的原理:向量召回语义、关键词召回精确、重排模型提纯,并给出参数调优清单。

纯向量检索有个尴尬:用户搜”ERR_4021”,它给你返回一堆”看起来语义相近”的报错,却漏掉那篇精确提到这个错误码的文档。语义相似和精确匹配是两种能力,混合检索就是把它们合起来用。

一、两种检索,各有盲区

  • 向量检索(语义):擅长找意思相近的内容,但对专有名词、代码、编号不精确。
  • 关键词检索(BM25 等):精确匹配词面,但不懂同义、近义和语序。

一个漏语义,一个漏字面。单用哪个都会翻车。

二、混合检索的三段式

第一段:双路召回

同一查询同时跑两条路:

  1. 向量召回 Top-N(管语义)。
  2. 关键词召回 Top-N(管精确)。

两路各自捞一批候选,宁可多捞,别漏。

第二段:融合

把两路结果合并排序。常用做法:

  • 加权分数融合:给两路打分加权求和,权重可调。
  • 倒数排名融合(RRF):只看排名不看绝对分数,简单稳健,实践中很常用。

融合后得到一份”兼顾语义与字面”的候选集。

第三段:重排(Rerank)

用重排模型对候选集逐条重新打分。它比向量检索更”聪明”,能同时看查询和文档的细粒度交互,把真正相关的顶上来。

召回广、重排精——这是混合检索的核心口诀。

三、为什么重排这么关键

向量检索为了速度用了近似算法,牺牲了精度。重排模型慢但准,只对几十条候选打分,代价可控。加一层重排,往往能让 Top-3 命中率明显提升,是性价比最高的优化之一。

四、参数调优清单

  • 两路各召回多少条(太少漏、太多慢)。
  • 融合方式选 RRF 还是加权,权重多少。
  • 重排保留前几条进上下文。
  • 关键词检索做不做分词、大小写归一、同义扩展。
  • 专有名词是否加自定义词典。

五、常见坑

  1. 只做向量:漏精确匹配,查编号、代码、人名时崩。
  2. 不加重排:候选里明明有对的结果,却排在了后面。
  3. 重排候选太多:延迟飙升,收益递减。
  4. 不做归一:两路分数尺度不同,直接相加会失真,RRF 可规避。

六、什么时候用

  • 知识库里有大量专有名词、编号、代码。
  • 用户查询既有”意思”需求也有”精确”需求。
  • 对召回质量要求高,能接受一点额外延迟。

混合检索不是”更复杂的 RAG”,而是”更接近真实检索需求”的 RAG。 把语义、字面、精排三段接起来,检索质量会有质的提升。

📤 分享到