

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

# ナレッジベース用に作成したベクトルストアを使用するための前提条件
<a name="knowledge-base-setup"></a>

ドキュメント変換先のベクトル埋め込みを保存するには、ベクトルストアを使用します。Amazon Bedrock ナレッジベースでは、一部のベクトルストアのクイック作成フローがサポートされるため、これらのベクトルストアのいずれかで Amazon Bedrock によりベクトルインデックスが自動的に作成されるよう設定する場合は、この前提条件をスキップして「[Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する](knowledge-base-create.md)」に進みます。

標準の浮動小数点 (float32) ベクトル埋め込みの代わりにバイナリベクトル埋め込みを保存する場合は、バイナリベクトルをサポートするベクトルストアを使用する必要があります。

**注記**  
Amazon OpenSearch Serverless クラスターと Amazon OpenSearch Managed クラスターは、バイナリベクトルの保存がサポートされる唯一のベクトルストアです。

独自のサポートされているベクトルストアを設定して、データのベクトル埋め込み表現をインデックス化できます。次のデータ用にフィールドを作成できます。
+ 選択した埋め込みモデルによってデータソースのテキストから生成されたベクトル用のフィールド。
+ データソース内のファイルから抽出されたテキストチャンク用フィールド。
+ Amazon Bedrock が管理するソースファイルのメタデータのフィールド。
+ (Amazon Aurora データベースを使用して[メタデータのフィルタリング](kb-test-config.md)を設定する場合) ソースファイルに関連付けるメタデータのフィールド。他のベクトルストアでフィルタリングを設定する場合は、フィルタリングのためにこれらのフィールドを設定する必要はありません。

KMS キーを使用して、サードパーティーのベクトルストアを暗号化できます。詳細については、「[Encryption of knowledge base resources](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-kb.html)」を参照してください。

ベクトルインデックスの作成に使用するベクトルストアサービスに対応するタブを選択します。

**注記**  
埋め込みモデルとベクトルディメンションの選択は、使用可能なベクトルストアの選択に影響を与える可能性があります。希望するベクトルストアを使用できない場合は、互換性のあるオプション (埋め込みモデルとベクトルディメンション) を選択します。

------
#### [ Amazon OpenSearch Serverless ]

1. でアクセス許可を設定し、Amazon OpenSearch Serverless でベクトル検索コレクションを作成するには AWS マネジメントコンソール、「Amazon OpenSearch Service デベロッパーガイド」の[「ベクトル検索コレクションの使用](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html)」のステップ 1 と 2 に従います。コレクションを設定するときは、以下の考慮事項に注意してください。

   1. コレクションに任意の名前と説明を付けます。

   1. コレクションをプライベートにするには、**[セキュリティ]** セクションの **[標準作成]** を選択します。次に、**[ネットワークアクセス設定]** セクションで、**[アクセスタイプ]** として **[VPC]** を選択し、VPC エンドポイントを選択します。Amazon OpenSearch Serverless コレクションの VPC エンドポイントの設定の詳細については、「Amazon OpenSearch Service デベロッパーガイド」の「[Access Amazon OpenSearch Serverless using an interface endpoint (AWS PrivateLink)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html)」を参照してください。

1. コレクションを作成したら、ナレッジベースを作成するときに備えて **[コレクション ARN]** を書き留めます。

1. 左側のナビゲーションペインの **[サーバーレス]** で **[コレクション]** を選択します。次に、ベクトル検索コレクションを選択します。

1. **[インデックス]** タブを選択します。次に、**[ベクトルインデックスを作成]** を選択します。

1. **[ベクトルインデックスの詳細]** セクションで、ベクトルインデックス名フィールドに **[ベクトルインデックスの名前]** を入力します。

1. **[ベクトルフィールド]** セクションで**[ベクトルフィールドの追加]** を選択します。Amazon Bedrock は、データソースのベクトル埋め込みをこのフィールドに保存します。次の設定の詳細を入力します。
   + **ベクトルフィールド名** – フィールドの名前を指定します (例: **embeddings**)。
   + **エンジン** – 検索に使用するベクトルエンジン。**[faiss]** を選択します。
   + **ディメンション** - ベクトルのディメンション (次元) の数。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)
   + **距離メトリクス** - ベクトル間の類似性を測定するために使用されるメトリクス。浮動小数点ベクトル埋め込みには、**ユークリッド**を使用することをお勧めします。

