Appearance
第 4 章 索引构建与知识库更新
这一章要讨论的,是 RAG 链路里一个非常关键、但很容易被低估的部分:索引到底在做什么,以及知识库变化之后索引应该怎样持续维护。
很多人学 RAG 时,注意力主要放在:
- 数据怎么清洗
- 文档怎么切块
- 检索怎么做
这些当然都重要,但如果索引这一层没有建立正确理解,后面很多问题会反复出现:
- 数据明明已经更新,为什么回答还是旧的
- 同一篇文档为什么会出现多个冲突版本
- 为什么 Demo 能建索引,线上却越用越脏
- 为什么团队一直在调 Prompt,结果问题却始终不稳
因为索引真正承担的,不只是“把内容写进去”,而是把知识对象组织成一种后面可被稳定检索、过滤、排序、更新和回滚的结构。
学这一章时,最值得先建立的判断
- 索引不是单纯存储动作,而是在提前组织后续检索链路
- 索引质量会直接决定召回质量,很多问题在查询前就已经埋下了
- 知识库一旦持续变化,就必须有增量同步、删除清理和版本控制机制
- 生产系统里真正难的,往往不是“第一次建索引”,而是“之后还能不能长期维护干净”
这一章会解决什么问题
这一章主要回答三类问题:
- 索引到底是什么,它和简单存储有什么本质区别
- 索引构建为什么必须建立在清洗、切块和 metadata 准备之后
- 知识库持续变化时,怎样让索引跟着稳定同步,而不是越维护越乱
换句话说,这一章不是在教你“点一下按钮建库”,而是在帮你建立一套更稳的系统认识:
- 什么才算一个可检索对象
- 什么才算一个可维护的索引
- 什么才算一个可长期运行的知识库更新机制
建议阅读顺序
主题模块
读这一章时,建议一直带着的 4 个问题
- 当前系统里的“索引对象”到底是什么,是整篇文档、chunk,还是别的组织形式
- 如果召回结果不稳,根因更像出在索引对象设计,还是出在查询阶段
- 知识库发生新增、修改、删除时,索引有没有明确同步路径
- 一旦数据写错、版本混乱或内容失效,系统有没有能力快速回滚和退出