注疏 · mindplace 概念

语义指纹

别名 content_hash / 内容指纹

把 md 正文归一化(去空白、NFKC)后取的 sha256,用来判断"内容真的变了没有"——改错别字不算变,重写一段才算。

简述

语义指纹是每篇 md 的一个 hash。它不对原文直接算,而是先把空白、全角半角这些格式噪音抹掉,再取 sha256。它回答一个问题:这次改动,内容真的变了吗?

详解

它记成 v1:abcd… 的样子,前缀是归一化规则的版本号。两个地方用它:ingest 靠它决定要不要重算向量嵌入(指纹没变就跳过,省 CPU);版本系统靠它决定要不要记一个新的 校勘记——排版微调、补个标点,指纹不变,就不产生新版本号,免得版本轴被格式改动灌满。

深化

归一化规则一旦改,历史指纹就全部失配——所以规则版本号是硬约束,改 normalize 必须升版本,这句话写在代码注释里当纪律。这也是为什么批注锚点的校验没直接复用它:评论选区来自渲染后的页面(没有 ** [[]] 这些标记),要和 md 原文比对,得再剥一层 markdown 标记,那是另一个函数,碰不得指纹用的 normalize。一个 normalize 服务两个目的,迟早两头都别扭。