1. **[メタデータの管理]** セクションを展開し、ナレッジベースがベクトルを使用して取得できる追加のメタデータを保存するよう、ベクトルインデックスを設定します。次の表は、各フィールドに対して指定するフィールドと値を示しています。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)

1. ナレッジベースの作成時に、ベクトルインデックス名、ベクトルフィールド名、メタデータ管理マッピングフィールド名に選択した名前を書き留めます。次に **[作成]** を選択します。

ベクトルインデックスを作成したら、[[ナレッジベースの作成]](knowledge-base-create.md) に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。


| フィールド | ナレッジベース設定 (コンソール) の対応するフィールド | ナレッジベース設定 (API) の対応するフィールド | 説明 | 
| --- | --- | --- | --- | 
| コレクション ARN | コレクション ARN | collectionARN | ベクトル検索コレクションの Amazon リソースネーム (ARN)。 | 
| ベクトルインデックス名 | ベクトルインデックス名 | vectorIndexName | ベクトルインデックスの名前。 | 
| ベクトルフィールド名 | ベクトルフィールド | vectorField | データソースのベクトル埋め込みを保存するフィールドの名前。 | 
| メタデータ管理 (最初のマッピングフィールド) | テキストフィールド | textField | データソースから未加工のテキストを保存するフィールドの名前。 | 
| メタデータ管理 (2 番目のマッピングフィールド) | Bedrock が管理するメタデータフィールド | metadataField | Amazon Bedrock が管理するメタデータを保存するフィールドの名前。 | 

Amazon OpenSearch Serverless でのベクトルストアの設定に関する詳細なドキュメントについては、「Amazon OpenSearch Service デベロッパーガイド」の「[Working with vector search collections](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html)」を参照してください。

------
#### [ Amazon OpenSearch Service Managed Clusters ]

**重要**  
OpenSearch マネージドクラスターでドメインリソースを使用する前に、特定の IAM アクセス許可とポリシーを設定する必要があります。詳細については、「[Amazon Bedrock ナレッジベースで OpenSearch マネージドクラスターを使用するために必要な前提条件とアクセス許可アクセス許可設定の概要](kb-osm-permissions-prereq.md)」を参照してください。
データインジェストに障害が発生した場合は、OpenSearch ドメイン容量が不足している可能性があります。この問題を解決するには、より高い IOPS をプロビジョニングし、スループット設定を増やして、ドメインの容量を増やします。詳細については、「[Amazon OpenSearch Service の運用上のベストプラクティス](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/bp.html)」を参照してください。

1.  AWS マネジメントコンソールの OpenSearch クラスターでドメインとベクトルインデックスを作成するには、「*Amazon OpenSearch Service デベロッパーガイド*」の「[OpenSearch Service ドメインの作成と管理](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html)」で説明されているステップに従います。

   ドメインを設定するときは、以下の考慮事項に注意してください。

   1. ドメインに任意の名前を付けます。

   1. [**簡易作成**] オプションを使用して、ドメインの作成をすばやく開始することをお勧めします。
**注記**  
このオプションでは、スループットが低いドメインが作成されます。ワークロードが大きいためにより高いスループットが必要な場合は、[**標準作成**] オプションを選択してください。必要に応じて、後でキャパシティを調整できます。このオプションでは、最小キャパシティから始めて、必要に応じて後で変更できます。

   1. [ネットワーク] では、[**パブリックアクセス**] を選択する必要があります。VPC の背後にある OpenSearch ドメインは、ナレッジベースではサポートされていません。

   1. [**バージョン**] は次のようにします。バイナリベクトル埋め込みを使用している場合、Amazon Bedrock ナレッジベースには Engine バージョン 2.16 以降が必要です。さらに、k-nn インデックスを作成するには 2.13 以降のバージョンが必要です。詳細については、「*Amazon OpenSearch Service デベロッパーガイド*」の「[K-NN 検索](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/knn.html)」を参照してください。

   1. [**デュアルスタックモード**] を使用することをお勧めします。

   1. [**きめ細かなアクセスコントロール**] を有効にしてドメイン内のデータを保護し、OpenSearch ドメインへのアクセスをナレッジベースサービスロールに許可してリクエストを行うアクセス許可をさらに制御することをお勧めします。

   1. その他のすべての設定をデフォルト値のままにし、[**作成**] を選択してドメインを作成します。

1. ドメインが作成されたら、それをクリックして、ナレッジベースの作成時に [**ドメイン ARN**] と [**ドメインエンドポイント**] を書き留めます。

