

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

# 検索機能と制限
<a name="search-features-limits"></a>

## 検索の可用性
<a name="search-availability"></a>

ElastiCache Valkey バージョン 9.0 以降では、すべての AWS リージョンのノードベースのクラスターで、数値、タグ (完全一致）、全文、ベクトル検索、集計を含む純粋な非ベクトル、ベクトル、ハイブリッドワークロードが追加料金なしでサポートされています。

ElastiCache Valkey バージョン 8.2 では、すべての AWS リージョンのノードベースのクラスターでのベクトル検索が追加料金なしでサポートされています。

任意のバージョンの Valkey、または Redis OSS から上記の Valkey バージョンに[数回クリックするだけでダウンタイムなしで](VersionManagement.HowTo.md)アップグレードすることで、既存のクラスターの検索を使用することもできます。

検索は現在、データ階層化を使用するノード以外のすべての ElastiCache インスタンスタイプで使用できます。t2、t3、および t4g インスタンスで検索を使用するには、メモリリザーブをマイクロインスタンスの場合は少なくとも 50%、スモールインスタンスの場合は 30% に増やす必要があります。詳細については、[このページ](redis-memory-management.md)を参照してください。

## パラメトリック制限
<a name="parametric-restrictions"></a>

次の表は、さまざまな検索項目の制限を示しています。


**検索制限**  

| Item | 最大値 (9.0 以上) | 最大値 (8.2) | 
| --- | --- | --- | 
| ベクトルの次元の数 | 32768 | 32768 | 
| 作成できるインデックスの数 | 1,000 | 10 | 
| インデックス内のフィールドの数 | 1,000 | 50 | 
| FT.SEARCH TIMEOUT 句 (ミリ秒) | 60000 | 60000 | 
| インデックスごとに許可されるプレフィックスの最大数 | 16 | 16 | 
| タグフィールドの最大長 | 10000 | 10000 | 
| 数値フィールドの最大長 | 256 | 256 | 
| HNSW M パラメータ | 2000000 | 2000000 | 
| HNSW EF\_CONSTRUCTION パラメータ | 1000000 | 4096 | 
| HNSW EF\_RUNTIME パラメータ | 1000000 | 4096 | 
| FT.SEARCH/FT.AGGREGATE コマンドのクエリ文字列で使用できる用語の数 | 1,000 | 16 | 
| インデックスごとに許可されるテキスト属性の数 | 64 | NA | 
| プレフィックス、サフィックス、ファジー、およびステムターム検索の最大テキスト単語拡張 | 200 | NA | 

## オペレーションの制限
<a name="operational-restrictions"></a>

### インデックスの永続化とバックフィル
<a name="index-persistence-backfilling"></a>

詳細については、[Valkey 検索インデックスの作成とバックフィル](https://valkey.io/topics/search/#index-creation-and-backfill)を参照してください。

### [Scaling limits]（スケーリング履歴）
<a name="scaling-limits"></a>

ElastiCache Valkey バージョン 9.0 では、スケーリングイベント中に、書き込み RPS がイベントの期間中に減少することがあります。ElastiCache Valkey バージョン 8.2 では、スケーリングイベント中に、データが移行されるとインデックスがバックフィルされ、検索クエリの再現率が低下する可能性があります。

### スナップショットのインポート/エクスポートとライブ移行
<a name="snapshot-import-export"></a>

検索インデックスを持つ 1 つのクラスターの RDB ファイルは、バージョン 8.2 以降の別の ElastiCache Valkey クラスターにインポートできます。新しいクラスターは、RDB ファイルをロードするときにインデックスの内容を再構築します。ただし、RDB ファイル内に検索インデックスが存在すると、そのデータと Valkey の以前のバージョンとの互換性が制限されます。ベクトル検索機能によって定義された検索インデックスの形式は、Valkey バージョン 8.2 以降を持つ別の ElastiCache クラスターによってのみ認識されます。ただし、インデックスを含まない RDB ファイルについては、このような制限はありません。

### バックフィル中のメモリ不足
<a name="out-of-memory-backfill"></a>

Valkey OSS の書き込みオペレーションと同様に、インデックスバックフィルはメモリ不足の影響を受けま。バックフィルの進行中にエンジンメモリがいっぱいになると、すべてのバックフィルが一時停止します。メモリが使用可能になると、バックフィルプロセスが再開されます。メモリ不足でバックフィルが一時停止されているときは、インデックスを削除するができます。

### 取引
<a name="transactions"></a>

コマンド `FT.CREATE`および は`FT.DROPINDEX`、トランザクションコンテキストで実行することはできません。つまり、`MULTI/EXEC`ブロック内や LUA または FUNCTION スクリプト内で実行することはできません。さらに、 コマンド`FT.SEARCH`と `FT.AGGREGATE` コマンドは、クラスターモードで動作している ElastiCache Valkey クラスターのトランザクションコンテキストでは実行できません。

## 検索セキュリティ
<a name="search-security"></a>

コマンドアクセスとデータアクセスの両方のための [Valkey ACL (アクセスコントロールリスト)](https://valkey.io/topics/acl/) セキュリティメカニズムは、検索機能を制御するために拡張されています。個々の検索コマンドの ACL コントロールは完全にサポートされています。新しい ACL カテゴリ `@search` が提供され、既存のカテゴリの多く (`@fast`、`@read`、`@write` など) が新しいコマンドを含むように更新されます。検索コマンドはキーデータを変更しません。これは、書き込みアクセス用の既存の ACL 機構が保持されることを意味します。`HASH` および `JSON` オペレーションのアクセスルールは、インデックスが存在することで変更されることはありません。これらのコマンドには、通常のキーレベルのアクセスコントロールが引き続き適用されます。

また、インデックスを使用した検索コマンドでは、ACL を通じてアクセスが制御されます。アクセスチェックは、キーごとのレベルではなく、インデックス全体のレベルで実行されます。これは、そのインデックスのキースペースプレフィックスリストに含まれているすべての可能なキーにアクセスするための許可がユーザーに付与されている場合にのみ、インデックスに対するアクセスがユーザーに付与されることを意味します。つまり、インデックスの実際の内容はアクセスを制御しません。むしろ、これは、セキュリティチェックのために使用されるプレフィックスリストによって定義されるインデックスの理論的な内容です。キーに対する読み取りおよび/または書き込みアクセスがユーザーに付与されているにもかかわらず、そのキーを含むインデックスにアクセスできないという状況が起こりえます。インデックスの作成または使用にはキースペースに対する読み取りアクセスのみが必要であり、書き込みアクセスの有無は考慮されないことに留意してください。