SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

混合搜索和密集检索

密集检索靠向量找语义相近的内容,混合搜索是把密集检索和关键词匹配拼在一起用的组合策略。把组合当零件看,会漏掉整套流程里真正起作用的另一半。

寓言

两把梳子,一把只梳顺毛

城北档案馆新来了一位检索员,姓顾。档案室里有几万份文献,读者来查资料,顾姐靠一本关键词索引簿翻找。索引簿按词条排列,读者说「水利」,她就翻到水字部,找出所有带「水利」的文献。速度快,但碰上读者问「河渠灌溉的历史变迁」,索引簿里没有「河渠」这个词条,她只能靠经验猜几个近义词去翻。

馆长从外地引回一面「意义镜」。这面镜子能把一段文字变成一串数字,镜子里数字靠近的文献,意思也相近。顾姐试着用它查「河渠灌溉」,镜子直接返回了一批讲灌溉工程、水渠修筑的文献,里面甚至没有出现「河渠」两个字。顾姐觉得这东西太神了,从此把索引簿收进了抽屉,只用镜子。

一个月后,问题浮出来。有读者要查「洪武三年黄河决口」,镜子返回了一堆讲黄河水文治理的现代论文,唯独漏掉了洪武三年的原始奏折——因为奏折里写的是「河水泛溢」,跟「决口」在镜子里不是近邻。顾姐翻了半天空手而归,读者很不满意。

顾姐把索引簿从抽屉里翻出来,对着「洪武」「黄河」「水」三个字分别查,三份索引交叉一比对,洪武三年的那份奏折立刻浮出水面——关键词匹配对专有名词、精确年代、人名地名天然敏感,这是镜子做不到的。

顾姐从此改了工作流程:每次查资料,先用索引簿抓一批精确匹配的候选文献,再用意义镜从语义相近的方向补一批。两批结果去重合并后一起送进阅览室。她管这套组合流程叫「合手查」。

新来的实习生看到顾姐的流程,问她:这不就是意义镜吗?顾姐摇头:镜子只负责语义那一路,合手查还有索引簿那一路。你看到的是同一份最终结果,但背后是两条管道汇合出来的。

顾姐后来总结:意义镜擅长找「意思像的」,索引簿擅长找「字面准的」。日常检索里,字面准的那一路经常被忽略,直到碰到专有名词、代码、编号、日期,才发现索引簿才是唯一靠谱的入口。

后来调档房把两份工具锁进同一案柜:意义镜管泛读,索引簿管精确命中。合在一起才叫查档,单独哪一个都不够。

密集检索 (Dense Retrieval)

用向量嵌入把查询和文档映射到同一个语义空间,靠向量距离衡量相关性。擅长捕捉近义表达和语义关联,但对专有名词、精确匹配不够敏感。

混合搜索 (Hybrid Search)

将密集检索和稀疏检索(关键词匹配)的结果融合在一起的组合策略。同时利用语义理解和精确匹配两路信号,通常通过加权或重排序合并最终结果。

故事对应

  • 关键词索引簿:稀疏检索(BM25 等),精确匹配词条。
  • 意义镜:密集检索,向量语义匹配。
  • 合手查:混合搜索,两路结果融合。
  • 洪武三年奏折漏检:密集检索对专有名词和精确表达的召回盲区。
  • 实习生混淆:混合搜索 ≠ 密集检索,前者包含后者但不止于后者。

落到项目里

当你听到有人说「我们的搜索用了 Dense Retrieval」时,追问一句:有没有融合关键词匹配?如果答案是「只有向量检索」,那专有名词、日期、代码编号等精确查询大概率会出问题。混合搜索不能当成密集检索的升级版,它是密集和稀疏两路的组合。两路各自的权重、融合方式(线性加权还是用 Cross-Encoder 重排序)才是真正影响效果的决策点。