1. ドメインを作成したら、OpenSearch ダッシュボードで次のコマンドを実行するか、curl コマンドを使用してベクトルインデックスを作成できます。詳細については、「[OpenSearch ドキュメント](https://opensearch.org/docs/latest/search-plugins/knn/knn-index/)」を参照してください。

   コマンドを実行するときは、次のようにします。
   + ベクトルフィールドの名前を指定します (例: **embeddings**)。
   + 検索に使用するベクトルが **faiss** であることを確認します。**nmslib** はサポートされていません。
   + ベクトル内のディメンションの数については、次の表を参照し、ベクトルに含めるディメンションの数を決定してください。
**注記**  
Titan V2 埋め込み - テキストモデルでは複数のディメンションがサポートされます。256 または 512 にすることもできます。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)
   + ナレッジベースがベクトルを使用して取得できる追加のメタデータを保存するよう、ベクトルインデックスを設定する 2 つのフィールドを追加できます。次の表は、フィールドと、各フィールドに対して指定する値を示しています。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)

   ```
   PUT /<index-name>
   {
       "settings": {
           "index": {
               "knn": true
           }
       },
       "mappings": {
           "properties": {
               "<vector-name>": {
                   "type": "knn_vector",
                   "dimension": <embedding-dimension>,
                   "data_type": "binary",          # Only needed for binary embeddings
                   "space_type": "l2" | "hamming", # Use l2 for float embeddings and hamming for binary embeddings
                   "method": {
                       "name": "hnsw",
                       "engine": "faiss",
                       "parameters": {
                           "ef_construction": 128,
                           "m": 24
                       }
                   }
               },
   
               "AMAZON_BEDROCK_METADATA": {
                   "type": "text",
                   "index": "false"
               },
               "AMAZON_BEDROCK_TEXT_CHUNK": {
                   "type": "text",
                   "index": "true"            
               }
           }
       }
   }
   ```

1. ドメイン ARN とエンドポイントに加えて、ナレッジベースの作成時にベクトルインデックス名、ベクトルフィールド名、メタデータ管理マッピングフィールド名に選択した名前を書き留めます。

ベクトルインデックスを作成したら、[ナレッジベースの作成](knowledge-base-create.md)に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。


| フィールド | ナレッジベース設定 (コンソール) の対応するフィールド | ナレッジベース設定 (API) の対応するフィールド | 説明 | 
| --- | --- | --- | --- | 
| ドメイン ARN | ドメイン ARN | domainARN | OpenSearch ドメインの Amazon リソースネーム (ARN)。 | 
| ドメインエンドポイント | ドメインエンドポイント | domainEndpoint | OpenSearch ドメインに接続するエンドポイント。 | 
| ベクトルインデックス名 | ベクトルインデックス名 | vectorIndexName | ベクトルインデックスの名前。 | 
| ベクトルフィールド名 | ベクトルフィールド | vectorField | データソースのベクトル埋め込みを保存するフィールドの名前。 | 
| メタデータ管理 (最初のマッピングフィールド) | テキストフィールド | textField | データソースから未加工のテキストを保存するフィールドの名前。 | 
| メタデータ管理 (2 番目のマッピングフィールド) | Bedrock が管理するメタデータフィールド | metadataField | Amazon Bedrock が管理するメタデータを保存するフィールドの名前。 | 

------
#### [ Amazon S3 Vectors ]

Amazon S3 Vectors では、コスト効率の高いベクトルストレージが Amazon S3 に用意されており、ベクトルデータの保存とクエリに使用できます。1 秒未満のクエリパフォーマンスで、大きなベクトルデータセットの耐久性と伸縮自在なストレージが提供されます。Amazon S3 Vectors は、低頻度のクエリワークロードに最適で、検索拡張生成 (RAG) およびセマンティック検索アプリケーションで使用するとコストを削減できます。

Amazon S3 Vectors では、セマンティックの意味と類似性に基づいてクエリできるベクトルインデックスを含む S3 ベクトルバケットが導入されています。インフラストラクチャをプロビジョニングすることなく、ベクトルデータを大規模に保存、アクセス、クエリしながら、1 秒未満のクエリ応答時間を実現し、コストを削減するために使用できます。ベクトルバケット内では、ベクトルデータをベクトルインデックス内で整理できます。ベクトルバケットには複数のベクトルインデックスを含めることができます。詳細については、「*Amazon S3 ユーザーガイド*」の「[Amazon S3 Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)」を参照してください。

