> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-add-new-agent.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ナレッジ検索

<Note> ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/use-dify/nodes/knowledge-retrieval)を参照してください。</Note>

ナレッジ検索ノードを使用して、既存のナレッジベースをワークフローに統合します。このノードは特定のナレッジからクエリに関連する情報を検索し、下流ノード（LLM など）で使用するコンテキスト情報として結果を出力します。

以下はチャットフローでナレッジ検索ノードを使用する例です：

1. **ユーザー入力**ノードがユーザーのクエリを収集します。

2. **ナレッジ検索**ノードが選択されたナレッジベースからユーザーのクエリに関連するコンテンツを検索し、結果を出力します。

3. **LLM** ノードがユーザーのクエリと検索されたナレッジの両方に基づいてレスポンスを生成します。

4. **回答**ノードが LLM のレスポンスをユーザーに返します。

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/1Mn9PbDOxsURxQHH/images/knowledge_retrieval_node_example.png?fit=max&auto=format&n=1Mn9PbDOxsURxQHH&q=85&s=cc1418fd46ea840309ec38cee462a3b7" alt="ナレッジ検索ノードの使用例" width="2022" height="580" data-path="images/knowledge_retrieval_node_example.png" />

ナレッジ検索ノードを使用する前に、少なくとも1つの利用可能なナレッジベースがあることを確認してください。ナレッジベースの作成方法については、[ナレッジ](/ja/use-dify/knowledge/readme#ナレッジの作成)を参照してください。

<Info>
  Dify Cloud では、ナレッジ検索の操作は契約プランに応じたレート制限が適用されます。詳細は[ナレッジリクエストレート制限](/ja/use-dify/knowledge/knowledge-request-rate-limit)を参照してください。
</Info>

## ナレッジ検索ノードの設定

ナレッジ検索ノードを正しく機能させるには、以下を指定する必要があります：

* **何を**検索するか（クエリ）

* **どこを**検索するか（ナレッジベース）

* **どのように**検索結果を処理するか（ノードレベルの検索設定）

また、ドキュメントのメタデータを使用してフィルタベースの検索を有効にし、検索精度をさらに向上させることもできます。

### クエリの指定

選択したナレッジベースでノードが検索するクエリ内容を指定します。

* **クエリテキスト**：テキスト変数を選択します。例えば、チャットフローでは `userinput.query` でユーザー入力を参照したり、ワークフローではカスタムのテキスト型ユーザー入力変数を使用したりできます。

* **クエリ画像**：画像変数を選択します。例えば、ユーザー入力ノードを通じてユーザーがアップロードした画像を使用して画像検索を行います。画像サイズの上限は 2 MB です。

  <Tip>
    セルフホスト環境では、環境変数 `ATTACHMENT_IMAGE_FILE_SIZE_LIMIT` で画像サイズの上限を調整できます。
  </Tip>

  <Info>
    **クエリ画像**オプションは、少なくとも1つのマルチモーダルナレッジベースが追加されている場合のみ利用可能です。

    そのようなナレッジベースには **Vision** タグが付いており、マルチモーダル埋め込みモデルを使用していることを示しています。
  </Info>

### 検索対象のナレッジを選択

クエリに関連するコンテンツを検索するためのナレッジベースを1つ以上追加します。

複数のナレッジベースを追加した場合、まずすべてから同時に検索が行われ、その後[ノードレベルの検索設定](#ノードレベルの検索設定)に従って結果が統合・処理されます。

<Info>
  **Vision** タグが付いたナレッジベースはクロスモーダル検索をサポートしており、セマンティックな関連性に基づいてテキストと画像の両方を検索できます。
</Info>

追加したナレッジベースの横にある**編集**アイコンをクリックすると、[設定](/ja/use-dify/knowledge/manage-knowledge/introduction)を変更できます。

### ノードレベルの検索設定

ナレッジベースから取得された検索結果をノードでどのように処理するかを微調整します。

<Info>
  検索設定には2つのレイヤーがあります——ナレッジベースレベルとナレッジ検索ノードレベルです。

  2つの連続したフィルターと考えてください：ナレッジベースの設定が最初の結果プールを決定し、ノードの設定がさらに結果を再ランク付けまたは絞り込みます。
</Info>

* **Rerank 設定**

  * **加重スコア**：再ランク付け時のセマンティック類似度とキーワード一致の相対的な重み。セマンティックの重みを高くすると意味的な関連性が優先され、キーワードの重みを高くすると完全一致が優先されます。

    <Info>
      **加重スコア**は、追加されたすべてのナレッジベースが高品質タイプの場合にのみ利用可能です。
    </Info>

  * **Rerank モデル**：クエリとの関連度に基づいてすべての結果を再スコアリング・並べ替えする Rerank モデルです。

    <Note>
      マルチモーダルナレッジベースが追加されている場合は、マルチモーダル Rerank モデル（**Vision** タグ付き）も選択してください。そうでないと、検索された画像が再ランク付けと最終出力から除外されます。
    </Note>

* **トップ K**：再ランク付け後に返す上位結果の最大数。Rerank モデルを選択している場合、この値はモデルの最大入力容量（一度に処理可能なテキスト量）に基づいて自動調整されます。

* **スコア閾値**：返される結果の最低類似度スコア。この閾値未満の結果は除外されます。高めの閾値は厳密な関連性を、低めの閾値はより広範なマッチを含めます。

### メタデータフィルタリングの有効化

既存の[ドキュメントメタデータ](/ja/use-dify/knowledge/metadata)を使用して、ナレッジベース内の特定のドキュメントに検索を制限し、検索精度を向上させます。

メタデータフィルタリングを有効にすると、ナレッジ検索ノードはナレッジベース全体ではなく、指定されたメタデータ条件に一致するドキュメントのみを検索します。大規模で多様なナレッジベースでの絞り込み検索に特に有用です。

## 出力

ナレッジ検索ノードは `result` という名前の変数として検索結果を出力します。これはドキュメントチャンクの配列で、各チャンクにはコンテンツ、メタデータ、タイトル、その他の属性が含まれます。

検索結果に画像添付が含まれる場合、`result` 変数には画像の詳細を含む `files` フィールドも含まれます。

## LLM ノードとの連携

LLM ノードで検索結果をコンテキストとして使用するには：

1. **高度な設定** > **コンテキスト**で、ナレッジ検索ノードの `result` 変数を選択します。

2. システム指示で `Context` 変数を参照します。

3. 省略可：LLM が Vision 対応の場合、**Vision** を有効にして検索結果内の画像添付を処理させます。

   <Info>
     検索結果を Vision の入力として指定する必要はありません。**Vision** を有効にすると、LLM は検索された画像を自動的に処理します。
   </Info>

チャットフローでは、ナレッジを参照したレスポンスの横に引用がデフォルトで表示されます。キャンバス右上の**機能**で**引用と帰属**をオフにすることで無効にできます。
