Skip to content

第 4 章 索引构建与知识库更新 ​

这一章要讨论的,是 RAG 链路里一个非常关键、但很容易被低估的部分:索引到底在做什么,以及知识库变化之后索引应该怎样持续维护。

很多人学 RAG 时,注意力主要放在:

  • 数据怎么清洗
  • 文档怎么切块
  • 检索怎么做

这些当然都重要,但如果索引这一层没有建立正确理解,后面很多问题会反复出现:

  • 数据明明已经更新,为什么回答还是旧的
  • 同一篇文档为什么会出现多个冲突版本
  • 为什么 Demo 能建索引,线上却越用越脏
  • 为什么团队一直在调 Prompt,结果问题却始终不稳

因为索引真正承担的,不只是“把内容写进去”,而是把知识对象组织成一种后面可被稳定检索、过滤、排序、更新和回滚的结构。

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

  • 索引不是单纯存储动作,而是在提前组织后续检索链路
  • 索引质量会直接决定召回质量,很多问题在查询前就已经埋下了
  • 知识库一旦持续变化,就必须有增量同步、删除清理和版本控制机制
  • 生产系统里真正难的,往往不是“第一次建索引”,而是“之后还能不能长期维护干净”

这一章会解决什么问题 ​

这一章主要回答三类问题:

  1. 索引到底是什么,它和简单存储有什么本质区别
  2. 索引构建为什么必须建立在清洗、切块和 metadata 准备之后
  3. 知识库持续变化时,怎样让索引跟着稳定同步,而不是越维护越乱

换句话说,这一章不是在教你“点一下按钮建库”,而是在帮你建立一套更稳的系统认识:

  • 什么才算一个可检索对象
  • 什么才算一个可维护的索引
  • 什么才算一个可长期运行的知识库更新机制

建议阅读顺序 ​

  1. 4.1 索引是什么,索引在做什么
  2. 4.2 索引构建的基本思路
  3. 4.3 知识库更新与索引维护

主题模块 ​

读这一章时,建议一直带着的 4 个问题 ​

  1. 当前系统里的“索引对象”到底是什么,是整篇文档、chunk,还是别的组织形式
  2. 如果召回结果不稳,根因更像出在索引对象设计,还是出在查询阶段
  3. 知识库发生新增、修改、删除时,索引有没有明确同步路径
  4. 一旦数据写错、版本混乱或内容失效,系统有没有能力快速回滚和退出

关联章节 ​

  • 这一章是 第 2 章 和 第 3 章 的自然延伸。
  • 后面阅读检索、重排、生产化相关章节时,这一章会不断出现,因为很多后续问题都和这里的索引设计与维护能力直接相关。