**注記**  
Amazon Bedrock と Amazon S3 Vectors の両方が利用可能なすべての AWS リージョンでAmazon S3のナレッジベースを作成できます。Amazon S3 Vectors のリージョンの可用性については、「*Amazon S3 ユーザーガイド*」の「[Amazon S3 Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)」を参照してください。
Amazon Bedrock ナレッジベースで階層チャンキングで非常に高いトークン数を使用する場合、親子チャンク関係と階層コンテキストが Amazon S3 Vectors にフィルタリング不可能なメタデータとして保存されるため、メタデータの最大サイズ制限を超える可能性があります。ベクトルあたりのメタデータサイズ制限の詳細については、*Amazon S3ユーザーガイド*」の[「制限と制限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-limitations.html)」を参照してください。チャンキング戦略については、「[ナレッジベースのコンテンツのチャンキングの仕組み](kb-chunking.md)」を参照してください。
<a name="metadata-support"></a>
**メタデータのサポート**  
メタデータをキーと値のペアとして各ベクトルにアタッチできます。デフォルトでは、メタデータはフィルタリング可能で、類似度検索クエリで使用して、日付、カテゴリ、ユーザー設定などの条件でフィルタリングできます。

ベクトルインデックスの作成時にフィルタリングできないようにメタデータを設定することもできます。Amazon S3 ベクトルインデックスでは、文字列、ブール値、および数値タイプがサポートされます。

Amazon Bedrock ナレッジベースで Amazon S3 Vectors を使用する場合、ベクトルごとに最大 1 KB のカスタムメタデータ (フィルタリング可能なメタデータとフィルタリング不可能なメタデータの両方を含む) と 35 のメタデータキーをアタッチできます。ベクトルあたりのメタデータサイズ制限の詳細については、*Amazon S3ユーザーガイド*」の[「制限と制限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-limitations.html)」を参照してください。

メタデータがこれらの制限を超えると、取り込みジョブはベクトルインデックスの入力時に例外をスローします。詳細については、「*Amazon S3 ユーザーガイド*」の「[Amazon S3 Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)」を参照してください。

**必要なアクセス許可**  
IAM ポリシーで、Amazon Bedrock が S3 ベクトルバケット内のベクトルインデックスにアクセスすることが許可されていることを確認します。必要なアクセス許可の詳細については、「[Amazon Bedrock ナレッジベースのサービスロールを作成する](kb-permissions.md)」を参照してください。

**S3 ベクトルバケットとインデックスを作成する**  
ナレッジベースで Amazon S3 Vectors を使用するには、S3 ベクトルバケットとベクトルインデックスを作成する必要があります。Amazon S3 コンソール、または AWS SDK を使用して AWS CLI、ベクトルバケットとインデックスを作成できます。詳しい手順については、「*Amazon S3 ユーザーガイド*」の「[ベクトルインデックスを作成する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-index-create.html)」を参照してください。

[Amazon S3 コンソール](https://console.aws.amazon.com/s3/vector-buckets#)でベクトルバケットとインデックスを作成するときは、次の考慮事項に注意してください。

1. S3 ベクトルバケットを作成するときは、次の考慮事項に注意してください。
   + 一意の**ベクトルバケット名**を指定します。
   + (オプション) Amazon S3 では、**Amazon S3 マネージドキー (SSE-S3) によるデフォルトのサーバー側暗号化**を使用して、データが自動的に暗号化されます。このデフォルトの暗号化を使用するか、代わりに ** AWS Key Management Service キーによるサーバー側の暗号化 (SSE-KMS)** を使用するかを選択できます。
**注記**  
ベクトルバケットを作成した後、暗号化タイプを変更することはできません。

     step-by-step手順については、[AWS 「KMS キーによる暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-encryption.html)」を参照してください。

1. S3 ベクトルバケットを作成したら、ナレッジベースの作成時にベクトルバケットの **Amazon リソースネーム (ARN)** を書き留めます。

1. 作成したベクトルバケットを選択し、ベクトルインデックスを作成します。ベクトルインデックスを作成するときは、次の考慮事項に注意してください。
   + **インデックスフィールド名** – フィールドの名前を指定します (例: **embeddings**)。
   + **ディメンション** - ベクトルのディメンションの数。ディメンションは 1～4,096 の値にする必要があります。埋め込みモデルの選択内容に基づいてベクトルに含めるディメンションの数を決定するには、次の表を参照してください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)
   + 
