# チャンク分割とインデックス設定

ナレッジベースに登録した文書は、そのままでは検索に使えません。検索しやすい大きさに切り分け（チャンク分割）、索引を作る（インデックス化）ことで、質問に対して正確な情報を返せるようになります。

ドキュメントをナレッジベースにアップロードした後、ドキュメントを検索可能な単位（チャンク）に分割し、インデックス化を行います。 適切な設定を行うことで、RAGの回答精度を大きく向上させることができます。

{% hint style="info" %}
**チャンクとは**

**チャンク**は、ドキュメントを検索可能な小さな単位に分割したものです。\
LLMには入力長の制限があるので、適切な単位で分割することで検索精度が向上します。\
単位が大きすぎるとノイズが混じり、小さすぎると文脈が消失するおそれがあります。
{% endhint %}

## 1. チャンク設定

ドキュメントの特性に合わせて、以下の3つのモードから分割方法を選択します。

### 汎用（汎用テキスト分割モード）

![](/files/k0ItQPaKuPNPZc2aSjUU)

一般的なほとんどのドキュメントで使用できる分割方法です。

**Automatic**: Difyが推奨するルールで自動的に分割およびクリーニングを行います。

**Custom**: チャンクの最大長（文字数）、区切り文字（デフォルトは \n（改行）で段落ごとに分割）、オーバーラップ（重複部分）の長さを手動で設定できます。正規表現を使い、分割ルールを変更できます。

例: マニュアル、議事録、記事など

### 親子（親子分割モード / 階層分割モード）

![](/files/M4QVMSNT0yt2RwuPHo07)

ドキュメントを「親（大きな文脈）」と「子（小さな断片）」の関係で管理するモードです。文脈を保持しつつ細かく検索できます。

検索時は「子チャンク」で、マッチングを行います。LLMへの入力（コンテキスト提供）は「親チャンク」を使います。「検索のヒット率を高めつつ、回答に必要な前後の文脈も失わない」という両立が可能です。

例: 構造化データ、CSVファイル、FAQ、商品データベースなど

### Q\&A（質問と回答モード）

テキストデータから「質問（Q）」と「回答（A）」のペアを抽出してチャンク化します。 テキストファイルから自動的にQ\&A形式を学習・分割するほか、CSVファイル等の構造化データを取り込む際にも有効です。

例: FAQ、カスタマーサポートの履歴、規約集など

### チャンク設定項目

**チャンク長（Chunk Size）**

| 設定値             | 用途             |
| --------------- | -------------- |
| **300〜500文字**   | FAQ、短い情報       |
| **500〜1000文字**  | 一般的な文書（**推奨**） |
| **1000〜2000文字** | 詳細な説明文書        |

**オーバーラップ（Chunk Overlap）** チャンク間で重複させる文字数

| 設定値        | 効果                |
| ---------- | ----------------- |
| **0%**     | 完全に分離、コスト削減       |
| **10〜20%** | 文脈の継続性を確保（**推奨**） |
| **30%以上**  | 重複が多すぎ、非効率        |

## 2. インデックス方法

![](/files/fXhMZfSxrGYgLsVjbfkq)

データの保存と検索のベースとなる仕組みを選択します。

* **高品質（推奨）**
  * Embeddingモデル（OpenAI text-embedding-3など）を使用してテキストをベクトル化します。
  * 文脈や意味内容に基づいた検索が可能になります。
  * トークン消費によるコストが発生します。
* **経済的**
  * 従来のキーワード検索（転置インデックス）のみを使用します。
  * オフラインで動作し、トークンコストがかかりません。
  * 意味検索（同義語や類似表現などで検索）はできません。

**選択基準**

| 用途             | 推奨インデックス                  |
| -------------- | ------------------------- |
| 本番環境・デジタルヒューマン | High-Quality              |
| 開発・テスト環境       | Economical（コスト節約）         |
| 専門用語が多い技術文書    | High-Quality + 適切な埋め込みモデル |

## 3. 検索設定

![](/files/YdX1KmFzHjv9SCvY1t5S)

「High Quality」インデックスを選択した場合、検索時にどの技術を使用するかを設定します。

* **Vector Search（ベクトル検索）**
  * クエリとドキュメントの意味的な類似度（Cosine Similarityなど）で検索します。
  * キーワードが完全に一致しなくても、意味が近い情報をヒットさせることができます。
* **Full-text Search（全文検索）**
  * ドキュメント内のキーワードがクエリに含まれているかどうかで検索します。
  * 固有名詞、型番、エラーコードなどの完全一致が必要な場合に有効です。
* **Hybrid Search（ハイブリッド検索）**
  * **推奨設定**: ベクトル検索と全文検索を同時に行い、結果を統合します。
  * **Rerank（再ランク付け）モデルの活用**: Hybrid検索を使用する場合、Rerankモデルの設定が強く推奨されます。検索結果の候補に対して、質問との関連度を再評価して並べ替えることで、精度の高い情報をトップに持ってきます。

## 4. デジタルヒューマン・対話AI向け推奨設定

自然な対話を実現するための推奨設定です。

1. **インデックス**: 必ず **High Quality** を使用する。
2. **チャンク**: 文脈切れを防ぐため、親子分割モードの利用を検討するか、汎用モードで十分な **オーバーラップ**を設定する。
3. **検索方法**: **Hybrid Search + Rerankモデル** を採用し、意味理解と固有名詞の正確さを両立させる。
4. **クリーニング**: ヘッダー、フッター、無意味な記号などはアップロード前に可能な限り除去する。

## 参考情報

* Dify 公式ドキュメント: <https://docs.dify.ai/versions/3-0-x/en/user-guide/knowledge-base/create-knowledge-and-upload-documents/chunking-and-cleaning-text#2-choose-a-chunk-mode>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalhumans.jp/dify-guide/knowledge-base/dify-docs-chunking-and-index-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
