先不要改标题,也不要重新导入。把“错位”当成待验证的假设:它可能是文件与标题的对应关系真的被打乱,也可能只是列表顺序、ID映射或缓存显示造成的假象。正确顺序是先用只读方式建立一份可对照的清单,确认错位发生在哪一层,再决定是否覆盖或回滚;在对应关系没核清之前做任何标题改写,都会让后续判断失去基准。
导入后标题与文件错位,最忌讳直接全量重导,因为重导会覆盖现场,让原本能区分的两种原因变得无法分辨。先挑一条你确定原始标题是什么的记录,记下四个值:文件名、文件内标题、系统里显示的标题、记录ID。这四个值就是后续核对的锚点。
如果只有文件名和显示标题对不上,而记录ID与文件内容仍能一一对应,那么问题多半出在展示层或映射层,而不是数据本身被写错。反过来,如果记录ID对应的正文字段已经和标题分属两份不同文件,那就是导入映射真的错了,处理方式完全不同。
标题正是出错的那个字段,用它来核对对应关系会循环论证。应该改用正文里的稳定特征做指纹,例如首段第一句、一个不重复的数字编号、或正文中特有的词组。把文件侧和系统侧的指纹并排列出,看它们是否指向同一条记录。
假设一份文件正文开头是“本季度渠道复盘”,系统里这条记录的标题却是另一份文件的标题,但正文仍是“本季度渠道复盘”,那么可以判断标题字段被错误覆盖,正文没动。此时修复范围很小,只需重建标题映射,不必碰正文。若正文也跟着串了,说明导入时字段顺序或分隔规则被误读,需要回到导入配置层排查。
这一步的实际动作是:导出当前记录的文件名、ID、标题、正文指纹四列,与原始文件清单做一次人工比对。比对结果决定下一步——只修标题映射,还是重做导入规则。
这三种来源的处理成本差别很大:显示错位不需要改数据,映射错位改一次规则即可,覆盖错位则要考虑是否需要从备份恢复被覆盖的标题。先分清属于哪一种,再动手。
如果核对显示只有标题字段错位、正文指纹全部对得上,优先修复映射关系,而不是回滚整个批次。回滚会连带撤销本已正确的正文导入,代价更高。修复后重新抽查同一批记录,确认标题与正文指纹重新对齐。
如果正文指纹也大面积错位,说明导入解析本身有问题,此时回滚该批次、修正分隔规则或字段顺序后重导更稳妥。重导前先保留一份当前状态的导出文件,作为对照基准。
需要提醒的是,修复完成后观察索引或展示变化时,不要把某一天的抓取量或展示量波动直接当成修复生效的证据。搜索需求本身有季节性,数据采集口径也可能不同,前后对比至少要排除这两类干扰,才能判断改动是否真的起了作用。核对对应关系是可控的技术动作,而恢复表现受外部因素影响,两者不要混为一谈。
这次错位核清后,把“文件名、ID、标题、正文指纹”四列对照做成导入后的固定检查项,尤其是分批导入时。下次导入前先在小样本上跑一遍这个对照,确认映射规则没有偏移,再执行全量。这样错位会在进入索引之前就被发现,而不是等到展示异常才回头排查。
整个降权恢复过程中,先建立可核对的对应关系,再决定修改范围,能让每一步动作都有依据,也避免在原因未明时反复覆盖数据、丢失判断基准。