**注記**  
Amazon S3 Vectors では浮動小数点埋め込みのみサポートされます。バイナリ埋め込みはサポートされていません。

     **距離メトリクス** - ベクトル間の類似性を測定するために使用されるメトリクス。**コサイン**または**ユークリッド**を使用できます。

1. [**その他の設定**] を展開し、[**フィルタリングできないメタデータ**] フィールドでフィルタリングできないメタデータを指定します。

   最大 10 個のフィルタリングできないメタデータキーを設定できます。[**キーの追加**] を選択し、キーとして `AMAZON_BEDROCK_TEXT` と `AMAZON_BEDROCK_METADATA` を追加します。

1. **[暗号化]** で、**[暗号化タイプを指定する]** を選択します。**[暗号化のバケット設定を使用する]** か、ベクトルインデックスの暗号化設定を上書きするかを選択できます。バケットレベルの設定を上書きする場合は、ベクトルインデックスの暗号化タイプを Key **Management Service AWS キーによるサーバー側の暗号化 (SSE-KMS)** または ** Amazon S3 マネージドキーによるデフォルトのサーバー側の暗号化 (SSE-S3) **として指定できます。ベクトルインデックスの暗号化設定の詳細については、[Amazon S3 Vectors でのデータ保護と暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-data-encryption.html)」を参照してください。

1. **タグ (オプション)** では、キーと値のペアとしてタグを追加して、 AWS 請求情報とコスト管理を使用してベクトルインデックスのコストを追跡および整理できます。**キー**と**値**を入力します。別のタグを追加するには、[**タグの追加**] を選択します。ベクトルインデックスには最大 50 個のタグを入力できます。詳細については、[Amazon S3ベクトルインデックスでのタグ](https://docs.aws.amazon.com/console/s3/vector-index-create-with-tag)の使用」を参照してください。

1. ベクトルインデックスを作成し、ナレッジベースの作成時にベクトルインデックスの **Amazon リソースネーム (ARN)** を書き留めます。

**S3 ベクトルバケットのナレッジベースを作成する**  
この情報を収集したら、[ナレッジベースの作成](knowledge-base-create.md)に進むことができます。S3 ベクトルバケットを使用してナレッジベースを作成するときは、ベクトルバケットの ARN とベクトルインデックスを指定する必要があります。ベクトルインデックスには、データソースから生成された埋め込みが保存されます。次の表は、各情報を入力する場所をまとめたものです。


| フィールド | ナレッジベース設定 (コンソール) の対応するフィールド | ナレッジベース設定 (API) の対応するフィールド | 説明 | 
| --- | --- | --- | --- | 
| ベクトルバケット ARN | S3 ベクトルバケット ARN | vectorBucketArn | S3 ベクトルバケットの Amazon リソースネーム (ARN)。 | 
| ベクトルインデックス ARN | S3 ベクトルインデックス ARN | vectorIndexARN | S3 ベクトルバケットのベクトルインデックスの Amazon リソースネーム (ARN)。 | 

------
#### [ Amazon Aurora (RDS) ]

1. 「[Using Aurora PostgreSQL as a knowledge base](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.VectorDB.html)」の手順に従って、Amazon Aurora データベース (DB) クラスターを作成します。テーブルを作成するときは、次の列とデータ型で設定します。上の表に掲載されている名前の代わりに、希望する列名を使用できます。ナレッジベースの設定時に指定できるように、使用した列名をメモしておきます。

   これらのフィールドは、ナレッジベースを作成する前に指定する必要があります。ナレッジベースが作成されると、フィールドを更新することはできません。
**重要**  
Aurora クラスターは、Amazon Bedrock のナレッジベースが作成されるクラスター AWS アカウント と同じ に存在する必要があります。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)

