第33章:Index 与 Storage 源码剖析
版本:LlamaIndex 0.12.x定位:理解 LlamaIndex 如何组织索引和存储源码关联:llama_index.core.indices、llama_index.core.storage1. 项目背景某 SaaS 团队的 RAG 系统已经平稳运行了三个月,知识库每周同步一次新文档。直到有一天,运维同学像往常一样执行了索引重建——将 8000 篇文档重新切分、向量化、构建索引。半小时后索引完成,他把persist_dir指向了新目录,重启服务。然后,客服团队开始反馈:搜索"退款流程"返回空结果,搜索"账号注销"也只返回了一个不完整的摘要。而就在一小时前,这两个问题的答案是完整且带引用的。运维排查发现:persist_dir指向了新目录indexes/v2,服务确实加载了新索引。但当他尝试回滚时——把persist_dir改回indexes/v1——问题并没有解决。进一步排查:原来在"切换"操作中,他只改了配置文件中的路径,但旧目录的docstore.json已经被手动删除了(以为清空旧索引可以省磁盘)。至此,v1 索引的原始文档存储已永久丢失,无法回滚。更糟的是,团队发现之前的"版本管理"方案就是简单的文件重命名:构建完新索引后mv indexes/current indexes/v1把旧