混合搜索
混合搜索概述
混合搜索(Hybrid Search)是将多种检索方法结合使用的技术,通常融合关键词搜索和语义搜索的优势。通过综合不同检索方法的结果,混合搜索能够提供比单一方法更好的检索效果。
检索方法
关键词搜索
基于词汇匹配的检索方法:
- BM25:经典的TF-IDF改进算法
- 精确匹配关键词
- 对特定术语效果好
- 不理解语义
语义搜索
基于向量相似度的检索方法:
- 使用嵌入模型编码文本
- 理解语义相似性
- 对同义表述效果好
- 可能遗漏精确匹配
混合策略
分数融合
将两种检索方法的分数合并:
RRF(Reciprocal Rank Fusion)
$$\text{RRF}(d) = \sum_{i} \frac{1}{k + r_i(d)}$$
其中 $r_i(d)$ 是文档d在第i种检索方法中的排名。
加权线性组合
$$\text{score}(d) = \alpha \cdot \text{keyword_score}(d) + \beta \cdot \text{semantic_score}(d)$$
结果合并
合并两种方法的Top-K结果后重新排序。
动态权重
根据查询特征动态调整两种方法的权重:
- 包含专有名词的查询增加关键词权重
- 开放式查询增加语义权重
实现架构
并行检索
同时执行关键词和语义检索:
- 并行执行减少延迟
- 各自返回Top-K结果
- 融合后返回最终结果
级联检索
先粗排后精排:
- 关键词检索作为初筛
- 语义搜索进行精排
- 或反之
技术栈
| 平台 | 支持的混合搜索 |
|---|---|
| Elasticsearch | BM25 + kNN |
| Weaviate | 关键词 + 向量 |
| Qdrant | 全文检索 + 向量 |
| Pinecone | 稀疏 + 稠密 |
| pgvector | SQL + 向量 |
应用场景
电商搜索
商品搜索需要精确匹配和语义理解:
- 品牌名称需要精确匹配
- 描述需要语义理解
- 混合搜索效果最佳
知识库问答
企业知识库检索:
- 术语需要精确匹配
- 问题需要语义理解
- 混合搜索显著提升效果
文档检索
法律、医学等专业文档:
- 专业术语精确匹配
- 概念理解需要语义
- 混合方法互补
评估方法
- 对比单一方法和混合方法的效果
- 分析不同融合策略的影响
- 评估参数调整对效果的影响
- 在真实用户场景中测试
最佳实践
- 从简单的RRF融合开始
- 根据数据特点调整融合权重
- 监控检索效果持续优化
- 考虑计算成本和延迟影响
- 针对不同场景定制混合策略
混合搜索结合了关键词和语义检索的优势,是当前最推荐的检索策略。