1. テキストフィールドと埋め込みフィールドの列ベクトルおよびテキストにインデックスを作成する必要があります。カスタムメタデータフィールドを使用している場合は、この列に GIN インデックスも作成する必要があります。GIN インデックスを使用すると、メタデータフィルタリングのために jsonb ドキュメント内のキーと値のペアを効率的に検索できます。詳細については、*PostgreSQL ドキュメント*の「[jsonb インデックス作成](https://www.postgresql.org/docs/current/datatype-json.html#JSON-INDEXING)」を参照してください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)
**注記**  
英語コンテンツでハイブリッド検索の精度とレイテンシーを向上させるには、「simple」の代わりに「english」ディクショナリを使用することを検討してください。  

   ```
   CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('english', chunks));
   ```

1. (オプション) [フィルタリングのためにファイルにメタデータを追加](kb-test-config.md)した場合は、カスタムメタデータフィールドに列名を指定して、すべてのメタデータを 1 つの列に保存することをお勧めします。[データインジェスト](kb-data-source-sync-ingest.md)中、この列にはデータソースのメタデータファイル内のすべての情報が入力されます。このフィールドを指定することにした場合は、この列に GIN インデックスを作成する必要があります。
**注記**  
数値メタデータに対して範囲フィルターを頻繁に使用する場合は、パフォーマンスを最適化するため、特定のキーのインデックスを作成します。例えば、`"lessThan": { "key": "year", "value": 1989 }` などのフィルターを使用する場合は、`year` キーに式インデックスを作成します。詳細については、「*PostgreSQL ドキュメント*」の「[式のインデックス](https://www.postgresql.org/docs/current/indexes-expressional.html)」を参照してください。  

   ```
   CREATE INDEX ON your_table ((custom_metadata->>'year')::double precision
   ```

   または、このフィールド名を指定しない場合は、ファイル内のメタデータ属性ごとに列を作成し、データ型 (テキスト、数値、またはブール値) を指定できます。例えば、属性 `genre` がデータソースに存在する場合は、`genre` という名前の列を追加し、`text` をデータ型として指定します。[データインジェスト](kb-data-source-sync-ingest.md)中、これらの別個の列には対応する属性値が入力されます。

1. Amazon Aurora [と を使用したパスワード管理の手順に従って、Aurora DB AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html)クラスターの AWS Secrets Manager シークレットを設定します。

1. DB クラスターを作成しシークレットを設定したら、次の情報をメモします。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)

------
#### [ Neptune Analytics graphs (GraphRAG) ]

1.  AWS マネジメントコンソールの Neptune Analytics でグラフとベクトルストアを作成するには、「*Neptune Analytics ユーザーガイド*」の「[Neptune Analytics でのベクトルインデックス作成](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/vector-index.html)」で説明されているステップに従います。
**注記**  
Neptune GraphRAG を使用するには、ベクトル検索インデックスを含む空の Neptune Analytics グラフを作成します。ベクトル検索インデックスは、グラフの作成時のみ作成できます。[コンソールで Neptune Analytics グラフ](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/create-graph-using-console.html)を作成するとき、プロセスの最後付近にある [**ベクトル検索設定**] でインデックスディメンションを指定します。

   グラフを作成するときは、次の考慮事項に注意してください。

   1. グラフに任意の名前を付けます。

   1. [**データソース**] で、[**空のグラフを作成**] を選択し、割り当てる m-NCU の数を指定します。m-NCU ごとに、約 1 GiB のメモリ容量と、対応するコンピューティングおよびネットワークがあります。
**注記**  
グラフの容量は後で変更できます。最も小さいインスタンスから開始し、必要に応じて後で別のインスタンスを選択することをお勧めします。

   1. デフォルトのネットワーク接続設定のままにすることができます。Amazon Bedrock は、ナレッジベースを関連付ける Neptune Analytics グラフへのネットワーク接続を作成します。グラフにパブリック接続やプライベートエンドポイントを設定する必要はありません。

   1. [**ベクトル検索設定**] で [**ベクトルディメンションを使用**] を選択し、各ベクトルのディメンション数を指定します。
**注記**  
各ベクトルのディメンションの数は、埋め込みモデルのベクトルディメンションと一致している必要があります。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)

   1. 他のすべての設定をデフォルトのままにして、グラフを作成します。

1. グラフを作成したら、そのグラフをクリックして、ナレッジベースの作成時に [**リソース ARN**] と [**ベクトルディメンション**] を書き留めます。Amazon Bedrock で埋め込みモデルを選択するときは、Neptune Analytics グラフで設定した**ベクトルディメンション**と同じディメンションのモデルを選択してください。

ベクトルインデックスを作成したら、[ナレッジベースの作成](knowledge-base-create.md)に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。


