Skip to content

4.3 知识库更新与索引维护 ​

这一节讨论的是 RAG 从 Demo 走向长期可用系统时,几乎一定会遇到的问题:

  • 知识库内容在变,索引怎么跟着变
  • 旧数据怎么失效
  • 删除和修改怎么同步
  • 出错以后怎么回滚

很多团队在最开始做 RAG 时,只关注“第一次把资料建进索引”。但真实系统的问题,往往不是第一次建进去,而是后面不断变化时还能不能维持干净、稳定和可控。

也就是说,索引构建只是开始,索引维护才决定系统能不能长期可用。

为什么这一节很重要 ​

如果知识库会变化,而索引维护机制又不清楚,系统很快就会出现这些问题:

  • 新资料已经更新,检索结果还是旧内容
  • 一篇文档改过多次,索引里留下多份旧 chunk
  • 删除了源数据,但索引里还残留孤儿数据
  • 同一主题在不同时间问,答案前后不一致
  • 紧急修错后,无法快速回滚到上一个稳定版本

这些问题看起来像“检索偶尔不稳”,本质上其实是索引生命周期没有设计好。

学这一节时,最值得先建立的判断 ​

  • 生产环境里不能把“重建一次索引”当成唯一更新方式
  • 新增、修改、删除三类变化,处理方式通常不同
  • 增量更新的前提是稳定 ID、清晰版本和可追踪的变更来源
  • 索引维护不只是写入动作,还包括删除、失效、回滚和脏数据清理

这一节会回答什么问题 ​

读完这一节后,你最好能更稳地判断:

  • 什么场景适合全量重建,什么场景必须增量更新
  • 一条数据变化以后,索引侧应该触发哪些动作
  • 系统不稳定时,应该优先检查新增链路、修改链路、删除链路,还是版本控制链路