1、为什么引入父子索引,为什么引入 BM25,比例是怎样的,具体流程是什么,有没有 rerank父子索引主要是为了解决 切块后召回准,但是上下文不完整 的问题。如果文档直接按 300~500 token 切成小块做向量检索,确实更容易召回到具体答案,但很容易丢掉原文结构,比如标题、段落关系、表格上下文、前后约束条件。所以会把文档拆成两层:父块:保留完整语义单元,通常是 800~1500 token子块:用于召回,通常是 200~400 token检索时先搜子块,命中后回源到对应父块,再把父块内容喂给大模型。这样既保证召回精度,也保证上下文完整性。引入 BM25 是因为向量检索对语义相似比较敏感...