批量替换标签文本之前,先构造一批“反例样本”——也就是那些替换后会变坏、或本来就不该被替换的标签页。反例样本的作用不是证明替换正确,而是先划出边界:只要这批样本在替换后出现标题错乱、聚合页语义偏移或标签页内容与主题脱节,就说明规则过宽,必须先收窄再执行。构造反例的正确顺序是:先从标签清单里挑出“看起来像目标、实际不该动”的条目,再用替换规则跑一遍,最后人工核对这批样本是否被误改。
是否值得花时间构造反例样本,取决于标签文本的重复程度和替换规则的匹配方式。
选择哪种条件,不看标签数量多少,而看替换词是否“一词多职”。一词多职时,反例样本是必要前置动作;一词一职时,反例样本可以压缩成抽查清单。
反例样本不是随机抽样,而是按“会被规则误伤的方式”来选。至少覆盖以下三类:
把这三类各挑若干条,记录替换前的标签名、对应聚合页标题和该标签下前几条内容的主题。这份记录就是后续判断“是否误改”的对照依据。
具体动作分三步,每步的结果都会影响下一步。
第一步,在测试环境或备份副本上执行替换规则,只跑反例样本。不要直接在全量数据上操作。跑完后逐条核对:标签名是否按预期变化,聚合页标题是否同步,标签下内容是否仍然匹配新标签语义。
第二步,根据反例结果调整规则。如果反例中出现误改,常见调整方向有两个:一是把替换范围限定在标签字段,不碰标题和描述字段;二是给规则加排除条件,例如排除“苹果”这类多义词标签。调整后重新跑同一批反例,直到没有误改。
第三步,用调整后的规则做小范围全量验证,再决定是否铺开。小范围验证时,除了看反例,还要看替换后标签页的访问状态和内部链接是否正常。如果反例通过但小范围出现大量标签页内容重复,说明规则虽然没误伤反例,但造成了标签合并,需要回到第二步继续收窄。
这个顺序的关键在于:反例样本的作用是“证伪”,不是“证实”。只有反例全部通过,才轮到小范围验证;反例不通过,就不该进入全量替换。
有些情况不适合用反例样本法,或者反例通过后仍要谨慎。
一个可操作的区分方法是:如果反例标签的标题和内容仍然匹配,只是访问量下降,优先排查外部需求变化;如果反例标签的标题与内容已经脱节,那才是替换规则的问题。这个判断会影响下一步是回滚规则,还是继续观察。
每次批量替换前,不必从零构造反例。可以把上一次的反例样本整理成一份检查清单,包含三类条目:多义标签、前缀冲突标签、标题与标签同名的标签。执行替换前,先跑这份清单,确认规则没有误伤,再进入小范围验证。清单本身要随标签体系变化更新,例如新增了同义标签或合并了标签组,就要补充对应的反例条目。这样做的结果是把“替换前先证伪”变成固定动作,而不是每次靠临时判断。