真正可用的检索系统,通常不是某一种召回技术突然赢了,而是你终于承认不同问题需要不同信号一起工作。

核心思想

混合检索不是在关键词搜索和向量搜索之间二选一,而是把多种检索信号组合起来:精确词项匹配、语义相似性、查询扩展,以及最终的模型重排。我更愿意把它理解成一种工程上的诚实态度:不要假装单一技术能覆盖所有检索场景。

为什么需要组合

  • BM25 擅长精确术语、专有名词、代码符号
  • 向量检索 擅长同义表达、模糊描述、概念相关性
  • 查询扩展 能把用户的短问题展开为更完整的检索意图
  • 重排 能在小候选集里做更细粒度判断

单一路径通常会偏科:只用 BM25 容易漏掉语义相近材料,只用向量又可能稀释精确命中。很多“检索效果不稳定”的问题,说到底并不是参数没调好,而是系统天生少了一种它本来就需要的感知能力。

一条典型流水线

qmd 为例,一条完整链路通常是:查询扩展 → BM25 与向量并行召回 → RRF 融合 → Top-K 筛选 → LLM 重排 → 最终排序。

其中值得注意的是它的位置感知混合:对于高位结果,保留更多原始检索信号;对于较低位结果,更信任 reranker 的判断。这反映了一种我很认同的务实取舍:不要让生成式模型轻易推翻已经高度确定的精确命中。

对知识管理的意义

当知识库规模扩大时,混合检索能够提升“找得到真正需要的材料”的概率,但它仍属于访问层,不是知识编译层。因此它适合作为 llm-wiki-pattern 的补充,而非替代。对我来说,这个区分很重要,因为它提醒我别把“更会搜”误当成“已经理解”。


来源:qmd

相关页面:local-first-search · knowledge-management · qmd