先给结论:报告里的“页数”通常是抓取或汇总后的记录条数,不等于独立对象数量。去重的正确顺序是——先确认每行代表什么对象,再选定唯一标识,最后把“同一对象的多条记录”合并成一条。如果跳过前两步直接按URL去重,往往只是把分母改小,分歧仍然存在。
页数与对象数量对不上,通常有三种来源,处理方式完全不同:
判断方法很直接:从报告里抽十条记录,逐条问“这一行代表的对象是谁”。如果十行指向的对象不足十个,属于第一类;如果一行里其实藏着多个对象,属于第二类;如果十行对象各不相同但两边数字仍对不上,多半是第三类。这一步做完,才知道该改数据还是改口径。
去重的前提是有一个能唯一代表对象的字段。常见选择及适用条件:
选择依据是“哪个字段在对象生命周期内不变”。URL会随改版变化,标题会随编辑调整,业务ID通常最稳。如果报告里没有业务ID,只能退回URL,那就必须把规范化规则写下来,让所有角色用同一套规则,否则每个人心里的“同一个页面”并不一样。
以下为假设例子,用于说明比较方法,不代表任何真实项目数据。
假设某团队拿到一份报告,显示记录数为1200,但业务方坚持实际对象只有约800个。第一步,抽样发现其中约300条是带不同查询参数的同一批页面,另有约100条是分页产生的重复列表。第二步,团队决定以规范化URL为唯一标识,规则包括:去掉查询参数、统一小写、去掉末尾斜杠。按此规则合并后得到约900条,仍高于800。
第三步,检查剩余差异,发现约100条记录指向的是同一对象的移动版与桌面版。此时有两个选择成立的条件不同:如果业务口径把两个版本视为一个对象,就应再加一条“同一对象的设备变体合并”规则,结果接近800;如果业务口径本来就分别统计,那900才是正确数字,需要改的是业务方的预期而不是数据。这个分岔点必须由业务方拍板,技术侧无法单方面决定。
第四步,把最终规则写成一份可核对的清单:唯一标识是什么、规范化包含哪几条、哪些情况不合并。任何人按这份清单重跑,都应得到同一个数字。这一步的产出不是新数字,而是“数字为什么是这个”的可复现依据。
多个角色对同一事实理解不同时,争论“到底是多少”通常没有结果,因为双方数的不是同一件事。更有效的做法是把分歧拆成可核对的项目:
这个流程的价值在于,把“你的数字不对”变成“这100条记录我们归类不同”。前者无法验证,后者可以逐条核对。核对完成后,下一步动作自然明确:要么补充规范化规则重算,要么修改业务定义,要么接受两个数字并存并各自标注口径。
合并完成后,不要只看总数变小就认为处理正确。记录数归零或大幅下降,也可能来自规则过严,把本来不同的对象误合并了。合理的解释至少包括:规范化规则误删了有意义的参数、业务ID字段存在空值被统一处理、抽样时恰好集中在小范围。反向检查的方法是:从合并后的每组里抽一条,确认组内对象确实相同、组间对象确实不同。只有两个方向都抽查过,去重结果才站得住。
最后提醒一点:具体工具当前支持哪些字段、能否自定义规范化规则,属于会变化的信息,需要以实际界面和文档为准,不要凭记忆断言。真正稳定的部分,是上面这套“先定对象、再定标识、后定规则”的顺序。