召回门槛与收录:为什么“能不能搜到”先于“排第几”
在召回与排序的两阶段漏斗里我们立了一个命题:搜索引擎先用一道便宜的过滤器把候选从百亿降到几千(召回),再用昂贵的模型精算名次(排序)。并且这道漏斗不可逆——排序信号救不了一个没进候选集的文档。
那一篇讲的是「有这道门槛」。这一篇要回答的是更实际的问题:这道门槛具体由什么决定? 换句话说,一个文档凭什么能被搜到、又凭什么被挡在门外。
这是所有可见性问题的第一性起点。因为在讨论「排第几」之前,得先确认「在不在场」。
一、可见性不是排名的低配版,是它的前提
Section titled “一、可见性不是排名的低配版,是它的前提”先纠正一个几乎人人都有的错觉:把「搜不到」当成「排名很靠后」。
它们是两件事。「排名靠后」意味着你在候选集里,只是分数不够高——这是一个连续、可竞争、可补偿的状态,你可以靠优化别的信号往前挪。而「搜不到」意味着你根本不在候选集里——这是一个二元、结构性、不可补偿的状态:你的文档从未被打分,它对这个查询而言等于不存在。
信息检索领域给后者一个专门的度量:可召回性(retrievability)。一个文档 的可召回性,是它在整个查询分布下、落入可见候选的加权频次:
其中 遍历查询分布 , 是查询权重, 是 在 下的位次, 是可见截断, 是示性函数。注意它统计的是「有没有落进截断」,不是「排得多靠前」——它度量的是可达性,不是名次。
二、召回门槛的三道子闸
Section titled “二、召回门槛的三道子闸”一个文档要在查询 下被召回,要连过三道子闸。任何一道没过,可召回性即为零。
子闸一:被索引(indexed)
Section titled “子闸一:被索引(indexed)”文档得先被爬取、解析、写入倒排索引。没进索引的页面,对检索系统而言物理上不存在。
这解释了一个常见困惑:「我的页面明明发布了,为什么搜不到?」——发布不等于被收录,收录是第一道闸。一个尚未被索引的页面,谈排名、谈权威、谈快排,全都是空中楼阁。
子闸二:term 可匹配(term-matchable)
Section titled “子闸二:term 可匹配(term-matchable)”这是最被低估、也最致命的一道闸。
倒排索引的结构是「词 → 包含该词的文档列表」。当查询 进来,引擎把它切成若干 term,去索引里取每个 term 的文档列表求交并集。一个文档要成为 的候选,它的可检索字段里必须真的含有 的核心 term(或经同义/改写扩展后的等价 term)。
这里藏着信息检索最古老的难题之一——词汇不匹配问题(vocabulary mismatch)。Furnas 等人 1987 年的经典研究发现:两个人给同一事物起同一个名字的概率低得惊人,往往只有 10%–20%。搜索者用的词,和文档作者用的词,天然对不上。
这个原理有一个极其重要的推论,直接决定了大量页面的命运:
这不是排名高低的问题,是准入资格的问题。你无法靠任何排序侧的努力,让一个字段里根本没有大词 term 的页面在大词下被召回——因为它压根没进那个词的候选列表。
子闸三:活过召回截断(survives the cutoff)
Section titled “子闸三:活过召回截断(survives the cutoff)”就算 term 匹配上了,召回也不会把所有匹配文档都放行。匹配「的」「视频」这种高频词的文档数以亿计,全放进排序阶段会瞬间压垮算力。所以召回阶段本身就带一层粗筛:用一个廉价的静态分(文档质量先验、term 权重、BM25 类相关性)预排,只放行 top-( 通常在几千量级),配合 WAND 等阈值算法提前剪枝。
于是第三道闸的严苛程度,取决于竞争密度:
- 高频宽泛词:匹配文档数以百万计,分母极大, 相对渺小——通过率极低,这道闸几乎是一堵墙。哪怕你 term 匹配、被正常索引,也可能因为静态先验分不够而被粗筛淘汰,根本到不了精排。
- 长尾具体词:匹配文档可能只有几十上百,分母很小——几乎人人都能活过截断,门槛形同虚设。
这就是为什么「越是热门的大词越难进,越是冷门的长尾越容易进」——不是排名规律,是召回截断的竞争密度规律。
三、字段权重:为什么「标题里有」和「正文里有」是两回事
Section titled “三、字段权重:为什么「标题里有」和「正文里有」是两回事”子闸二说「可检索字段里要有 term」,但字段与字段并不平等。现代相关性模型(如 BM25F,BM25 的多字段扩展)会给不同字段赋予不同权重,再聚合成一个「伪词频」:
其中 遍历字段(标题、锚文本、正文……), 是字段权重, 是 term 在文档 字段 中的频次。关键在于 :标题、锚文本这类字段的权重,远高于正文。
因为标题是作者对「这个页面是关于什么」的最强声明,也是检索系统判断主题的最强先验。一个核心 term 出现在标题里,对 的贡献,可能抵得上它在正文里出现许多次。这直接抬高了文档活过召回截断(子闸三)的概率。
推论很干脆:决定可召回性的,首先是高权重字段(尤其标题)里有没有核心 term,其次才是正文。 把大词埋在正文第五段,和把它放进标题首段,对「能不能被大词召回」是两种命运。
四、这对 SEO 意味着什么
Section titled “四、这对 SEO 意味着什么”把三道子闸串起来,很多 SEO 现象会自动解释清楚,也顺带划清了「快排」这类手段的能力边界。
收录 ≠ 可召回 ≠ 排名,是三个递进的台阶。 大量人卡在把它们当成一件事:以为「被百度收录了」就该「能搜到」,以为「能搜到」就该「排得动」。实际上——被索引只过了子闸一;能在某个词下被搜到,还要过子闸二、三;而排名,是过完三道闸、进了排序阶段之后才开始的游戏。
盯着大词堆点击、上快排,可能连门都没进。 以点击行为操纵为核心的百度快排、SEO 快排,作用在排序层——它优化的是「进了候选集之后排多前」。可如果一个页面因为字段里没有大词核心 term(子闸二),或因为竞争密度太高被粗筛淘汰(子闸三),它根本没进这个大词的候选集,那么无论灌多少点击信号,排名都不会有任何变化。快排撬不动召回门槛,这是它的结构性天花板,也是「快排对某些词立竿见影、对某些词毫无反应」的根本原因。
正确的顺序是先解决可见性,再谈排名。 对一个搜不到的词,第一件事是诊断它卡在哪道闸——没被收录?高权重字段里没有核心 term?还是竞争密度下被截断了?三种病因对应三种完全不同的处置,而没有一种是靠排序侧的信号操纵能解决的。
五、把门槛变成可测量的东西
Section titled “五、把门槛变成可测量的东西”召回门槛的好处是:它是二元的,因此可探测。
你不需要知道引擎内部的截断阈值,也能反推一个文档的可召回性——用一批查询探针去搜,观察目标文档是否出现在可见候选内。出现,说明三道闸都过了;不出现,再逐层排查是哪道闸挡住的(换更具体的词能搜到吗?那多半卡在子闸二或三;连站内精确标题都搜不到?那可能卡在子闸一)。
这正是把搜索引擎这个黑盒变白盒的典型手法:找到一个二元的、可观测的信号,用受控的输入探测它的边界。 可召回性天然就是这样一个信号。
召回门槛决定「能不能玩」,排序决定「玩得怎样」。这一篇我们拆开了「能不能玩」:它由三道子闸(被索引、term 可匹配、活过截断)串联而成,由字段权重和竞争密度调制,是一道二元的、结构性的、排序信号无法反向撬动的闸门。
过了这道门,游戏才真正开始——文档进入排序阶段,和成千上万同样合格的候选比拼名次。下一篇进入排序层,回答那个更微妙的问题:在一堆都「相关」的候选里,搜索引擎凭什么决定谁更该排在前面?答案的核心词,叫权威性。