例外情况要写成“触发条件+判定依据+执行动作+记录字段”四段式,而不是只写一句“特殊情况特殊处理”。人工操作时,人靠上下文判断;脚本没有上下文,只能靠你明确写出的条件分支。缺少完整数据和权限时,仍可先写出可执行的判定规则和人工兜底动作,但只能验证流程能否跑通,不能据此推断流量或排名变化。
把人工经验转成脚本需求时,常见一个反常现象:你把判定条件写得非常具体,脚本上线后却频繁把正常页面判成例外,或者把真正的例外放过。原因通常有两种,需要分开看。
这两种解释对应不同的修正动作:前者要补信号,后者要排优先级。如果误判集中在某一类页面,更可能是条件不完整;如果误判随机分布、和页面类型无关,更可能是优先级缺失。
缺少完整数据或权限时,你仍然可以收集一类证据:把脚本判定结果和人工判定结果逐条对照,记录不一致的样本。
如果多判集中在某一条具体规则,说明该规则的条件过宽,需要补充限定;如果多判分散在几乎所有规则上,说明缺少统一的优先级或前置过滤条件。这个对照动作不需要后台权限,只需要你手头已有的处理记录和页面样本。
每条例外都按下面四段写,缺一段就会给后续执行留下歧义。
举个假设的例子:某条规则是“标题相似度超过阈值时判为重复”。例外写法可以是——触发条件:相似度超阈值但两个页面属于不同类目;判定依据:类目字段,字段缺失时不命中该例外;执行动作:不自动合并,标记为待人工确认;记录字段:两个页面标识、类目值、相似度数值。这样写,脚本在字段缺失时不会误入例外分支,人工也能从记录里快速复核。
用人工对照样本验证流程,能确认的是规则逻辑是否自洽、例外分支是否按预期触发。不能确认的包括:
如果要比较改动前后的效果,要注意季节、搜索需求变化和数据采集口径的差异,不能把同期波动直接归因于脚本改动。
如果现在只能做一件事:挑出你最近处理过的十到二十个页面,为每个页面写一行判定记录,包含页面标识、你当时判断的理由、最终处理动作。然后把这些记录当成脚本需求的验收样例——脚本跑出来的结果和这行记录不一致的地方,就是你需要补充或修改的例外描述。这个动作的结果会直接决定下一步:不一致集中在条件描述上,就先改需求文档;不一致集中在优先级上,就先定义规则执行顺序,再谈其他规则的新增。