先给结论:报告页数多于实际对象数量,通常不是“多出来的人”,而是分页、重复触发或对象粒度不同造成的计数口径差异。去重的正确顺序是先统一“对象”定义,再按稳定标识合并,最后才去核对页数;反过来先删页,很容易把真实对象误删。
少数几个对象做测试时,报告页数和对象数量往往一一对应,于是很容易得出“页数就是对象数”的经验。但当对象从几十个扩到成百上千个,页数开始明显多于实际对象。这类偏差在小样本里被掩盖,规模化后才暴露,属于典型的计数口径问题,而不是工具突然出错。
此时不要急着把多余页删掉。页数多出来,可能只是同一个对象被拆成多页展示,也可能是同一个对象被多次查询命中。两者处理方式完全不同。
很多报告类工具会把一个对象的明细拆成多页,或者把汇总页和明细页分开呈现。这种情况下,页数大于对象数是正常结构,不是重复。判断依据是:这些页是否共享同一个对象标识,比如同一名称、同一编号、同一链接。
如果多页共享同一标识,处理方式是按标识合并,而不是删除。可以先把每页记录的对象标识抽出来,做成一份去重后的标识清单,再和原始对象清单比对。合并后若数量一致,说明只是展示粒度问题,后续分析应基于标识清单而非页数。
另一种情况是输入侧就有重复:同一个对象以不同写法、不同别名或不同大小写出现,工具把它们当成多个查询分别处理,于是每个查询各出一份报告,页数翻倍。这类重复的根源在查询清单,不在报告本身。
区分这两种解释的关键证据是:去重后剩下的标识,能否和最初输入的对象清单一一对应。能对应,说明是展示拆分;不能对应,说明输入侧就存在重复对象,需要回到查询清单修正。
具体动作分三步。第一步,确定唯一标识:优先用稳定且不易变的字段,比如编号或链接,名称只作辅助。第二步,按标识合并记录,保留一份主记录,把其余页的差异字段附加到主记录上,避免信息丢失。第三步,用合并后的标识清单反查原始对象清单,确认没有对象被漏掉。
这一步的结果直接决定下一步。如果合并后数量与原始清单一致,说明去重完成,可以进入分析;如果合并后仍多于原始清单,说明输入侧还有重复写法,需要回到查询清单清理;如果合并后少于原始清单,说明某些对象在报告中缺失,问题从“去重”变成了“覆盖不全”,处理方向完全不同。
假设原始对象清单有 100 个对象,报告导出后有 130 页。抽出唯一标识后发现只有 100 个不同标识,说明多出的 30 页是分页拆分,按标识合并即可。若唯一标识有 120 个,则说明输入清单里至少有 20 个对象被以不同写法重复提交,应先修正查询清单再重新核对。以上数字仅用于说明比较方法,不代表任何工具的实际比例。
上述方法成立的前提是:对象存在稳定且唯一的标识,且报告保留了该标识。如果报告只展示名称、没有编号或链接,去重就只能依赖名称匹配,而名称可能存在同义、简称、错字,误合并和漏合并的风险都会上升。此时应先补齐标识字段,再谈去重。
另外,页数、抓取量或某项统计归零,并不能单独证明去重做对了。归零还可能来自查询条件过窄、对象本身无数据、导出范围被截断等原因。要确认去重正确,依据应是合并后的标识清单与原始对象清单能否对齐,而不是某个数字变小了。
涉及百度司南工具的具体字段名称、导出结构和当前功能,不同版本可能不同,实际以工具内可见的信息为准,必要时核对官方说明。方法层面可以确定的是:先统一对象定义,再按稳定标识合并,最后用清单对齐验证,这套顺序在规模化场景下比直接删页更可靠。