跳到正文
docai.cc

DOCAI · 概念 · L3

混合检索:向量加关键词

一句话定义

把向量检索与关键词检索的候选合并,用两套互补的信号提升召回。

专业更新 2026-11-13核验 2026-11-13 · docai 编辑部

它是什么

混合检索(hybrid search)是把向量检索和关键词检索的结果合并,用两套互补的信号找候选。稠密向量擅长语义:意思相近但用词不同也能匹配;关键词检索(典型是 BM25)擅长精确字符串:专名、编号、版本号、错误码,一字不差才对。

怎么工作

两路并行召回。向量路把查询和文档编码成向量,按相似度取 top-k;关键词路按词项匹配打分,也取 top-k。两路各给出一个候选列表。

融合最常用的是倒数排名融合(RRF)。它不看原始分数,只看每路里的名次,按名次给分再相加。这样做的原因是向量相似度和 BM25 分数量纲不同,直接相加会偏向其中一路;按名次融合省去了归一化,也足够稳。

权重可以按查询类型调:查询里有错误码、版本号、人名、缩写时,提高关键词路的权重;查询是口语化描述时,提高向量路的权重。调权重不要凭感觉,拿真实查询和标注答案做对比。

什么时候单路就够:语料小、术语统一、查询以自然语言为主,向量单路往往够用;日志、代码、错误码库这种以精确字符串为主的场景,关键词单路反而更稳。混合检索是为两类查询都存在的场景准备的。

延迟代价是真实的:两路可以并行,但关键词索引要维护分词和倒排,融合与去重也要算力。链路要设超时和降级,一路超时就退回另一路,不要整体失败。

常见误解

  • 混合就是把两路分数相加:分数量纲不同,直接相加会偏向某一路,按名次融合更稳。
  • 向量检索能替代关键词:编号、错误码、专名恰恰是向量的弱项。
  • 两路都开一定更好:收益取决于查询分布,索引维护成本也真实存在。
  • 融合完就不用重排:融合解决召回,精排是另一件事,两者不冲突。

和重排的区别

混合检索解决「候选从哪里来」,重排解决「候选怎么排序」。前者在召回层做加法,后者在排序层做判断。两者可以叠用,但每加一层都要用数据证明它值得那份延迟。

延伸阅读

什么时候用得上

当查询里既有口语化描述,又有错误码、版本号、人名这类精确字符串,单路检索总有一类不灵时,考虑混合检索。

常见误解

很多人以为混合检索就是把两路分数直接相加。向量相似度和 BM25 分数量纲不同,直接相加会偏向其中一路;按名次融合(RRF)才是更稳妥的起点。

来源

定义与事实以以下来源为准;表述与取舍是本站整理的。
  1. [1]Elasticsearch · kNN search
  2. [2]OpenAI · Embeddings
查看 Markdown

所属专题

相邻概念