分层索引
Hierarchical Indexing
小块精确搜索+大块完整上下文的双层索引策略
子问题
1.如何平衡检索精度与上下文完整性
2.如何避免块边界截断语义
3.如何管理父子块映射关系
4.如何处理合并/拆分后仍不满足尺寸要求的边界块
5.如何在批量加载父块时保持文档顺序
6.如何选择合适的父块尺寸范围以平衡精度与成本
各项目的解法1 solutions
Signals
横向对比
| 维度 | agentic-rag-for-dummies |
|---|---|
| 分割策略 | 父块按 Markdown 标题(H1/H2/H3)分割,子块固定 500 字符 |
| 尺寸控制 | 三阶段自适应:合并小块(<2000)、拆分大块(>4000)、清理边界 |
| 父子映射 | 子块元数据记录 parent_id,通过 LangChain split_documents 自动继承 |
| 存储方式 | 父块存为 JSON 文件(文件系统),子块存向量数据库 |
| 检索流程 | 两阶段:先向量搜索子块 → 提取 parent_ids → 批量加载父块 JSON |
| 去重机制 | 批量加载时对 parent_ids 去重 + 按序号排序 |
| 语义边界保护 | 按 Markdown 标题分割,避免截断完整段落 |
最佳实践
1.按 Markdown 标题分割父块
2.固定大小分割子块
3.子块元数据记录父块 ID
4.检索时先搜子块再取父块
5.三阶段尺寸自适应:合并小块 → 拆分大块 → 清理边界
6.利用 LangChain split_documents 自动继承元数据,避免手动赋值
7.批量加载父块时去重 + 按序号排序,保证结果稳定性
8.父块存文件系统而非向量数据库,降低存储成本