# ハイブリッド検索とRerankの活用

**デジタルヒューマン向けの推奨設定：ハイブリッド検索 + Rerankモデルの組み合わせです。**

ナレッジベースからの回答精度を最大化するための設定ガイドです。デジタルヒューマンなどの高精度な応答が求められる用途では、**「ハイブリッド検索」＋「Rerankモデル（再順位付け）」** の組み合わせを推奨します。

## 1. 推奨される検索構成

### 検索方法（Retrieval Settings）

以下の理由から**ハイブリッド検索**（Hybrid Search）を選択してください。

| モード                                                   | 特徴            | メリット・デメリット                                    | 利用例                                    |
| ----------------------------------------------------- | ------------- | --------------------------------------------- | -------------------------------------- |
| <p><strong>ベクトル検索</strong><br>（Vector Search）</p>     | 意味の類似度で検索     | <p>✅️表記ゆれや言い換えに強い<br>⚠️固有名詞や正確な型番に弱い場合がある</p> | 「休暇の取り方」→「有給休暇の申請方法」もヒット               |
| <p><strong>キーワード検索</strong><br>(Full-Text Search)</p> | 単語の一致で検索      | <p>✅️固有名詞・専門用語に強い<br>⚠️文脈や言い換えを理解できない</p>     | 「ABC-1234」という製品型番の検索                   |
| <p><strong>ハイブリッド検索</strong><br>(Hybrid Search)</p>   | 上記両方を組み合わせて検索 | ✅️**双方の弱点を補完し、最も安定した結果が得られる**                 | Azure AIの実験でもHybrid + Rerankが最も高い精度を記録 |

### Rerankモデル（再順位付け）

Rerankモデルは、検索結果をAIによって再順位付けする機能です。ユーザーの質問と各チャンクの関連性スコアを計算し、本当に関連性の高い情報を上位に持ってきます。一次検索で多めに取得した候補（Top K）に対し、高精度なAIモデルが「質問との関連性」を再計算して並べ替えます。検索結果の精度をさらに高めるため、**Rerank設定を「有効」** にすることを強く推奨します。

### 主なRerankモデル

| モデル                               | 提供元     | 特徴        | 推奨用途           |
| --------------------------------- | ------- | --------- | -------------- |
| **rerank-multilingual-v3.0** (推奨) | Cohere  | 日本語対応、高精度 | デジタルヒューマンに最も推奨 |
| **rerank-english-v3.0**           | Cohere  | 英語特化      | 英語コンテンツに最適     |
| **bge-reranker**                  | BAAI    | オープンソース   | セルフホスト用途に      |
| **Jina Reranker**                 | Jina AI | 多言語対応     | 代替選択肢          |

### Rerankの設定手順

1. ナレッジベースの検索設定を開き、「Rerankモデル」を有効化
2. 使用するモデルを選択（rerank-multilingual-v3.0推奨）
3. Top Kとスコア閾値を調整

## 2. 主要パラメータの設定と調整

### 基本設定項目

**Top K** (取得数):

最終的にLLMに渡すテキストチャンクの数です。Rerank有効時には、やや大きめ（例: 6〜10）に設定し、Rerankで絞り込むのが効果的です。

**Score Threshold** (スコア閾値):

関連性が低い情報を足切りするラインです。0.4 〜 0.7 を目安に調整します。高すぎると「回答なし」になりやすく、低すぎると無関係な情報が混ざります。

### デジタルヒューマン向け推奨設定例

| 設定項目                   | 推奨設定                            |
| ---------------------- | ------------------------------- |
| **Retrieval Settings** | Hybrid Search                   |
| **Rerank Model**       | 有効 (rerank-multilingual-v3.0 等) |
| **Top K**              | 6 〜 10                          |
| **Score Threshold**    | 0.4 〜 0.7                       |

{% hint style="warning" %}
**デジタルヒューマンの応答フロー全体**

全体の処理時間の内訳（概算）

* **音声認識**: 約300ms\\
* **ナレッジ検索 + Rerank**: 約200～500ms\\
* **LLM推論**: 約1～3秒\\
* **音声合成**: 約300ms

Rerankを使用するとAPI呼び出しが増えるため、応答速度が若干（100〜500ms程度）低下します。LLM推論が最大のボトルネックのため、Rerankの影響は相対的に小さいです。ただし、設定によっては遅延を感じることがあります。速度が最優先の場合はRerankの無効化、または軽量なモデルを検討してください。
{% endhint %}

## 3. トラブルシューティング

回答の品質に応じて、以下の手順でパラメータを調整してください。

### ケースA：回答が見つからない / 「知りません」と言われる

1. **Top K を増やす:**\
   より多くの候補を拾うようにします。
2. **スコア閾値を下げる**: 判定を甘くして、情報を拾いやすくします。
3. **データの確認**: ナレッジベースに該当情報が含まれているか、適切なサイズで分割（チャンク化）されているか確認してください。

### ケースB：無関係な情報が混ざる / ハルシネーションが起きる

1. **Top K を減らす**: LLMに渡す情報を絞ります。
2. **スコア閾値を上げる**: 関連性の高い情報だけを厳選します。
3. **Rerank を有効化する**: 未設定ならば必ず有効にし、精度を上げます。

## 4. 参考リソース

詳細な仕様や最新のモデル情報は公式ドキュメントを参照してください。

* **Dify Documentation: Select the Indexing Method and Retrieval Setting**
  * <https://docs.dify.ai/versions/3-0-x/en/user-guide/knowledge-base/create-knowledge-and-upload-documents/setting-indexing-methods#setting-the-indexing-method>
* **Dify Blog: Hybrid Search & Rerank**
  * <https://dify.ai/blog/hybrid-search-rerank-rag-improvement>


---

# 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-use-hybrid-search-and-rerank.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.