| フィールド | ナレッジベース設定 (コンソール) の対応するフィールド | ナレッジベース設定 (API) の対応するフィールド | 説明 | 
| --- | --- | --- | --- | 
| グラフ ARN | Neptune 分析グラフ ARN | graphARN | Neptune Analytics グラフの Amazon リソースネーム (ARN)。 | 
| メタデータ管理 (最初のマッピングフィールド) | テキストフィールド名 | textField | データソースから未加工のテキストを保存するフィールドの名前。このフィールドには、テキストなどの任意の値を指定できます。 | 
| メタデータ管理 (2 番目のマッピングフィールド) | Bedrock が管理するメタデータフィールド | metadataField | Amazon Bedrock が管理するメタデータを保存するフィールドの名前。このフィールドには、メタデータなどの任意の値を指定できます。 | 

------
#### [ Pinecone ]

**注記**  
を使用する場合Pinecone、お客様は、ベクトルストアサービスを提供するために、お客様に代わって指定されたサードパーティーソースへのアクセスを AWS に許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。

Pinecone でベクトルストアを設定する方法の詳細については、「[Pinecone as a knowledge base for Amazon Bedrock](https://docs.pinecone.io/docs/amazon-bedrock)」を参照してください。

ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
+ **エンドポイント URL** – インデックス管理ページのエンドポイント URL。
+ **認証情報シークレット ARN** – データベースユーザーのユーザー名とパスワード AWS Secrets Manager を含む、 で作成したシークレットの Amazon リソースネーム (ARN)。
+ **(オプション) 認証情報シークレット ARN のカスタマーマネージド KMS キー** – 認証情報シークレット ARN を暗号化した場合は、Amazon Bedrock が復号できるように KMS キーを指定します。
+ **名前空間** - (オプション) データベースに新しいデータを書き込むために使用する名前空間。詳細については、「[Using namespaces](https://docs.pinecone.io/docs/namespaces)」を参照してください。

Pinecone インデックスを作成するときに必要となる追加の設定は以下のとおりです。
+ **テキストフィールド名** – Amazon Bedrock が未加工チャンクテキストを保存するフィールドの名前。
+ **メタデータフィールド名** – Amazon Bedrock がソース属性メタデータを保存するフィールドの名前。

Pinecone インデックスにアクセスするには、 AWS Secrets Managerを使用して Amazon Bedrock に Pinecone API キーを提供する必要があります。

**Pinecone 設定用のシークレットを設定するには**

1. 「 [AWS Secrets Manager シークレットの作成](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)」の手順に従って、 キーを に設定`apiKey`し、 値をPineconeインデックスにアクセスするための API キーとして設定します。

1. この API キーを見つけるには、[Pinecone コンソール](https://app.pinecone.io/)を開いて **[API キー]** を選択します。

1. シークレットを作成したら、作成したシークレットの ARN をメモしておきます。

1. 「[ナレッジベースを含むベクトルストアのシー AWS Secrets Manager クレットを復号するアクセス許可](encryption-kb.md#encryption-kb-3p)」の手順に従って、KMS キーの ARN を復号化する権限をサービスロールにアタッチします。

1. この ARN は、後でナレッジベースを作成するときに、[**認証情報シークレット ARN]** フィールドに入力します。

------
#### [ Redis エンタープライズクラウド ]

**注記**  
を使用する場合Redis Enterprise Cloud、お客様は、ベクトルストアサービスを提供するために、お客様に代わって指定されたサードパーティーソースへのアクセスを AWS に許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。

Redis Enterprise Cloud でのベクトルストアの設定に関する詳細なドキュメントについては、「[Integrating Redis Enterprise Cloud with Amazon Bedrock](https://docs.redis.com/latest/rc/cloud-integrations/aws-marketplace/aws-bedrock/)」を参照してください。

ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
+ **エンドポイント URL** – データベースのパブリックエンドポイント URL。
+ **ベクトルインデックス名** - データベースのベクトルインデックスの名前。
+ **ベクトルフィールド** - ベクトル埋め込みが保存されるフィールドの名前。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/knowledge-base-setup.html)
+ **テキストフィールド** – Amazon Bedrock が未加工テキストのチャンクを保存するフィールドの名前。
+ **Bedrock マネージドメタデータフィールド** – Amazon Bedrock がナレッジベースに関連するメタデータを保存するフィールドの名前。

Redis Enterprise Cloud クラスターにアクセスするには、 AWS Secrets Managerを使用して Redis Enterprise Cloud のセキュリティ設定を Amazon Bedrock に提供する必要があります。

**Redis Enterprise Cloud 設定用のシークレットを設定するには**

1. 「[Transport Layer Security (TLS)](https://docs.redis.com/latest/rc/security/database-security/tls-ssl/)」の手順に従って、Amazon Bedrock でデータベースを使用するように TLS を有効にします。

1. 「 [AWS Secrets Manager シークレットを作成する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)」の手順に従います。シークレット内の Redis Enterprise Cloud 設定の適切な値を使用して、以下のキーを設定します。
   + `username` – Redis Enterprise Cloud データベースにアクセスするためのユーザー名。自身のユーザー名を確認するには、[Redis コンソール](http://app.redislabs.com/) でデータベースの **[セキュリティ]** セクションを参照してください。
   + `password` – Redis Enterprise Cloud データベースにアクセスするためのパスワード。自身のパスワードを確認するには、[Redis コンソール](http://app.redislabs.com/) でデータベースの **[セキュリティ]** セクションを参照してください。
   + `serverCertificate` - Redis Cloud 認証機関からの証明書の内容。「[Download CA certificates](https://docs.redis.com/latest/rc/security/database-security/tls-ssl/#download-certificates)」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。
   + `clientPrivateKey` - Redis Cloud 認証機関からの証明書のプライベートキー。「[Download CA certificates](https://docs.redis.com/latest/rc/security/database-security/tls-ssl/#download-certificates)」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。
   + `clientCertificate` - Redis Cloud 認証機関からの証明書のパブリックキー。「[Download CA certificates](https://docs.redis.com/latest/rc/security/database-security/tls-ssl/#download-certificates)」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。

1. シークレットを作成したら、そのシークレットの ARN を書き留めます。この ARN は、後でナレッジベースを作成するときに、[**認証情報シークレット ARN]** フィールドに入力します。

------
#### [ MongoDB Atlas ]

**注記**  
MongoDB Atlas を使用する場合は、ベクトルストアサービスをお客様に提供するために、お客様に代わって指定されたサードパーティーソースへのアクセスを AWS に許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。

MongoDB Atlas でのベクトルストアの設定に関する詳細なドキュメントについては、「[MongoDB Atlas と Amazon Bedrock を使用して完全マネージド型 RAG ワークフローを起動する](https://www.mongodb.com/developer/products/atlas/rag-workflow-with-atlas-amazon-bedrock/)」を参照してください。

ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
+ **エンドポイント URL** – MongoDB Atlas クラスターのエンドポイント URL。
+ **データベース名** – MongoDB Atlas クラスター内のデータベースの名前。
+ **コレクション名** – データベース内のコレクションの名前。
+ **認証情報シークレット ARN** – MongoDB Atlas クラスター内のデータベースユーザーのユーザー名とパスワード AWS Secrets Manager を含む、 で作成したシークレットの Amazon リソースネーム (ARN)。シークレットには、`username` および `password` という名前のキーが含まれている必要があります。
+ **(オプション) 認証情報シークレット ARN のカスタマーマネージド KMS キー** – 認証情報シークレット ARN を暗号化した場合は、Amazon Bedrock が復号できるように KMS キーを指定します。

MongoDB Atlas インデックスを作成するときに提供する必要がある**フィールドマッピング**の追加の設定は以下のとおりです。
+ **ベクトルインデックス名** – コレクション上の MongoDB Atlas ベクトル検索インデックスの名前。
+ **ベクトルフィールド名** – Amazon Bedrock がベクトル埋め込みを保存するフィールドの名前。
+ **テキストフィールド名** – Amazon Bedrock が未加工チャンクテキストを保存するフィールドの名前。
+ **メタデータフィールド名** – Amazon Bedrock がソース属性メタデータを保存するフィールドの名前。
+ **(オプション) ベクトル検索インデックス名** – コレクションの MongoDB Atlas ベクトル検索インデックスの名前。

**重要**  
MongoDB Atlas ナレッジベースでメタデータフィルタリングを使用する予定の場合は、ベクトルインデックスでフィルタを手動設定する必要があります。メタデータフィルタリングはデフォルトでは機能しないため、MongoDB Atlas ベクトルインデックス設定で追加のセットアップが必要です。

(オプション) Amazon Bedrock を MongoDB Atlas クラスターに接続するには AWS PrivateLink、[「Amazon Bedrock を使用した MongoDB Atlas での RAG ワークフロー](https://www.mongodb.com/developer/products/atlas/rag-workflow-with-atlas-amazon-bedrock/)」を参照してください。

------