检索的"新鲜度"是持续问题
文档在更新、产品在改版、政策在变。检索系统如果只在"建库时"读一遍 ✗,
就会逐渐给出**过期答案** ✗,而且很难被发现 ✗(用户只看到"答案不对",看不到"资料是去年的" ✔)。
新鲜度治理有两件事:**增量更新**与**过期标注** ✔。
一、增量索引(不要每次全量重建)
全量重建要**能并行灰度**(新索引与旧索引并存,切流后再删旧索引 ✔),否则重建窗口就是事故窗口 ✗。
二、过期标注(比"删除"更实用)
很多内容不是"错",而是"旧" ✔。做法:
**关键是让用户看到时间** ✔ —— 而不是让系统"假装资料是新的" ✗。
三、该观测的三个指标
1. **索引滞后时间**(文档更新到可检索的延迟 ✔)—— 这是最实用的新鲜度指标 ✔;
2. **过期命中率**(检索命中超过 N 天的片段占比 ✔);
3. **删除残留**(抽查已下线文档是否还能被检索到,应为 0 ✔)。
四、两个常见坑
五、落地顺序
1. 先给索引加 `doc_version` 与 `published_at` ✔;
2. 做按变更的增量更新(先做"新增/更新",删除随后 ✔);
3. 回答里加时间标注 ✔;
4. 加索引滞后时间指标与删除残留的定期抽查 ✔。
一条判据
> 随机抽 10 条回答,能否说出每条依据的**资料时间** ✔?
> 说不出,就说明"时间"还没有进入检索与展示链路 ✗。