---
title: 知識検索
---

## はじめに

知識検索ノードを使用すると、既存のナレッジベースを Chatflow や Workflow に統合できます。

このノードは指定されたナレッジからクエリに関連する情報を検索し、その結果を下流ノード（例：LLM）で利用できるコンテキスト情報として出力します。

以下は Chatflow における 知識検索ノード の利用例です：

1. **ユーザー入力** ノードがユーザーの質問を収集します。

2. **知識検索** ノードが選択されたナレッジベースから関連情報を検索し、結果を出力します。

3. **LLM** ノードがユーザー質問と検索結果の両方をもとに回答を生成します。

4. **回答** ノードが LLM の出力をユーザーへ返します。

![知識検索ノードの使用例](/images/knowledge_retrieval_node_example.png)

<Info>
    知識検索ノードを使用する前に、少なくとも1つの利用可能なナレッジベースが存在することを確認してください。

    ナレッジベースの作成方法については、[ナレッジ](/ja-jp/guides/knowledge-base/readme#ナレッジの作成) を参照してください。
</Info>

## 知識検索ノードの設定

知識検索ノードを正常に機能させるには、次の3点を指定する必要があります：

- **何を検索するか**（クエリ）
- **どこを検索するか**（ナレッジベース）
- **どのように検索結果を処理するか**（ノードレベルの検索設定）

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

### クエリの指定

ノードが選択されたナレッジベースで検索する対象を指定します。

- **クエリテキスト**：テキスト変数を選択します。たとえば、Chatflow では `userinput.query`（ユーザー入力ノードの入力）を指定できます。Workflow ではテキスト型のユーザー入力変数を利用します。

- **クエリ画像**：画像変数を指定して画像検索を行います。ユーザーがアップロードした画像などを使用できます。最大サイズは 10 MB です。  

    <Tip>
        自己ホスティング環境では、環境変数 `UPLOAD_IMAGE_FILE_SIZE_LIMIT` を変更することで画像サイズ上限を調整できます（デフォルト値：10）。
    </Tip>

    <Info>
        **クエリ画像**オプションは、追加されたナレッジベースのうち少なくとも1つが画像検索に対応している場合のみ利用可能です。
    
        画像検索対応のナレッジベースは **Vision** アイコンで表示され、画像埋め込みに対応した埋め込みモデルを使用しています。
    </Info>

### 検索対象ナレッジベースの選択

ノードで検索対象とするナレッジベースを1つ以上追加します。

<Info>
    **Vision** アイコンが付いたナレッジベースは画像検索に対応しており、テキストや画像をクエリとして利用することで、意味的に関連するテキストや画像を検索・取得できます。
</Info>

<Tip>
    ノード内で任意のナレッジベースの **編集** アイコンをクリックすると、直接その設定を変更できます。

    設定項目の詳細は [ナレッジ設定の管理](/ja-jp/guides/knowledge-base/knowledge-and-documents-maintenance/readme) および [インデックス方法と検索設定を指定](/ja-jp/guides/knowledge-base/create-knowledge-and-upload-documents/setting-indexing-methods) を参照してください。
</Tip>

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

ナレッジベースから取得した検索結果を、ノード内でどのように絞り込み・再ランク付けするかを調整できます。

<Info>
    検索設定には2つのレイヤー（階層）があります。

    ナレッジベースレベルの設定が最初の検索プールを決定し、ノードレベルの設定がその結果を再スコアリングまたは絞り込みします。
</Info>

- **Rerank 設定**

    - **ウェイト設定**: 再ランク付け時におけるセマンティック類似度（意味の近さ）とキーワード一致の比重を調整します。セマンティックの比重を高くすると意味的関連性を重視し、キーワードの比重を高くすると正確な一致を重視します。

        <Info>
            **ウェイト設定** は、追加したナレッジベースがすべて「高品質」タイプである場合に利用できます。
        </Info>

    - **Rerank モデル**: クエリとの関連度に基づいてすべての検索結果を再スコアリング・並べ替えします。

        <Note>
            検索結果に画像が含まれる可能性がある場合は、**Vision** アイコン付きのリランキングモデルを選択してください。そうでない場合、取得された画像はリランキングおよび最終出力から除外されます。
        </Note>

- **トップ K**: 再ランク後に返す最大件数を指定します。 Rerank モデルを選択している場合、この値はモデルが処理可能な最大入力サイズ（トークン上限）に応じて自動的に調整されます。

- **スコア閾値**: 結果を返す際の最低スコア（類似度）を指定します。この閾値未満の結果は除外されます。高めに設定すると関連性の厳密な検索が行われ、低めにするとより広範なマッチを含めることができます。

<Info>
    複数のナレッジベースを追加した場合、まずそれぞれから同時に検索を行い、結果を統合して上記設定に基づいて再ランク付けが行われます。
</Info>

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

ナレッジベース内のドキュメントメタデータを利用して、特定の条件に合致するドキュメントのみを検索対象とすることができます。これにより、大規模または多様なナレッジベース内での検索精度が向上します。

<Info>
    ドキュメントメタデータの作成と管理については、[メタデータ](/ja-jp/guides/knowledge-base/metadata) を参照してください。
</Info>

## 出力

知識検索ノードの出力は `result` という変数として返されます。この変数は検索されたドキュメントチャンクの配列で、各チャンクには内容・メタデータ・タイトルなどの情報が含まれます。

検索結果に画像が含まれる場合、`result` 変数に `files` フィールドが追加され、取得された画像情報が格納されます。

## LLM ノードとの連携

検索結果を活用して LLM ノードで質問応答を行うには：

1. **コンテキスト** フィールドで、知識検索ノードの `result` 変数を選択します。

2. プロンプト入力欄で、`コンテキスト` 変数とユーザー入力変数（例：Chatflow の `userinput.query`）の両方を参照します。

<img src="/images/llm_node_configuration_example.png" alt="LLM ノード設定の例" width="400"/>

<Note>
    知識検索の呼び出しには、契約プランに応じたリクエスト上限（レートリミット）が適用されます。
    
    詳細は [ナレッジベースの要求頻度制限](/ja-jp/guides/knowledge-base/knowledge-request-rate-limit) を参照してください。
</Note>

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

---

[このページを編集する](https://github.com/langgenius/dify-docs/edit/main/ja-jp/guides/workflow/node/knowledge-retrieval.mdx) | [問題を報告する](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)

