13.6 第三代:混合检索
关键词检索和语义检索各有优点。关键词检索在搜人名、地名、专有名词时更准。语义检索在搜意思相近的内容时更准。
2025 年开始,实际系统都是混合检索——两边一起搜,把结果合并,再做一次排序,挑最相关的内容给 AI。这样既不会漏掉精确匹配的关键词结果,也能找到语义相近的内容 1。
13.6.1 混合检索的三种融合策略
结果融合(Result Fusion):这是最常用的方式。稀疏检索和稠密检索各自独立运行,各自返回 Top-K 个结果,然后融合成一个统一的排序列表。融合的核心算法是 RRF(倒数排名融合):
RRF_score(doc) = Σ 1/(k + rank_i(doc))
其中 rank_i(doc) 是文档在第 i 个检索器中的排名,k 是常数(通常取 60)。RRF 的精妙之处在于:它不需要知道每个检索器的绝对分数(不同检索器的分数尺度不同,无法直接比较),只需要知道排名。一个在稀疏检索中排第 1 和在稠密检索中排第 5 的文档,RRF 分数 = 1/(60+1) + 1/(60+5) = 0.0164 + 0.0154 = 0.0318。
分数融合(Score Fusion):如果两个检索器输出的分数可以归一化到同一尺度,可以直接加权求和。但实践中很少用,因为 BM25 的分数和余弦相似度的分数尺度完全不同,归一化很困难。
流水线融合(Pipeline Fusion):先用稀疏检索快速缩小候选范围(从百万级到万级),再用稠密检索在候选集上做精细搜索。适合超大规模文档库。
13.6.2 检索质量评估
你怎么知道自己的检索系统好不好?需要量化指标:
- Recall@K:在 Top-K 个检索结果中,有多少比例的相关文档被找到了。Recall@10=0.8 意味着 80% 的相关文档出现在前 10 个结果里。这是 RAG 最重要的指标——漏掉的文档,LLM 永远看不到。
- MRR(平均倒数排名):第一个相关文档的排名的倒数的平均值。MRR=1 意味着第一个相关文档总是在第 1 位。对”找第一个正确答案”的场景(如问答)很重要。
- NDCG(归一化折损累积增益):不仅考虑是否相关,还考虑相关程度。高度相关的文档排在前面的得分更高。这是最全面的排序质量指标。
2026 年生产建议:混合检索 + RRF 融合是标配。稀疏检索用 BM25(Elasticsearch 或 Vespa 内置),稠密检索用 Embedding 模型 + 向量数据库,融合用 RRF(k=60)。这套组合在绝大多数场景下都比单一检索方式好。
← 上一节:13.5 第二代:语义搜索(稠密检索) | 下一节:13.7 重排序 —— 提升精度的关键 →
注释
-
StackAI, RAG 最佳实践, https://stackai.com ↩