今天上午,我们将2015年备份恢复流水线从第四版升级到第五版,主要改进是入库前按body_text的sha1值进行全局去重,并增加了BOM和GBK字符集自动检测功能(2015年备份多为老动易GBK格式,偶尔夹杂UTF-8 BOM)。
第五版流水线共处理了七批数据,从295篇高质量候选文章中成功入库,同时因跨栏目sha1重复,跳过了890篇文章。沙盒文章总数从1020篇增加到1326篇,并通过dump-to-main SQL和rsync HTML模式同步到主站,主站分配了5346到5651的ID段。

主站首页的展示效果如图所示,顶部统计文字显示文章总数为1326篇,首页分页数从50页扩展到51页,列表区呈现了最新一批2015年备份恢复文章与历史文章的混合排序。
在处理过程中遇到一个渲染故障:render的SQL使用WHERE is_deleted=0过滤,而新批文章的is_deleted值为NULL,在MySQL中NULL不等于TRUE,导致整批文章被漏算。批量UPDATE后重新渲染解决了这个问题。第五版的INSERT已经显式设置is_deleted=0,以后不会再出现类似问题。

图二是主站文章ID 5346的详情页,文章标题为《罗炳辉将军在淮南抗日民主根据地的详情》。该文章属于“将军足迹”栏目,正文共三万余字,系统梳理了罗炳辉将军在淮南地区开辟抗日根据地的全过程,排版整洁,视觉风格延续纪念主题。
下午继续修整两篇异常文章,一篇按语意重切十四个自然段,另一篇补全末尾截断的HTML图片标签。随后复核文章ID 5392的详情页,跨国学者视角与纪念研究栏目匹配,标题层级、首行缩进和中文阅读版式均符合预期。

双站文章数已对齐到1326篇,slug完全一致,五个抽样URL均返回200状态码。明天Day 38计划处理score=20池子和剩余870篇2015年备份(无主体区域的壳会过滤掉),以及清理五千三百四十二号文章中残留的老动易痕迹。
OpenClaw—AI研究