翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ベクター検索の機能と制限
ベクトル検索が利用可能なリージョン
Amazon ElastiCache のベクトル検索は、すべてのAWSリージョンのノードベースのクラスターで Valkey バージョン 8.2 で追加料金なしで利用できます。また、数回のクリックでダウンタイムなしで Valkey の任意のバージョンまたは Redis OSS から Valkey 8.2 にアップグレードすることにより、既存のクラスターでベクトル検索を使用することもできます。
ベクトル検索は現在、データ階層化を持つノード以外のすべての ElastiCache インスタンスタイプで使用できます。t2、t3、および t4g インスタンスでベクトル検索を使用するには、メモリ予約をマイクロインスタンスの場合は 50% 以上、小さいインスタンスの場合は 30% 以上に増やす必要があります。詳細については、このページを参照してください。
パラメトリック制限
次の表は、プレビューにおけるさまざまなベクトル検索項目の制限を示しています。
| Item | 最大値 |
|---|---|
| ベクトルの次元の数 | 32768 |
| 作成できるインデックスの数 | 10 |
| インデックス内のフィールドの数 | 50 |
| FT.SEARCH TIMEOUT 句 (ミリ秒) | 60000 |
| インデックスごとに許可されるプレフィックスの最大数 | 16 |
| タグフィールドの最大長 | 10000 |
| 数値フィールドの最大長 | 256 |
| HNSW M パラメータ | 2000000 |
| HNSW EF_CONSTRUCTION パラメータ | 4096 |
| HNSW EF_RUNTIME パラメータ | 4096 |
オペレーションの制限
インデックスの永続化とバックフィル
更新プロセスには 3 つのステップがあります。最初のステップでは、HASH または JSON キーが変更され、リクエスト元のクライアントがブロックされます。2 番目のステップはバックグラウンドで実行され、変更されたキーを含む各インデックスをそれぞれ更新します。3 番目のステップでは、クライアントはブロック解除されます。したがって、ミューテーションと同じ接続で実行されるクエリオペレーションの場合、その変更はすぐに検索結果に表示されます。ただし、キーの挿入または更新は、短期間ではありますが、他のクライアントの検索結果に表示されない場合があります。システム負荷および/またはデータのミューテーションが多い期間中は、表示できるようになるまでの遅延が長くなる可能性があります。
ベクトル検索機能は、インデックスの定義とインデックスの内容を保持します。ベクトルフィールドのインデックスは保存されますが、TAGS および NUMERIC のインデックスは保存されません。つまり、外部でロードされるとき (完全同期または再ロード) に、インデックスを再構築する必要があります。つまり、ノードの起動または再起動を引き起こすオペレーションリクエストまたはイベント中に、ベクトルのインデックス定義と内容が最新のスナップショットから復元されます。これを開始するには、ユーザーアクションは必要ありません。ただし、TAGS および NUMERIC のインデックスの場合、再構築はデータが復元されるとすぐにバックフィルオペレーションとして実行されます。これは、定義されたインデックスごとに FT.CREATE コマンドを自動的に実行するシステムと機能的に同等です。データが復元されるとノードはアプリケーションのオペレーションにすぐに利用可能になりますが、インデックスのバックフィルが完了する前である可能性が高いため、アプリケーションが再びバックフィルオペレーションを認識できるようになることにご注意ください。
インデックスバックフィルの完了は、プライマリとレプリカの間で同期されません。この同期の欠如は予期せずアプリケーションにとって認識可能になる可能性があるため、検索オペレーションを開始する前に、アプリケーションでプライマリとすべてのレプリカでバックフィルが完了したことを検証することをお勧めします。
[Scaling limits](スケーリング履歴)
スケーリングイベント中、データが移行されるとインデックスのバックフィルが行われる場合があります。これは、検索クエリの再現率の低下につながります。
スナップショットのインポート/エクスポートとライブ移行
検索インデックスを持つ 1 つのクラスターの RDB ファイルは、バージョン 8.2 以降の別の ElastiCache Valkey クラスターにインポートできます。新しいクラスターは、RDB ファイルをロードするときにインデックスの内容を再構築します。ただし、RDB ファイル内に検索インデックスが存在すると、そのデータと Valkey の以前のバージョンとの互換性が制限されます。ベクトル検索機能によって定義された検索インデックスの形式は、Valkey バージョン 8.2 以降を持つ別の ElastiCache クラスターによってのみ認識されます。ただし、インデックスを含まない RDB ファイルについては、このような制限はありません。
バックフィル中のメモリ不足
Valkey OSS の書き込みオペレーションと同様に、インデックスバックフィルはメモリ不足の影響を受けま。バックフィルの進行中にエンジンメモリがいっぱいになると、すべてのバックフィルが一時停止します。メモリが使用可能になると、バックフィルプロセスが再開されます。メモリ不足でバックフィルが一時停止されているときは、インデックスを削除するができます。
トランザクション
コマンド FT.CREATE、FT.DROPINDEX、FT.ALIASADD、FT.ALIASDEL、および FT.ALIASUPDATE は、トランザクションコンテキストでは実行できません。すなわち、MULTI/EXEC ブロック内、または LUA もしくは FUNCTION スクリプト内では実行できません。