N
NextTech Insights
RAGのチャンク分割とインデックス設計チェックリスト|検索精度を上げる実務(2026)
airagllmindexing

RAGのチャンク分割とインデックス設計チェックリスト|検索精度を上げる実務(2026)

5 min read

RAGの品質はchunkingとindexingで決まる。構造ベース分割、chunkサイズ/overlap、メタデータとフィルタ、重複除去、再インデックス方針まで、取り回せるチェックリストに落とし込む。

目次

RAGのretrievalを良くするchunking/indexingの決め方(embedding以前の話)

結論(Conclusion)

RAGの品質問題の多くは retrieval の問題。 chunking と indexing は「検索が何を見える状態にするか」を決める。

実務で外しにくいデフォルト:

  • 文字数より 構造(見出し/セクション) で分割
  • chunkは自己完結(定義が欠けない)
  • 強いメタデータ(doc_id/section/updated_at/tenant)
  • フィルタを強く(tenant、権限、プロダクト領域)
  • 再インデックスはポリシー化(気分でやらない)

やらないと「間違ったchunkが勝つ」が起きる。

背景(Explanation)

chunkingは「500 tokens」にする作業ではない。 ユーザーの質問とチャンクの単位を揃える作業。

悪い設計で起きること:

  • 関係ないchunkが上に来る
  • 文脈が分断(定義が別chunkにある)
  • 重複テキストがretrievalを支配
  • 古いポリシーが新しいdocに勝つ
  • tenant分離がメタデータで担保できず事故る

目的は:

  • recall(正しいdocを拾う)
  • precision(ノイズを拾わない)

実務手順(Practical Guide)

手順1:retrievalの“単位”を決める(5分)

まず1つだけ答える。

  • 取りたいのは「段落」か「セクション」か「全文書」か

ルール:

  • 引用して見せたい単位にchunkを合わせる

手順2:構造ベースで分割する(15分)

優先:

  • Markdown見出し
  • HTMLセクション
  • PDFページブロック(タイトル付き)

構造がない場合のみ固定サイズへ。

おすすめ:

  • セクション分割
  • ただし最大token上限あり
  • continuity用に小さなoverlap

手順3:chunkサイズとoverlapを意図して決める(10分)

目安:

  • 知識docなら 300〜800 tokens/chunk
  • overlap 30〜100 tokens

ルール:

  • 小さすぎる → 文脈不足
  • 大きすぎる → ノイズ混入

手順4:フィルタに効くメタデータを付ける(10分)

最低限:

  • doc_id(安定)
  • chunk_id
  • source_type(wiki/ticket/upload)
  • updated_at
  • tenant_id / org_id
  • access labels(role/team)
  • product_area / tags

ルール:

  • メタは保存するだけでなく、retrievalで強制する

手順5:重複除去と正規化(10分)

よくある問題:ボイラープレートが多い。

  • nav/footerノイズ除去
  • 繰り返し免責文の集約
  • 近似重複の検出(canonicalを1つ残す)

手順6:再インデックス方針を決める(10分)

明文化する:

  • いつ再embeddingするか(更新時/夜間バッチ)
  • 削除がどう反映されるか
  • 古いchunkが残る最大期間

最小:

  • trustedは更新時に即re-index
  • untrustedは隔離 + 遅延index

手順7:retrieval品質を測る(10分)

計測:

  • 小さなevalセットでtop-k hit rate
  • 低スコアクエリの割合
  • top-k内の重複chunk比率

ログ:

  • retrieved_doc_ids + chunk_ids
  • scores
  • 適用したfilters

測れないものは改善できない。

落とし穴(Pitfalls)

  • 構造があるdocを固定サイズで切る(セクションが壊れる)
  • tenant/権限フィルタが弱い(セキュリティ事故)
  • 重複除去なし(ボイラープレートが勝つ)
  • 削除反映なし(古い答えが残る)
  • embedding調整に逃げて、フィルタ/重複が放置される

チェックリスト(Checklist)

  • [ ] retrieval単位(段落/セクション/文書)を定義した
  • [ ] chunkingは構造優先(見出し/セクション)
  • [ ] chunkサイズとoverlapが文書化されている
  • [ ] 全chunkに doc_id + chunk_id がある
  • [ ] メタに tenant_id と権限ラベルがある
  • [ ] retrievalでメタフィルタを強制している
  • [ ] 重複/ボイラープレートを減らしている
  • [ ] 再インデックス方針(更新/削除)が明文化されている
  • [ ] untrustedは隔離/遅延index
  • [ ] retrievalログにdoc_id/chunk_idとscoreが残る
  • [ ] evalセットでtop-k hit rateを追っている

FAQ

1) chunkサイズは結局どれが正解?

構造ベースが正解。数値が必要なら500 tokens付近から始め、hit rateと引用UXで調整。

2) overlapは多いほど良い?

NO。多すぎるとtop-kが重複で埋まる。小さくして測る。

3) ぐちゃぐちゃなretrievalの最速改善は?

tenant/権限/プロダクト領域の強いフィルタ + 重複除去。embedding調整より効くことが多い。

免責

一般的なエンジニアリングガイドです。

人気記事

  1. 1Permit2とは何か?Approveが変わった理由と安全な使い方(チェックリスト)
  2. 2署名(Sign)画面の読み方|Approve/Permit/NFT全権限を30秒で判別するチェックリスト
  3. 3仕様→実装に落とすプロンプトテンプレ(AI開発)|AIに“迷わせない”仕様の書き方
  4. 4EVMのトークン承認(Approve)を見直す方法|Revokeの手順と判断基準(チェックリスト)
  5. 5曖昧な依頼を要件定義に変換する質問リスト(AI開発)|AIに実装させる前に聞くべきこと

関連記事