以降のセクションでは、ターゲットオブジェクト別の制限と互換性の相違点を要約し、本番環境に適用する前に選択肢を評価し、準備状況を確認できるようにします。各 API のパラメータ表には、対応する値の範囲も記載されています。製品バージョン、Elasticsearch API の互換性、推奨クライアントバージョンについては、Versions and compatibility をご参照ください。宣言されているバージョン互換性範囲内で、利用可能な標準 API を使用してください。明示的にドキュメント化されていない互換性または移行シナリオについては、チケットを提出して確認してください。
ステートフル Elasticsearch との相違点
Agent Engine Edition はステートレスアーキテクチャを採用しています。移行時は、次の機能、インデックス設定、および運用方法に注意してください。その他の API は Versions and compatibility の説明に従って使用してください。パラメータの制限については、該当する API リファレンスをご参照ください。
|
ステートフル Elasticsearch の機能または設定 |
Agent Engine Edition における相違点 |
推奨事項 |
|
インデックスライフサイクル管理、 |
ILM ポリシーの管理と実行はサポートされていません。関連 API は登録されておらず、 |
ログおよび時系列データの保持期間は Data Stream Lifecycle で管理してください。通常のインデックスについては、外部のスケジューリングタスクから Rollover と Delete Index を呼び出してください。 |
|
ホット、ウォーム、コールド、フローズンのデータ階層、および |
従来の |
永続データにはオブジェクトストレージを使用し、インデックスノードとクエリノードを分けて計画してください。履歴データは、ビジネスの保持ポリシーに従って管理してください。 |
|
Watcher |
Watcher のトリガー、条件、および通知の実行チェーンはサポートされていません。関連 API は登録されていません。 |
CloudMonitor、Simple Log Service (SLS) アラート、エンタープライズ向けのアラートプラットフォーム、または外部のスケジュールタスクを使用してください。 |
|
従来の Stack Monitoring のローカル収集パス |
|
コンソールのモニタリングとログを使用してください。アプリケーション側の可観測性が必要な場合は、クラスターのヘルス API とノード統計 API を使用してください。API reference をご参照ください。 |
|
Rollup ジョブおよび |
従来の Rollup ジョブとそのクエリ API はサポートされていません。関連 API は登録されていません。 |
データタイプに応じて、Downsample、Transform、または外部の集計タスクを選択してください。 |
|
検索可能スナップショット、スナップショットのマウント、およびフローズンフェーズの遷移 |
検索可能スナップショットのマウントのセマンティクスはサポートされていません。マウント API は登録されておらず、フローズン階層のプロセスを再利用することもできません。 |
オンラインデータは、ネイティブのオブジェクトストレージインデックスを直接使用します。すべてのコレクションのバックアップとリストアは、テクニカルサポートの支援を受けて実施します。Back up and restore Collections をご参照ください。 |
|
|
クエリレプリカは、ノード数に基づいて自動的に拡張されません。有効化した場合、レプリカ数を |
|
|
|
translog の耐久性を |
bulk サイズ、同時実行数、refresh 頻度、シャード計画、およびインデックスノードの容量により、書き込みスループットを最適化してください。 |
|
|
Agent Engine Edition のデフォルトは |
オンラインワークロードでは自動 refresh を維持し、推奨間隔は |
|
|
書き込みパスでは、レプリカの待機条件として使用されません。 |
書き込みレスポンスを確認し、バックグラウンド refresh 後に実際のクエリで可視性を検証してください。同期的な待機が必要な場合は、Refresh and query visibility の説明に従って |
前述の表で「適用されない」と示したインデックスまたはクラスター設定については、変更リクエストが HTTP 200 を返し、読み戻し時に新しい値が表示される場合があります。これをもって機能が有効化されたと判断しないでください。
また、ステートレスアーキテクチャにおけるレプリカは主にクエリおよびキャッシュに使用され、プライマリーシャードに昇格可能なステートフル Elasticsearch の永続レプリカとは同等ではありません。クエリレプリカ数とクエリノードによって、クエリ容量と可用性が決まります。永続データはオブジェクトストレージに保存されるため、レプリカ数の増加をバックアップ戦略の代替として使用することはできません。
インデックスとベクトルフィールド
通常のインデックスおよびコレクションのベクトルフィールドには、次の制約が適用されます。
|
制約 |
制限 |
|
|
|
|
DiskBBQ の |
0~100。クエリ値は、明示的に |
フィールド設定とクエリパラメータについては、Vector fields and KNN をご参照ください。
コレクションとスライス
命名規則とバッチ制限
|
制約 |
制限 |
|
コレクション名 |
Elasticsearch のインデックスおよびエイリアスの命名規則に従い、小文字で 128 バイト以下にする必要があります。また、システム予約の |
|
スライス名 |
1~128 文字。先頭と末尾の文字は英字または数字である必要があります。中間の文字には、英字、数字、 |
|
単一 Search におけるスライス数 |
最大 1024。URL パラメータとして渡す場合は、HTTP リクエスト行の長さ制限の影響も受けます。この制限のデフォルトは |
|
単一 Bulk で自動作成される不足スライス数 |
最大 512。既存のスライスはカウントされません。 |
|
単一バッチで登録されるスライス数 |
最大 20480。リクエスト内で名前の重複はできません。 |
|
List Slices API の |
1~10000。 |
|
Slice CAT が返す行数 |
最大 10000 行。ページネーションは提供されません。 |
|
Collection および Backing CAT の展開範囲 |
バッキングインデックスが 10000 を超える場合、HTTP 400 を返します。 |
|
スライス削除時の |
5 分以内の有限値である必要があります。 |
|
バッキングインデックスの事前作成における |
1~99999。指定できるのは 1 回のみで、クエリパラメータまたはリクエストボディのいずれかに指定できます。 |
Slice CAT の実際の処理上限は、システム管理のメタデータインデックスの index.max_result_window、およびターゲットのバッキングインデックスの index.max_terms_count と search.max_buckets によっても制約されます。これらの設定をさらに下げると、クエリ範囲が狭まるか、リクエストが失敗します。
API サポート範囲
-
DLS/FLS はコレクションでは使用できません。DLS/FLS 制限を含むロールは正常に作成できますが、そのロールを持つユーザーがコレクションにアクセスすると HTTP 403 を受け取ります。
-
コレクションはクラスター間検索 (CCS) をサポートしていません。
remote:collection形式のターゲットはコレクションとして認識されず、通常は「CCS not supported」という明示的なメッセージではなく、存在しないリモートインデックスとして表示されます。 -
Point in Time (PIT) はコレクションを直接ターゲットにできません。リクエストは HTTP 400 を返します。この制限は、Branch を使用しているかどうかとは無関係です。
-
_graph/exploreと_termvectorsはコレクションをターゲットにできません。また、_mtermvectorsにコレクション項目を含めることはできません。 -
コレクションは、非推奨の
_knn_searchをサポートしていません。代わりに、_searchリクエストのknnを使用してください。 -
Explain で指定できるのは単一のスライスのみです。カンマ区切りのリストや
_slice=_allはサポートされません。また、_sliceを省略した場合にすべてのスライスをクエリするクラスター設定も適用されません。 -
ネイティブの Delete Index、Close/Open、Resize、または Index Blocks を、コレクションまたはバッキングインデックスに対して直接使用することはできません。コレクションのライフサイクルは Collection API で管理する必要があります。
-
Collection Reindex はスクリプトをサポートしていません。ターゲットがコレクションの場合、明示的な ingest パイプラインはサポートされません。
source._sliceはリモートソースではサポートされません。 -
Slice CAT は、スライス別のストレージサイズのカウントや、スライスのストレージサイズによるソートをサポートしていません。ストレージサイズをカウントする必要がある場合は、CAT observability のバッキングインデックス統計を使用してください。
sliced postings
index.sliced_postings.enabled はコレクションの作成時にのみ設定でき、後から変更できません。有効化すると、completion フィールドと、fielddata: true を持つ text フィールドはサポートされません。index.codec は default、legacy_default、best_compression、または legacy_best_compression のみをサポートします。デフォルト値と設定例については、Optimize text search within a specified Slice をご参照ください。
コレクションエイリアス
-
単一のエイリアスで、通常のインデックスとコレクションを混在させることはできません。コレクションメンバーは同じ
slice_strategyを使用する必要があります。また、ベクトルクラスター再現率モードのメンバーは、ベクトル次元も同一である必要があります。 -
エイリアスの
filter、routing、index_routing、search_routing、is_hidden、およびremove_indexはサポートされません。 -
単一ドキュメントの GET および MGet では、各項目が 1 つのコレクションに一意に解決される必要があり、複数メンバーのエイリアスは使用できません。
is_write_indexは、単一ターゲットの読み取りでメンバーを選択しません。
エイリアスの作成、書き込みターゲットの指定、読み取り/書き込みトラフィックの切り替え操作については、Collection Alias をご参照ください。
Copy Slice
|
制約 |
制限 |
|
|
それぞれ 1~64、1~10000。タスク実行中に |
|
コピー範囲 |
ソースとターゲットは同一のコレクション内にある必要があります。コレクション間コピーはサポートされません。 |
|
ソースデータの表現 |
ドキュメントを再構成できる |
|
トラフィック切り替え |
Copy は、トラフィックのアトミックな切り替えを提供せず、ソースへの後続の書き込みを継続的に同期しません。 |
Branch Slice (Beta)
ソースとターゲットは同一のコレクションに属し、マッピングとインデックス設定を共有する必要があります。ターゲットは新しい名前を使用する必要があります。両者は同じバッキングインデックスの同じシャードに存在します。ソースが存在するバッキングインデックスの index.routing_partition_size は 1 (デフォルト) である必要があります。1 より大きい場合、Branch の作成はサポートされません。
Branch リソース制限
以下は Branch のハードリミットです。制限に達すると、拒否されるのは 新規 Branch 作成 のみであり、既存 Branch とそのデータの読み取り/書き込みは継続して提供されます。
|
制約 |
制限 |
|
単一のブランチ関係における継承レベル数 |
最大 8。これを超える新規リクエストは HTTP 409 を返します。ソースを通常のスライスに変換した後に再試行してください。 |
|
シャードあたり同時に準備できる Branch 数 |
最大 2。これを超えると HTTP 429 を返します。 |
|
シャードあたりのアクティブまたは作成中の Branch 数 |
最大 1024。これを超えると HTTP 429 を返します。 |
|
シャードあたりの Branch メタデータサイズ |
新規リクエストにより 128 MiB を超えることが見込まれる場合、リクエストは HTTP 409 を返し、ターゲットは公開されません。 |
|
Branch 作成時の |
有限値である必要があります。タイムアウトは、作成がロールバックされたことを意味しません。 |
バックグラウンドで通常のスライスへ自動変換される条件 (作成時間、シャドウ化された継承ドキュメント数、Branch メタデータサイズ) は、制限ではありません。条件に達しても変換が直ちに完了するとは限らず、条件に達していないことがターゲットの通常の読み取り/書き込みに影響することもありません。
現時点では、個別の Branch ステータス照会や完了コールバックはなく、個々の Branch に対してオブジェクトストレージの使用量クォータを設定する機能もありません。
Branch が通常のスライスに変換されるまでの間は Active Branch と呼ばれ、単一スライスの読み取り/書き込みは通常どおり動作します。クエリ範囲、ウォームアップ、および統計の挙動については、Behavior differences during the Active period をご確認ください。
ベクトルクラスター再現率
vector cluster recall mode では、次のパラメータが使用されます。これらは、明示的な _slice 名リストの件数制限とは独立しており、相互に代替できません。
|
パラメータ |
制限 |
|
|
1~4096。登録済みの中心ベクトルと、自動スライス選択に使用されるクエリベクトルの両方が、この次元を満たす必要があります。 |
|
|
1~10000。 |
|
|
1~10000。デフォルトは |
|
|
省略または |
候補スライスの自動選択には、リクエスト内のインラインクエリベクトルが必要です。routing_field の設定後は、スクリプトによる更新はサポートされません。具体的なクエリベクトルのパス、明示的なスライス選択、およびエラーハンドリングについては、Automatically select candidate Slices をご参照ください。