结论先行:当工具从只接受“关键词+单一页面”变为可接受“关键词+页面组/目录/URL模式”时,输入规范不应整体重写,而应先保留原有单页规则,再为批量对象增加一条“对象类型判定—字段映射—异常隔离”的补充规则;否则个别样本能跑通,规模化后会把不相关页面混进同一组,导致位置结果无法解释。下面说明这条规则在什么条件下成立、什么反例会让它失效,以及下一步该怎么做。
工具支持的对象格式变化,常见表现是输入框从单个 URL 扩展为可粘贴多行、支持目录前缀、支持通配符,或允许把关键词与页面对象分成两列。此时要先判断变化发生在哪一层:如果只是输入方式变多,原有“一个关键词对应一个页面”的语义没有变,输入规范只需增加格式校验;如果工具开始把多个页面合并成一个对象组,那么语义已经变了,必须重新定义组内关系。
可区分的原因证据是:把同一批数据分别按旧格式和新格式各跑一次,如果单页结果一致、只有多页对象出现无法归属的行,问题在对象分组;如果连单页结果也发生偏移,问题在字段映射或对象识别规则,而不是输入格式本身。
规模化后出现例外,通常不是因为规则错,而是因为规则没有声明适用边界。补充规范时优先加三类字段:
一个假设例子:某批数据里 20 个单页对象和 3 个目录对象放在同一列。单页对象能正常返回位置,目录对象却把目录下所有页面算作同一对象,结果里出现多条同关键词不同页面的记录。此时不应删掉目录对象,而应拆成两列并加对象类型,让目录对象单独成组。这个动作的结果是:异常行有了明确归属,下一步才能判断是匹配方式写错,还是该目录本身不适合作为查询对象。
如果工具把“对象格式”与“结果粒度”绑定在一起,即选择目录或模式后,返回结果不再按单页拆分,那么前面“保留单页规则、只加补充列”的做法就会失效。此时继续用同一张表混跑,会得到看似成功、实际无法对应到具体页面的位置数据。
判断依据是:检查返回结果是否还能按对象类型逐行还原。若不能还原,就不能把目录对象与单页对象放进同一批次比较,而应分成两次查询,或在输入规范里明确“该对象只用于汇总,不用于单页位置判断”。这一步不是格式问题,而是对象粒度问题。
建议先取一小批同时包含单页、目录和异常对象的样本,按新规范跑一次,并保留原始输入与返回结果。重点看三件事:单页对象是否仍能一一对应;目录或模式对象是否被拆成可解释的行;异常行是否能退回原对象。
如果三项都成立,再扩大输入规范并批量执行;如果只有第一项成立,说明工具的对象支持仍停留在输入层,不适合把目录对象纳入同一批位置查询。此时更稳妥的动作是维持单页规范,把目录对象另建批次,等确认返回粒度后再合并。这样改输入规范,改的是对象边界,而不是重抄一遍关键词表。