父子文檔檢索

Parent-Child Retrieval

檢索父子結構文檔

詳細解釋

RAG 中的分層檢索策略:先檢索父文檔(粗粒度,如整章),再在其內部檢索子文檔(細粒度,如段落),平衡召回率與精度。

問題背景:

  • 粒度困境:大塊(易丟失細節)vs 小塊(語境不全)
  • 傳統 RAG:固定大小塊,難以兼顧
  • 父子結構:利用文檔自然層級(書→章→節→段)

運作方式:

  • 父級索引:粗粒度單位(章、節)建立向量索引
  • 子級存儲:細粒度單位(段、句)存儲在父級內
  • 兩階段檢索:
  1. 向量搜索找到相關父級
  2. 在這些父級內 BM25 搜索具體子級

優勢:

  • 語境保留:子級有完整父級作為背景
  • 精度提升:小單位匹配具體查詢
  • 效率:減少需要精細搜索的範圍
  • 結構感:利用文檔原有組織結構

實現方式:

  • LlamaIndex:原生支持父文檔檢索器
  • 自定義:建立雙索引,父索引存子塊引用
  • 數據庫:PostgreSQL 層級查詢 + 向量搜索

適用場景:

  • 技術文檔:API 文檔、用戶手冊
  • 法律文書:法典、合同(條款層級)
  • 研究論文:章節結構的學術文獻
  • 產品手冊:分層組織的產品信息

與普通 RAG 的對比:

  • 普通:固定 500 字塊,可能切斷語境
  • 父子:利用自然邊界,語境完整

這是「語境感知的 RAG」—— 讓檢索尊重文檔的邏輯結構。

探索更多AI詞彙

查看所有分類,繼續學習AI知識