すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:制限

最終更新日:Sep 22, 2026

以降のセクションでは、ターゲットオブジェクト別の制限と互換性の相違点を要約し、本番環境に適用する前に選択肢を評価し、準備状況を確認できるようにします。各 API のパラメータ表には、対応する値の範囲も記載されています。製品バージョン、Elasticsearch API の互換性、推奨クライアントバージョンについては、Versions and compatibility をご参照ください。宣言されているバージョン互換性範囲内で、利用可能な標準 API を使用してください。明示的にドキュメント化されていない互換性または移行シナリオについては、チケットを提出して確認してください。

ステートフル Elasticsearch との相違点

Agent Engine Edition はステートレスアーキテクチャを採用しています。移行時は、次の機能、インデックス設定、および運用方法に注意してください。その他の API は Versions and compatibility の説明に従って使用してください。パラメータの制限については、該当する API リファレンスをご参照ください。

ステートフル Elasticsearch の機能または設定

Agent Engine Edition における相違点

推奨事項

インデックスライフサイクル管理、_ilm/*、および index.lifecycle.*

ILM ポリシーの管理と実行はサポートされていません。関連 API は登録されておらず、index.lifecycle.name はサポートされていない設定です。また、既存の ILM ポリシーは直接移行できません。

ログおよび時系列データの保持期間は Data Stream Lifecycle で管理してください。通常のインデックスについては、外部のスケジューリングタスクから Rollover と Delete Index を呼び出してください。

ホット、ウォーム、コールド、フローズンのデータ階層、および _tier_preference に基づく移行

従来の data_* データ階層および階層移行モデルは使用されません。_tier_preference は適用されないため、設定しないでください。API が設定を受け付けた場合でも、データ階層の移行は発生しません。

永続データにはオブジェクトストレージを使用し、インデックスノードとクエリノードを分けて計画してください。履歴データは、ビジネスの保持ポリシーに従って管理してください。

Watcher

Watcher のトリガー、条件、および通知の実行チェーンはサポートされていません。関連 API は登録されていません。

CloudMonitor、Simple Log Service (SLS) アラート、エンタープライズ向けのアラートプラットフォーム、または外部のスケジュールタスクを使用してください。

従来の Stack Monitoring のローカル収集パス

xpack.monitoring.collection.* およびローカルの .monitoring-* インデックスに依存する収集方法はサポートされていません。関連するクラスター設定は適用されないため、設定しないでください。

コンソールのモニタリングとログを使用してください。アプリケーション側の可観測性が必要な場合は、クラスターのヘルス API とノード統計 API を使用してください。API reference をご参照ください。

Rollup ジョブおよび _rollup_search

従来の Rollup ジョブとそのクエリ API はサポートされていません。関連 API は登録されていません。

データタイプに応じて、Downsample、Transform、または外部の集計タスクを選択してください。

検索可能スナップショット、スナップショットのマウント、およびフローズンフェーズの遷移

検索可能スナップショットのマウントのセマンティクスはサポートされていません。マウント API は登録されておらず、フローズン階層のプロセスを再利用することもできません。

オンラインデータは、ネイティブのオブジェクトストレージインデックスを直接使用します。すべてのコレクションのバックアップとリストアは、テクニカルサポートの支援を受けて実施します。Back up and restore Collections をご参照ください。

index.auto_expand_replicas

クエリレプリカは、ノード数に基づいて自動的に拡張されません。有効化した場合、レプリカ数を 0 に設定しても、システムによって 1 に調整されます。従来のクラスターのルールに従って使用することはできません。設定しないでください。

index.number_of_replicas を明示的に設定し、クエリ容量と高可用性要件に基づいてクエリノードを調整してください。

index.translog.durability=async

translog の耐久性を async に設定することはサポートされておらず、変更リクエストは拒否されます。書き込みの確認応答は、リクエストの耐久性を使用します。

bulk サイズ、同時実行数、refresh 頻度、シャード計画、およびインデックスノードの容量により、書き込みスループットを最適化してください。

index.refresh_interval

Agent Engine Edition のデフォルトは 5s ですが、ステートフル Elasticsearch のデフォルトは 1s です。

オンラインワークロードでは自動 refresh を維持し、推奨間隔は 5s 以上です。refresh の無効化は、one-time offline import の場合にのみ行ってください。

wait_for_active_shards

書き込みパスでは、レプリカの待機条件として使用されません。all に設定しても、すべてのクエリレプリカがすでに利用可能であることを意味しません。

書き込みレスポンスを確認し、バックグラウンド refresh 後に実際のクエリで可視性を検証してください。同期的な待機が必要な場合は、Refresh and query visibility の説明に従って refresh=wait_for を使用してください。クエリサービスの準備状態についても、実際のクエリプローブで確認する必要があります。

前述の表で「適用されない」と示したインデックスまたはクラスター設定については、変更リクエストが HTTP 200 を返し、読み戻し時に新しい値が表示される場合があります。これをもって機能が有効化されたと判断しないでください。

また、ステートレスアーキテクチャにおけるレプリカは主にクエリおよびキャッシュに使用され、プライマリーシャードに昇格可能なステートフル Elasticsearch の永続レプリカとは同等ではありません。クエリレプリカ数とクエリノードによって、クエリ容量と可用性が決まります。永続データはオブジェクトストレージに保存されるため、レプリカ数の増加をバックアップ戦略の代替として使用することはできません。

インデックスとベクトルフィールド

通常のインデックスおよびコレクションのベクトルフィールドには、次の制約が適用されます。

制約

制限

float ベクトルフィールドの dims

bbq_disk は 1~4096 をサポートします。bbq_hnsw と bbq_flat は 64~4096 をサポートします。次元は、設定後に変更できません。書き込むドキュメントとクエリベクトルの次元は、フィールドの dims と一致する必要があります。

DiskBBQ の visit_percentage

0~100。クエリ値は、明示的に 0 に設定した場合も含め、マッピングのデフォルトを上書きします。有効値が 0 より大きい場合、num_candidates は訪問比率の決定に使用されなくなります。

フィールド設定とクエリパラメータについては、Vector fields and KNN をご参照ください。

コレクションとスライス

命名規則とバッチ制限

制約

制限

コレクション名

Elasticsearch のインデックスおよびエイリアスの命名規則に従い、小文字で 128 バイト以下にする必要があります。また、システム予約の .sc- プレフィックスは使用できません。

スライス名

1~128 文字。先頭と末尾の文字は英字または数字である必要があります。中間の文字には、英字、数字、.、_、- を推奨します。_all は予約値です。その他の文字が許可されるかどうかは、API の検証結果によって異なります。

単一 Search におけるスライス数

最大 1024。URL パラメータとして渡す場合は、HTTP リクエスト行の長さ制限の影響も受けます。この制限のデフォルトは 4096 バイトで、http.max_initial_line_length によって決まります。名前が長い場合は短くするか、リクエストを分割してください。Multi Search の場合は、URL に名前リストを含めないように、各サブリクエストのリクエストヘッダー行で _slice を渡すことができます。

単一 Bulk で自動作成される不足スライス数

最大 512。既存のスライスはカウントされません。

単一バッチで登録されるスライス数

最大 20480。リクエスト内で名前の重複はできません。

List Slices API の page_size

1~10000。

Slice CAT が返す行数

最大 10000 行。ページネーションは提供されません。

Collection および Backing CAT の展開範囲

バッキングインデックスが 10000 を超える場合、HTTP 400 を返します。

スライス削除時の master_timeout

5 分以内の有限値である必要があります。

バッキングインデックスの事前作成における count

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

制約

制限

workers / batch_size

それぞれ 1~64、1~10000。タスク実行中に workers を動的に調整することはできません。

コピー範囲

ソースとターゲットは同一のコレクション内にある必要があります。コレクション間コピーはサポートされません。

ソースデータの表現

ドキュメントを再構成できる _source を保持する必要があります。semantic_text などの推論フィールドを含むソースマッピングはサポートされません。要件の詳細については、Copy data semantics をご参照ください。

トラフィック切り替え

Copy は、トラフィックのアトミックな切り替えを提供せず、ソースへの後続の書き込みを継続的に同期しません。routing_field を設定している場合、Copy はドキュメント内のルーティングフィールドを書き換えません。切り替え前に、ターゲット側の書き込みロジックを調整し、Copy data semantics の説明に従ってデータを検証してください。

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 作成時の timeout

有限値である必要があります。タイムアウトは、作成がロールバックされたことを意味しません。

バックグラウンドで通常のスライスへ自動変換される条件 (作成時間、シャドウ化された継承ドキュメント数、Branch メタデータサイズ) は、制限ではありません。条件に達しても変換が直ちに完了するとは限らず、条件に達していないことがターゲットの通常の読み取り/書き込みに影響することもありません。

現時点では、個別の Branch ステータス照会や完了コールバックはなく、個々の Branch に対してオブジェクトストレージの使用量クォータを設定する機能もありません。

Branch が通常のスライスに変換されるまでの間は Active Branch と呼ばれ、単一スライスの読み取り/書き込みは通常どおり動作します。クエリ範囲、ウォームアップ、および統計の挙動については、Behavior differences during the Active period をご確認ください。

ベクトルクラスター再現率

vector cluster recall mode では、次のパラメータが使用されます。これらは、明示的な _slice 名リストの件数制限とは独立しており、相互に代替できません。

パラメータ

制限

config.vector_dims

1~4096。登録済みの中心ベクトルと、自動スライス選択に使用されるクエリベクトルの両方が、この次元を満たす必要があります。

config.default_query_slice_count

1~10000。config.max_query_slice_count を超えることはできません。デフォルトは 128 です。

config.max_query_slice_count

1~10000。デフォルトは 512 です。

query_slice_count クエリパラメータ

省略または 0 の場合、デフォルトの候補数が使用されます。それ以外の場合は 1~config.max_query_slice_count です。

候補スライスの自動選択には、リクエスト内のインラインクエリベクトルが必要です。routing_field の設定後は、スクリプトによる更新はサポートされません。具体的なクエリベクトルのパス、明示的なスライス選択、およびエラーハンドリングについては、Automatically select candidate Slices をご参照ください。