

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# パッセージを取得する
<a name="searching-retrieve"></a>

[https://docs.aws.amazon.com/kendra/latest/APIReference/API_Retrieve.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Retrieve.html) API を、検索拡張生成 (RAG) システムのレトリバーとして使用できます。

RAG システムは、生成系人工知能を使用して質問応答アプリケーションを構築します。RAG システムは、レトリバーと大規模言語モデル (LLM) で構成されています。クエリが指定されると、レトリバーはドキュメントのコーパスから最も関連性が強いテキストのコーパスを特定し、それを LLM に送り、最も有用な答えを提供します。次に、LLM は関連するテキストチャンクまたはパッセージを分析し、クエリに対する包括的なレスポンスを生成します。

`Retrieve` API は、パッセージと呼ばれるテキストのチャンクまたは抜粋を検索し、最も関連性の強い最上位のパッセージをクエリに返します。**

[https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) API と同様に、`Retrieve` API も関連情報の検索を行います。Retrieve API の情報の取得では、クエリのコンテキストと、インデックスが作成されたドキュメントから利用可能なすべての情報が対象となります。ただし、デフォルトでは `Query` API は最大 100 個のトークンワードの抜粋のみを返します。`Retrieve` API を使用すると、最大 200 個のトークンワードの長いパッセージと、最大 100 個のセマンティックに関連するパッセージを取得できます。これには、インデックスからの質問応答や FAQ タイプの回答は含まれません。パッセージは、チャンクとも呼ばれ、複数のドキュメントや同じドキュメントの複数の部分からセマンティックに抽出できるテキストの抜粋です。Kendra の GenAI Enterprise Edition インデックスでは、ベクトルインデックスとキーワードインデックスに対するハイブリッド検索と深層学習モデルによるランク付けを使用して、取得における高精度の結果を実現しています。

`Retrieve` API を使用すると、次のことを実行できます。
+ インデックスレベルでのオーバーライドブースト
+ ドキュメントフィールドまたは属性に基づくフィルタリング
+ ユーザーまたはグループのドキュメントへのアクセスに基づいたフィルタリング
+ 取得したドキュメントの結果の信頼度スコアバケットを表示します。信頼度バケットは、 Amazon Kendra がそのレスポンスがクエリに関連している信頼度を示す相対的なランク付けを提供します。
**注記**  
信頼スコアバケットは現在、英語でのみ利用可能です。

有用な追加情報が得られる可能性のある特定のフィールドをレスポンスに含めることもできます。

`Retrieve` API では現在、次の機能はサポートされていません。[高度なクエリ構文](https://docs.aws.amazon.com/kendra/latest/dg/searching-example.html#searching-index-query-syntax)を使用したクエリ、クエリの[スペル修正の提案](https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html)、[ファセット](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-facets)、[クエリの提案](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html)による検索クエリの自動入力、[増分学習](https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html)。Retrieve API クエリは、分析ダッシュボードには表示されません。

`Retrieve` API は、インデックスに設定した[クエリ容量ユニット](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CapacityUnitsConfiguration.html)の数を共有します。1 つのキャパシティーユニットに含まれる内容と、インデックスのデフォルトの基本容量の詳細については、「[Adjusting capacity](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html)」を参照してください。

**注記**  
Developer Amazon Kendra Edition を使用している場合は容量を追加できません。容量を追加できるのは Amazon Kendra Enterprise Edition を使用している場合のみです。Developer Edition と Enterprise Edition に含まれる内容の詳細については、「[Amazon Kendra Editions](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html#kendra-editions)」を参照してください。

次の例では、`Retrieve` API を使用してクエリ "how does amazon kendra work?" のインデックス内のドキュメントから最も関連性の高い上位 100 件のドキュメントを取得しています。

------
#### [ Python ]

```
import boto3
import pprint

kendra = boto3.client("kendra")

# Provide the index ID
index_id = "index-id"
# Provide the query text
query = "how does amazon kendra work?"
# You can retrieve up to 100 relevant passages
# You can paginate 100 passages across 10 pages, for example
page_size = 10
page_number = 10

result = kendra.retrieve(
        IndexId = index_id,
        QueryText = query,
        PageSize = page_size,
        PageNumber = page_number)

print("\nRetrieved passage results for query: " + query + "\n")        

for retrieve_result in result["ResultItems"]:

    print("-------------------")
    print("Title: " + str(retrieve_result["DocumentTitle"]))
    print("URI: " + str(retrieve_result["DocumentURI"]))
    print("Passage content: " + str(retrieve_result["Content"]))
    print("------------------\n\n")
```

------
#### [ Java ]

```
package com.amazonaws.kendra;

import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.RetrieveRequest;
import software.amazon.awssdk.services.kendra.model.RetrieveResult;
import software.amazon.awssdk.services.kendra.model.RetrieveResultItem;

public class RetrievePassageExample {
    public static void main(String[] args) {
        KendraClient kendra = KendraClient.builder().build();
        
        String indxId = "index-id";
        String query = "how does amazon kendra work?";
        Integer pgSize = 10;
        Integer pgNumber = 10;

        RetrieveRequest retrieveRequest = retrieveRequest
            .builder()
            .indexId(indxId)
            .queryText(query)
            .pageSize(pgSize)
            .pageNumber(pgNumber)
            .build();

        RetrieveResult retrieveResult = kendra.retrieve(retrieveRequest);

        System.out.println(String.format("\nRetrieved passage results for query: %s", query));
        for(RetrieveResultItem item: retrieveResult.resultItems()) {
            System.out.println("----------------------");
            System.out.println(String.format("Title: %s", documentTitle));
            System.out.println(String.format("URI: %s", documentURI));
            System.out.println(String.format("Passage content: %s", content));
            System.out.println("-----------------------\n");
        }
    }
}
```

------