RAG・検索基盤

親子ドキュメント検索とは|文で検索して文だけ渡したら、5問中1問しか答えが入っていなかった

親子ドキュメント検索とは何をする構成なのか小さく切るとなぜ答えが落ちるのかどう組めばよいのか

検索の的を絞るには、文書を小さく切るのが効きます。ところが小さく切った文をそのままAIに渡すと、答えが入っていないことがあります。

実際に測ったところ、文で検索して文だけを渡す構成では5問中1問しか答えが入っていませんでした。文で検索して条文を渡すと5問すべて入ります。

この記事の要点

  • 文で検索して文を渡すと、答えが入っていたのは5問中1問
  • 文で検索して条文を渡すと5問すべて
  • 渡す量は15文字から39文字
  • 検索する単位と渡す単位は分けられる

文で検索して文だけ渡したら、5問中1問しか答えが入っていなかった

3通りの組み合わせで実際に数えました。文だけを渡すと5問中1問、条文を渡すと5問すべてに答えが入ります。

親子ドキュメント検索が何を解くのかを、実際に測って確かめました。用意したのは見出しの文と金額の文が分かれた条文8件です。

検索も判定も本当に実行しています。数えたのは上位1件として渡した文字列に、答えの数値が入っているかです。

javascript
const PARENT = [
  '宿泊費について定める。国内出張の場合、1泊あたり12000円を上限とする。超過分は自己負担とする。',
  '日当について定める。国内出張は1日2000円、日帰りの場合は1000円を支給する。',
  '前払について定める。希望する場合は出発の7営業日前までに申請すること。',
  /* ... 全8件 ... */
];
// 子は文単位に割る
PARENT.forEach((t, pi) => t.split('。').filter(Boolean)
  .forEach((s) => CHILD.push({ text: s + '。', parent: pi })));
text
親 8件 / 子 19件。上位1件として渡した文字列に、答えが入っているか

構成                    答えが入っていた  渡した平均文字数
親で検索して親を渡す                     5 / 5                39文字
子で検索して子を渡す                     1 / 5                15文字
子で検索して親を渡す                     5 / 5                39文字

真ん中の行が1/5です。文で検索して、当たった文だけを渡すと、答えの数値が入っていません

語と答えが別の文にある

原因は本文の書かれ方です。「宿泊費について定める」という文には宿泊費という語はあっても、金額は書かれていません。金額は次の文にあります。

検索としては正しく当たっています。問いの語を含む文が1位に来ました。ところが渡した文には、聞かれた答えが入っていません

検索する単位と渡す単位を分ける

3行目が解き方です。文で検索して、その文が属する条文を渡します。当てるのは小さい単位、渡すのは大きい単位という分け方になります。

結果は5/5です。検索の的が絞れたうえで、答えを含む条文全体が渡ります。

渡す量は増える

代償は明確です。15文字が39文字になりました。2.6倍です。

この条文は短いので39文字ですが、実際の規程はもっと長くなります。条文が長いほど、この差は開きます。渡す量と費用の関係はLlamaIndexの記事で扱っています。

検索は当たっている。渡した文に答えが入っていないだけ。

単位: 問子で検索して子を渡す(15文字)1問親で検索して親を渡す(39文字)5問子で検索して親を渡す(39文字)5問問い5件での実測。見出しの文と金額の文が分かれた本文を、この実験用に用意した。
図1 ── 構成ごとの、答えが入っていた問いの数
出典Docs by LangChain「Retrieval」2026-08-18 確認
Query it and supply the retrieved content as context to the LLM (2-Step RAG) .
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

親子ドキュメント検索とは何をする構成なのか

小さい単位で検索し、当たった単位が属する大きい単位を渡します。単位を1つに決めない構成です。

親子ドキュメント検索は、検索する単位と、AIに渡す単位を別々に決める構成です。小さく検索して、大きく渡します。

2つの要求が食い違う

この構成が生まれる理由は、要求が食い違うためです。検索は小さいほど的が絞れ、回答は大きいほど文脈がそろいます

1つの単位に決めようとすると、どちらかを諦めることになります。前の節の1行目と2行目が、その2つの端にあたります。

渡す内容が答えを決める

