Hybrid-Search
819 字约 3 分钟
domain/aiai/rag
2026-07-24
1. 核心结论
- Hybrid Search 结合向量检索(语义匹配)和关键词检索(精确匹配),提升检索精度
- 向量检索擅长语义理解,关键词检索擅长精确匹配和专业术语
- 两者互补可以覆盖更多检索场景,减少漏检和误检
- 结果融合策略(RRF、加权分数)直接影响最终效果
- Hybrid Search 是当前 RAG 系统的标准配置
2. 基础概念
Vector Search:基于 embedding 向量相似度的检索,捕捉语义相关性。
Keyword Search(BM25):基于词频和逆文档频率的检索,捕捉精确匹配。
BM25:关键词检索的经典算法,考虑词频和文档长度归一化。
RRF(Reciprocal Rank Fusion):融合多路检索结果的算法,按排名倒数加权。
Score Fusion:将不同检索方式的分数归一化后加权融合。
Dense Retrieval:稠密向量检索。
Sparse Retrieval:稀疏向量检索(关键词)。
3. 工作原理
Hybrid Search 流程:
- 双路检索:
- 向量检索:查询向量化,搜索语义相似文档
- 关键词检索:BM25 搜索精确匹配文档
- 分数归一化:
- 将不同检索方式的分数归一化到同一范围
- 常用方法:Min-Max 归一化、Z-score 归一化
- 结果融合:
- RRF:1/(k + rank) 加权求和
- 加权分数:α × vector_score + β × keyword_score
- 交叉编码器重排序
- 去重排序:
- 去除重复文档
- 按融合分数排序
- 返回 top-k 结果
融合策略对比:
| 策略 | 优点 | 缺点 |
|---|---|---|
| RRF | 简单、无需调参 | 不考虑分数绝对值 |
| 加权分数 | 灵活可控 | 需要调优权重 |
| 学习排序 | 效果最好 | 需要训练数据 |
适用场景:
- 专业术语多的领域(医疗、法律)
- 需要精确匹配的场景(产品型号、人名)
- 语义和关键词都重要的场景
4. 实战场景
- 技术文档搜索:代码片段需要精确匹配,描述需要语义匹配
- 产品搜索:型号需要精确匹配,功能描述需要语义匹配
- 法律检索:法条编号需要精确匹配,案情描述需要语义匹配
- 学术论文搜索:标题关键词精确匹配,摘要语义匹配
- 电商搜索:商品名称精确匹配,描述语义匹配
5. 常见误区
- 只做向量检索:忽略关键词检索的价值
- 权重设置不当:过度偏向某一种检索方式
- 不评估融合效果:没有对比单路和混合检索的效果
- 忽视 BM25 调优:BM25 参数需要根据数据调整
- 融合策略过于复杂:简单 RRF 往往足够
6. 进阶方向
- 多路检索(超过两路)
- 动态权重调整
- 学习排序(Learning to Rank)
- 交叉编码器融合
- 多语言 Hybrid Search
- 多模态 Hybrid Search
7. 推荐资料
- Elasticsearch Hybrid Search - https://www.elastic.co/guide/en/elasticsearch/reference/current/hybrid-search.html
- Pinecone Hybrid Search - https://docs.pinecone.io/guides/data/hybrid-search
- Weaviate Hybrid Search - https://weaviate.io/developers/weaviate/search/hybrid
- RRF Paper - https://plg.uwaterloo.ca/~gvcormac/cormacksigir09-rrf.pdf