そもそもの前提として、AIは渡された内容から答えます。LangChainの説明でも、検索した内容を文脈としてモデルに渡すという2段の流れが示されています。

同じ文書では、この形が検索を組み合わせた生成の基礎であり、その場に固有の情報でモデルの答えを補強するものだとされています。渡す内容が薄ければ、答えも薄くなります。

単位の選び方

  1. 子は文や段落。問いの語が含まれる最小の単位
  2. 親は条文や節。答えが完結している単位
  3. 親をページや章にする。関係のない記述まで渡る
  4. 子を単語にする。細かすぎて的が絞れない

決め方の目安は、親が「答えが完結している単位」になっているかです。前の節の条文は、その条件を満たしています。

余談 答えが同じ文にあるかを先に見る

測ってみて分かったのは、この構成が要るかどうかは、本文の書かれ方で決まるということでした。問いの語と答えが同じ文にある文書なら、子だけ渡しても足ります。分かれている文書だと、前の節のように1/5まで落ちます。

出典Docs by LangChain「Retrieval」2026-08-18 確認
This is the foundation of Retrieval-Augmented Generation (RAG) , enhancing an LLM’s answers with context-specific information.
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

親子ドキュメント検索の落とし穴

親を大きくしすぎることです。渡す量が増え、関係のない記述まで一緒に渡ります。

親子ドキュメント検索でやりがちなのは、安全側に倒して親を大きく取ることです。答えは確実に入りますが、代償があります。

渡せる量には上限がある

LangChainも、モデルの限界として文脈が有限であり、資料の全体を一度に取り込めないことを挙げています。

親を章単位にすれば答えは入ります。ところが1件で数千文字になり、上位3件を渡した時点で上限に近づきます

関係のない記述が混ざる

量だけの問題ではありません。大きい単位には、その問いに関係のない記述も含まれます

前の節の条文は3文でしたが、章単位なら数十文になります。読む側は、その中から答えを探すことになります。

確かめ方

組む前に測れます。問いを5件用意して、問いの語と答えが同じ文にあるかを見るだけです。

同じ文にあるなら、この構成は要りません。分かれているなら、親をどこまで広げれば答えが入るかを数えてください。分け方そのものの話はチャンク戦略の記事で扱っています。

親を大きくすれば答えは入る。関係のない記述も一緒に入る。

充足 2 / 4問いの語と答えが別の文にある同じ文にあるならこの構成は要らない。子だけ渡せば足りる親が答えの完結する単位になっている条文単位なら5/5。文単位だと1/5まで落ちた親を章やページ単位にしている1件が数千文字になり、上位3件で上限に近づく渡す量が何倍になるかを数えていないこの計測でも15文字が39文字になった。条文が長いほど差は開く条文8件・問い5件での実測にもとづく。見出しの文と金額の文が分かれた本文を用意した。
図2 ── 親子の単位を決めるときの点検項目
出典Docs by LangChain「Retrieval」2026-08-18 確認
Finite context : they can’t ingest entire corpora at once.
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

よくある質問

なぜ文だけ渡すと答えが落ちるのですか
問いの語がある文と、答えの数値がある文が別だからです。「宿泊費について定める」で当たっても、金額は次の文に書かれています。
最初から条文で検索すればよいのでは
この計測では条文で検索しても5問すべて当たりました。文で検索する利点は、条文が長くなったときに的を絞れることにあります。
渡す量はどれだけ増えますか
この計測では15文字が39文字になりました。2.6倍です。条文が長いほど、この差は開きます。
どこまで大きい単位を渡せますか
渡す量がそのまま費用と処理時間に効きます。ページ単位や章単位まで広げると、関係のない記述も一緒に渡すことになります。

まとめ

  • 親子ドキュメント検索は小さく検索して大きく渡す構成
  • 文だけを渡すと、答えが入っていたのは5問中1問
  • 条文を渡せば5問すべて
  • 代わりに渡す量が15文字から39文字に増える

今日から始められること

  1. 実際に聞かれる問いを5件用意する
  2. 問いの語と、答えが書かれている箇所が同じ文にあるかを確かめる
  3. 別の文にあるなら、検索する単位と渡す単位を分ける
  4. 渡す量が何倍になるかを数えてから決める

実務で組んだ親子ドキュメント検索のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る