8.0への移行

このセクションでは、アプリケーションをElasticsearch 8.0に移行する際に注意すべき変更点について説明します。

詳細については、8.15の新機能およびリリースノートを参照してください。

破壊的変更

Elasticsearch 8.0の以下の変更は、アプリケーションに影響を与え、正常に動作しなくなる可能性があります。8.0にアップグレードする前に、これらの変更を確認し、影響を軽減するために説明された手順を実行してください。

クラスタとノード設定の変更

logo cloudは、Elasticsearch Serviceのサポートされているuser settingの変更を示しています。

action.destructive_requires_nameは現在trueがデフォルトです。logo cloud

詳細

action.destructive_requires_name設定のデフォルトは、Elasticsearch 8.0.0でfalseからtrueに変更されます。

以前は、falseがデフォルトで、ユーザーはワイルドカードパターンを使用してインデックスの削除、クローズ、またはインデックスブロックの変更を行うことができました。ワイルドカードパターンに一致するインデックスの誤って削除されるのを防ぐために、現在は破壊的操作を行う際に明示的に変更するインデックスを指定する必要があります。

影響

破壊的操作にワイルドカードパターンを使用するには、https://www.elastic.co/guide/en/elasticsearch/reference/8.15/cluster-update-settings.htmlクラスタ設定APIを使用してaction.destructive_requires_namefalseに設定してください。

非凍結ノードでxpack.searchable.snapshot.shared_cache.sizeを設定することはできなくなりました。

詳細

  1. **影響**
  2. `````data_frozen`````ロールを持たないノードの`````elasticsearch.yml`````から`````xpack.searchable.snapshot.shared_cache.size`````を削除してください。非凍結ノードでこの設定を指定すると、起動時にエラーが発生します。
  3. `````indices.query.bool.max_clause_count`````は非推奨で、効果がありません。
  4. **詳細**
  5. Elasticsearchは、検索スレッドプールのサイズとJVMに割り当てられたヒープのサイズに基づいて、クエリ内で許可される最大条項数を動的に設定します。この制限の最小値は1024であり、ほとんどの場合はより大きくなります(たとえば、30Gb RAM48 CPUを持つノードは、約27,000の最大条項数を持ちます)。大きなヒープはより高い値をもたらし、大きなスレッドプールはより低い値をもたらします。
  6. **影響**
  7. 多くの条項を持つクエリは、可能な限り避けるべきです。以前にこの設定を重いクエリに合わせて引き上げた場合は、Elasticsearchに利用可能なメモリを増やすか、検索スレッドプールのサイズを減らして、各同時検索に利用可能なメモリを増やす必要があるかもしれません。
  8. 以前のLuceneのバージョンでは、ブールクエリを入れ子にすることでこの制限を回避できましたが、現在の制限はクエリ全体のリーフクエリの総数に基づいており、この回避策はもはや役に立ちません。
  9. `````indices.query.bool.max_clause_count`````を指定しても効果はありませんが、非推奨の警告が生成されます。これらの警告を回避するには、アップグレードまたはノードの再起動中に`````elasticsearch.yml`````から設定を削除してください。
  10. `````indices.lifecycle.poll_interval``````````1s`````より大きくなければなりません。
  11. **詳細**
  12. `````indices.lifecycle.poll_interval`````を低すぎる値に設定すると、クラスタに過剰な負荷がかかる可能性があります。ポーリング間隔は、少なくとも`````1s`````1秒)である必要があります。
  13. **影響**
  14. `````elasticsearch.yml`````または[クラスタ更新設定API](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/cluster-update-settings.html)を介して`````indices.lifecycle.poll_interval`````設定を`````1s`````以上に設定してください。
  15. `````elasticsearch.yml``````````indices.lifecycle.poll_interval``````````1s`````未満に設定すると、起動時にエラーが発生します。`````1s`````未満に`````indices.lifecycle.poll_interval`````を設定するリクエストはエラーを返します。
  16. ファイルおよびネイティブ領域は、明示的に無効にしない限り、現在有効になっています。
  17. **詳細**
  18. ファイルおよびネイティブ領域は、明示的に無効にしない限り、現在有効になっています。明示的に無効にした場合、ファイルおよびネイティブ領域は常に無効のままです。
  19. 以前は、ファイルおよびネイティブ領域には以下の暗黙の動作がありました:
  20. - ファイルおよびネイティブ領域が構成されていない場合、他の領域が構成されていると暗黙的に無効になっていました。
  21. - 他の領域が利用できない場合(領域が構成されていない、ライセンスで許可されていない、または明示的に無効にされている場合)、ファイルおよびネイティブ領域は有効になっていました。
  22. **影響**
  23. ファイルまたはネイティブ領域を明示的に無効にするには、`````file.<realm-name>.enabled`````または`````native.<realm-name>.enabled`````設定を`````false`````に設定し、`````xpack.security.authc.realms`````名前空間の下で`````elasticsearch.yml`````に設定してください。
  24. 以下の構成例は、ネイティブ領域とファイル領域を無効にします。
  25. #### Yaml
  26. ``````yaml
  27. xpack.security.authc.realms:
  28. native.realm1.enabled: false
  29. file.realm2.enabled: false
  30. ...
  31. `

領域order設定は現在必須です。

詳細

  1. **影響**
  2. 要件が満たされない場合、クラスタは起動に失敗します。
  3. たとえば、以下の構成は無効です:
  4. #### Yaml
  5. ``````yaml
  6. xpack.security.authc.realms.kerberos.kerb1:
  7. keytab.path: es.keytab
  8. remove_realm_name: false
  9. `

そして、次のように構成する必要があります:

Yaml

  1. xpack.security.authc.realms.kerberos.kerb1:
  2. order: 0
  3. keytab.path: es.keytab
  4. remove_realm_name: false
  1. **詳細**
  2. Elasticsearchは、クラスタ内のノードのディスク使用量に基づいて、割り当て決定を行う際に、移動中のシャードのサイズを常に考慮します。以前のバージョンでは、`````cluster.routing.allocation.disk.include_relocations``````````false`````に設定することでこれを無効にすることができました。これにより、ウォーターマークを超える不適切な割り当て決定が行われ、修正するためにかなりの追加作業が必要になる可能性があります。`````cluster.routing.allocation.disk.include_relocations`````設定は削除されました。
  3. **影響**
  4. `````cluster.routing.allocation.disk.include_relocations`````設定を削除してください。`````elasticsearch.yml`````でこの設定を指定すると、起動時にエラーが発生します。
  5. `````cluster.join.timeout`````は削除されました。
  6. **詳細**
  7. `````cluster.join.timeout`````設定は削除されました。結合の試みはもはやタイムアウトしません。
  8. **影響**
  9. `````cluster.join.timeout``````````elasticsearch.yml`````から削除してください。
  10. `````discovery.zen`````設定は削除されました。
  11. **詳細**
  12. `````discovery.zen`````名前空間の下のすべての設定はもはやサポートされていません。これらは7.xBWC理由のためだけに存在していました。これには以下が含まれます:
  13. - `````discovery.zen.minimum_master_nodes
  • discovery.zen.no_master_block
  • discovery.zen.hosts_provider
  • discovery.zen.publish_timeout
  • discovery.zen.commit_timeout
  • discovery.zen.publish_diff.enable
  • discovery.zen.ping.unicast.concurrent_connects
  • discovery.zen.ping.unicast.hosts.resolve_timeout
  • discovery.zen.ping.unicast.hosts
  • discovery.zen.ping_timeout
  • discovery.zen.unsafe_rolling_upgrades_enabled
  • discovery.zen.fd.connect_on_network_disconnect
  • discovery.zen.fd.ping_interval
  • discovery.zen.fd.ping_timeout
  • discovery.zen.fd.ping_retries
  • discovery.zen.fd.register_connection_listener
  • discovery.zen.join_retry_attempts
  • discovery.zen.join_retry_delay
  • discovery.zen.join_timeout
  • discovery.zen.max_pings_from_another_master
  • discovery.zen.send_leave_request
  • discovery.zen.master_election.wait_for_joins_timeout
  • discovery.zen.master_election.ignore_non_master_pings
  • discovery.zen.publish.max_pending_cluster_states
  • discovery.zen.bwc_ping_timeout

影響

  1. `````http.content_type.required`````は削除されました。
  2. **詳細**
  3. `````http.content_type.required`````設定はElasticsearch 6.0で非推奨となり、Elasticsearch 8.0で削除されました。この設定は、HTTPリクエストのコンテンツタイプの自動検出がElasticsearch 6.0で削除される準備のために、Elasticsearch 5.3で導入されました。
  4. **影響**
  5. `````elasticsearch.yml`````から`````http.content_type.required`````設定を削除してください。この設定を指定すると、起動時にエラーが発生します。
  6. `````http.tcp_no_delay`````は削除されました。
  7. **詳細**
  8. `````http.tcp_no_delay`````設定は7.xで非推奨となり、8.0で削除されました。代わりに`````http.tcp.no_delay`````を使用してください。
  9. **影響**
  10. `````http.tcp_no_delay`````設定を`````http.tcp.no_delay`````に置き換えてください。`````elasticsearch.yml``````````http.tcp_no_delay`````を指定すると、起動時にエラーが発生します。
  11. `````network.tcp.connect_timeout`````は削除されました。
  12. **詳細**
  13. `````network.tcp.connect_timeout`````設定は7.xで非推奨となり、8.0で削除されました。この設定は`````transport.connect_timeout`````のフォールバック設定でした。
  14. **影響**
  15. `````network.tcp.connect_timeout`````設定を削除してください。クライアント接続のデフォルト接続タイムアウトを変更するには、`````transport.connect_timeout`````設定を使用してください。`````elasticsearch.yml``````````network.tcp.connect_timeout`````を指定すると、起動時にエラーが発生します。
  16. `````node.max_local_storage_nodes`````は削除されました。
  17. **詳細**
  18. `````node.max_local_storage_nodes`````設定は7.xで非推奨となり、8.0で削除されました。ノードは、各ノードが一貫して同じデータパスに割り当てられるように、別々のデータパスで実行する必要があります。
  19. **影響**
  20. `````node.max_local_storage_nodes`````設定を削除してください。`````elasticsearch.yml`````でこの設定を指定すると、起動時にエラーが発生します。
  21. `````accept_default_password`````設定は削除されました。
  22. **詳細**
  23. `````xpack.security.authc.accept_default_password`````設定は、Elasticsearch 6.0のリリース以降、効果がなくなり、もはや許可されていません。
  24. **影響**
  25. `````elasticsearch.yml`````から`````xpack.security.authc.accept_default_password`````設定を削除してください。この設定を指定すると、起動時にエラーが発生します。
  26. `````roles.index.cache.*`````設定は削除されました。
  27. **詳細**
  28. `````xpack.security.authz.store.roles.index.cache.max_size`````および`````xpack.security.authz.store.roles.index.cache.ttl`````設定は削除されました。これらの設定は、Elasticsearch 5.2のリリース以降、冗長で非推奨となっていました。
  29. **影響**
  30. `````elasticsearch.yml`````から`````xpack.security.authz.store.roles.index.cache.max_size`````および`````xpack.security.authz.store.roles.index.cache.ttl`````設定を削除してください。これらの設定を指定すると、起動時にエラーが発生します。
  31. `````transport.profiles.*.xpack.security.type`````設定は削除されました。
  32. **詳細**
  33. `````transport.profiles.*.xpack.security.type`````設定はもはやサポートされていません。Transport Clientは削除され、すべてのクライアントトラフィックは現在HTTPトランスポートを使用します。この設定を使用しているトランスポートプロファイルは削除する必要があります。
  34. **影響**
  35. `````elasticsearch.yml`````から`````transport.profiles.*.xpack.security.type`````設定を削除してください。この設定をトランスポートプロファイルで指定すると、起動時にエラーが発生します。
  36. `````nameid_format````` SAML領域設定はもはやデフォルト値を持ちません。
  37. **詳細**
  38. SAMLでは、アイデンティティプロバイダー(IdP)は、特定の形式の`````NameID`````をリリースするように明示的に構成されるか、サービスプロバイダー(SP)の要件に準拠するように構成されます。SPは、SAML認証リクエストの`````NameIDPolicy`````要素でその要件を宣言します。Elasticsearchでは、`````nameid_format````` SAML領域設定が`````NameIDPolicy`````値を制御します。
  39. 以前は、`````nameid_format`````のデフォルト値は`````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````でした。この設定は、IdP`````NameID``````````transient`````形式でリリースすることを要求する認証リクエストを作成しました。
  40. デフォルト値が削除されたため、ElasticsearchはデフォルトでIdPにこの要件を課さないSAML認証リクエストを作成します。以前の動作を保持したい場合は、`````nameid_format``````````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````に設定してください。
  41. **影響**
  42. 現在`````nameid_format`````を明示的に構成していない場合、IdPElasticsearchからの認証リクエストを拒否する可能性があります。なぜなら、リクエストが`````NameID`````形式を指定していないからです(IdPがそれを期待するように構成されている場合)。この不一致は、壊れたSAML構成を引き起こす可能性があります。IdPが特定の`````NameID`````形式を使用するように明示的に構成されているかどうか不明な場合は、現在の動作を保持したい場合は、`````nameid_format``````````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````に明示的に設定してみてください。
  43. `````xpack.security.transport.ssl.enabled`````設定は、`````xpack.security.transport.ssl`````設定を構成するために現在必須です。
  44. **詳細**
  45. `````xpack.security.transport.ssl`````に対してSSL設定を構成する際に、`````xpack.security.transport.ssl.enabled`````も構成しないとエラーになります。
  46. **影響**
  47. 他の`````xpack.security.transport.ssl`````設定を使用している場合は、`````xpack.security.transport.ssl.enabled`````設定を明示的に指定する必要があります。
  48. SSLを有効にしたくない場合は、他の`````xpack.security.transport.ssl`````設定を使用している場合、次のいずれかを行ってください:
  49. - `````xpack.security.transport.ssl.enabled``````````false`````として明示的に指定する
  50. - 他の`````xpack.security.transport.ssl`````設定の使用を中止する
  51. SSLを有効にしたい場合は、[クラスタ内のノード間の通信を暗号化する](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/configuring-tls.html#tls-transport)の手順に従ってください。この構成の一環として、`````xpack.security.transport.ssl.enabled`````を`````true`````として明示的に指定してください。
  52. たとえば、以下の構成は無効です:
  53. #### Yaml
  54. ``````yaml
  55. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  56. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  57. `

そして、次のように構成する必要があります:

Yaml

  1. xpack.security.transport.ssl.enabled: true
  2. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  3. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
または false.
  1. **詳細**
  2. `````xpack.security.http.ssl`````に対してSSL設定を構成する際に、`````xpack.security.http.ssl.enabled`````も構成しないとエラーになります。
  3. **影響**
  4. 他の`````xpack.security.http.ssl`````設定を使用している場合は、`````xpack.security.http.ssl.enabled`````設定を明示的に指定する必要があります。
  5. SSLを有効にしたくない場合は、他の`````xpack.security.http.ssl`````設定を使用している場合、次のいずれかを行ってください:
  6. - `````xpack.security.http.ssl.enabled``````````false`````として明示的に指定する
  7. - 他の`````xpack.security.http.ssl`````設定の使用を中止する
  8. SSLを有効にしたい場合は、[HTTPクライアント通信の暗号化](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/security-basic-setup-https.html#encrypt-http-communication)の手順に従ってください。この構成の一環として、`````xpack.security.http.ssl.enabled`````を`````true`````として明示的に指定してください。
  9. たとえば、以下の構成は無効です:
  10. #### Yaml
  11. ``````yaml
  12. xpack.security.http.ssl.certificate: elasticsearch.crt
  13. xpack.security.http.ssl.key: elasticsearch.key
  14. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
  15. `

そして、次のいずれかのように構成する必要があります:

Yaml

  1. xpack.security.http.ssl.enabled: true
  2. xpack.security.http.ssl.certificate: elasticsearch.crt
  3. xpack.security.http.ssl.key: elasticsearch.key
  4. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
または false.
  1. **詳細**
  2. トランスポートインターフェースのSSLを有効にするには、`````xpack.security.transport.ssl.keystore.path`````設定または`````xpack.security.transport.ssl.certificate`````および`````xpack.security.transport.ssl.key`````設定を使用して証明書とキーを構成しないとエラーになります。
  3. **影響**
  4. `````xpack.security.transport.ssl.enabled``````````true`````に設定されている場合は、`````xpack.security.transport.ssl.keystore.path`````設定または`````xpack.security.transport.ssl.certificate`````および`````xpack.security.transport.ssl.key`````設定を使用して証明書とキーを提供してください。証明書とキーが提供されない場合、Elasticsearchは起動時にエラーを返します。
  5. `````xpack.security.http.ssl`````証明書とキーは、HTTPサーバーのSSLを有効にするために現在必須です。
  6. **詳細**
  7. HTTPRest)サーバーのSSLを有効にするには、`````xpack.security.http.ssl.keystore.path`````設定または`````xpack.security.http.ssl.certificate`````および`````xpack.security.http.ssl.key`````設定を使用して証明書とキーを構成しないとエラーになります。
  8. **影響**
  9. `````xpack.security.http.ssl.enabled``````````true`````に設定されている場合は、`````xpack.security.http.ssl.keystore.path`````設定または`````xpack.security.http.ssl.certificate`````および`````xpack.security.http.ssl.key`````設定を使用して証明書とキーを提供してください。証明書とキーが提供されない場合、Elasticsearchは起動時にエラーを返します。
  10. PKCS#11キーストアとトラストストアは`````elasticsearch.yml`````で構成できません。
  11. **詳細**
  12. `````*.ssl.keystore.type`````および`````*.ssl.truststore.type`````設定は、"PKCS11"を有効なタイプとして受け入れなくなりました。これは、ElasticsearchのすべてのSSL設定に適用されます。
  13. - `````xpack.security.http.keystore.type
  • xpack.security.transport.keystore.type
  • xpack.security.http.truststore.type
  • xpack.security.transport.truststore.type

セキュリティ領域、ウォッチャー、モニタリングのSSL設定にも適用されます。

PKCS#11キーストアまたはトラストストアをJREのデフォルトストアとして使用することには影響ありません。

影響

  1. `````kibana`````ユーザーは`````kibana_system`````に置き換えられました。
  2. **詳細**
  3. `````kibana`````ユーザーは、KibanaElasticsearchに認証するために歴史的に使用されていました。このユーザーの名前は混乱を招くものであり、Kibanaにログインするために誤って使用されることがよくありました。この名前は`````kibana_system`````に変更され、混乱を減らし、他の組み込みシステムアカウントとよりよく整合するようにしました。
  4. **影響**
  5. `````kibana`````ユーザーの使用を`````kibana_system`````ユーザーに置き換えてください。`````kibana.yml``````````kibana`````ユーザーを指定すると、起動時にエラーが発生します。
  6. もし`````kibana.yml`````が次のように含まれていた場合:
  7. #### Yaml
  8. ``````yaml
  9. elasticsearch.username: kibana
  10. `

その場合は、新しいkibana_systemユーザーを使用するように更新する必要があります:

Yaml

  1. elasticsearch.username: kibana_system

新しい kibana_system ユーザーは、以前の kibana ユーザーのパスワードを保持しません。kibana_system ユーザーのために明示的にパスワードを設定する必要があります。

search.remote.* 設定は削除されました。

詳細

6.5では、これらの設定は cluster.remote に代わって非推奨になりました。7.xでは、これらの設定を cluster.remote 対応に自動的にアップグレードしました。8.0.0では、これらの設定は削除されました。これらの設定が構成またはクラスター状態にある場合、Elasticsearchは起動を拒否します。

影響

置き換えの cluster.remote 設定を使用してください。search.remote.* 設定の使用を中止してください。elasticsearch.yml でこれらの設定を指定すると、起動時にエラーが発生します。

pidfile 設定は node.pidfile に置き換えられました。

詳細

すべての設定が適切な名前空間にあることを確認するために、pidfile 設定は以前のバージョン 7.4.0 の Elasticsearch で非推奨となり、バージョン 8.0.0 で削除されました。代わりに node.pidfile を使用してください。

影響

node.pidfile 設定を使用してください。pidfile 設定の使用を中止してください。pidfile 設定を elasticsearch.yml で指定すると、起動時にエラーが発生します。

processors 設定は node.processors に置き換えられました。

詳細

すべての設定が適切な名前空間にあることを確認するために、processors 設定は以前のバージョン 7.4.0 の Elasticsearch で非推奨となり、バージョン 8.0.0 で削除されました。代わりに node.processors を使用してください。

影響

node.processors 設定を使用してください。processors 設定の使用を中止してください。processors 設定を elasticsearch.yml で指定すると、起動時にエラーが発生します。

node.processors 設定はもはや利用可能なプロセッサの数を超えることはできません。

詳細

以前は、スレッドプールのデフォルトサイズを設定するために使用されるプロセッサの数を、利用可能なプロセッサの数を超えて設定することが可能でした。これは、コンテキストスイッチが増え、スレッドが増えることにつながりますが、これらの追加スレッドをスケジュールするための物理CPUの数が増えないため、node.processors 設定は現在、利用可能なプロセッサの数によって制約されています。

影響

指定されている場合、node.processors 設定の値が利用可能なプロセッサの数を超えないことを確認してください。node.processors 値を elasticsearch.yml で利用可能なプロセッサの数より大きく設定すると、起動時にエラーが発生します。

cluster.remote.connect 設定は削除されました。

詳細

Elasticsearch 7.7.0 では、cluster.remote.connect 設定が node.remote_cluster_client 設定に代わって非推奨になりました。Elasticsearch 8.0.0 では、cluster.remote.connect 設定が削除されます。

影響

node.remote_cluster_client 設定を使用してください。cluster.remote.connect 設定の使用を中止してください。cluster.remote.connect 設定を elasticsearch.yml で指定すると、起動時にエラーが発生します。

node.local_storage 設定は削除されました。

詳細

Elasticsearch 7.8.0 では、node.local_storage 設定が非推奨となり、Elasticsearch 8.0.0 からはすべてのノードがローカルストレージを必要とします。したがって、node.local_storage 設定は削除されました。

影響

node.local_storage 設定の使用を中止してください。elasticsearch.yml でこの設定を指定すると、起動時にエラーが発生します。

auth.password 設定は HTTP モニタリングのために削除されました。

詳細

Elasticsearch 7.7.0 では、xpack.monitoring.exporters.<exporterName>.auth.password 設定が xpack.monitoring.exporters.<exporterName>.auth.secure_password 設定に代わって非推奨になりました。Elasticsearch 8.0.0 では、xpack.monitoring.exporters.<exporterName>.auth.password 設定が削除されます。

影響

xpack.monitoring.exporters.<exporterName>.auth.secure_password 設定を使用してください。xpack.monitoring.exporters.<exporterName>.auth.password 設定の使用を中止してください。xpack.monitoring.exporters.<exporterName>.auth.password 設定を elasticsearch.yml で指定すると、起動時にエラーが発生します。

基本ライセンス機能を無効にするために使用される設定は削除されました。

詳細

以下の設定は Elasticsearch 7.8.0 で非推奨となり、Elasticsearch 8.0.0 で削除されました:

  • xpack.enrich.enabled
  • xpack.flattened.enabled
  • xpack.ilm.enabled
  • xpack.monitoring.enabled
  • xpack.rollup.enabled
  • xpack.slm.enabled
  • xpack.sql.enabled
  • xpack.transform.enabled
  • xpack.vectors.enabled

これらの基本ライセンス機能は常に有効です。

ILM を無効にして、Watcher インデックスを管理するために別のツールを使用している場合、新たに導入された xpack.watcher.use_ilm_index_management 設定を false に設定できます。

影響

削除された設定の使用を中止してください。elasticsearch.yml でこれらの設定を指定すると、起動時にエラーが発生します。

特定の数のマスターノードを待機するためにクラスター回復を遅延させるために使用される設定は削除されました。

詳細

以下のクラスター設定は削除されました:

  • gateway.expected_nodes
  • gateway.expected_master_nodes
  • gateway.recover_after_nodes
  • gateway.recover_after_master_nodes

マスターノードの過半数が参加した時点でクラスターを回復することは安全であり、追加のマスターノードの起動を待つことに利点はありません。

影響

削除された設定の使用を中止してください。必要に応じて、gateway.expected_data_nodes または gateway.recover_after_data_nodes を使用して、特定の数のデータノードを待機するためにクラスター回復を遅延させてください。

レガシーロール設定は削除されました。

詳細

レガシーロール設定:

  • node.data
  • node.ingest
  • node.master
  • node.ml
  • node.remote_cluster_client
  • node.transform
  • node.voting_only

は削除されました。代わりに node.roles 設定を使用してください。以前に 7.13 以降のクラスターでレガシーロール設定を使用していた場合、node.roles の正確な置き換え値を示す非推奨ログメッセージが各ノードに表示されます。

影響

削除された設定の使用を中止してください。elasticsearch.yml でこれらの設定を指定すると、起動時にエラーが発生します。

システムコールフィルタ設定は削除されました。

詳細

Elasticsearch は、別のプロセスをフォークする能力を削除するためにシステムコールフィルタを使用します。これは、リモートコードの悪用を軽減するのに役立ちます。これらのシステムコールフィルタはデフォルトで有効であり、以前は bootstrap.system_call_filter 設定を介して制御されていました。Elasticsearch 8.0 からは、システムコールフィルタが必須になります。そのため、bootstrap.system_call_filter 設定は Elasticsearch 7.13.0 で非推奨となり、Elasticsearch 8.0.0 から削除されます。

影響

削除された設定の使用を中止してください。この設定を Elasticsearch 構成で指定すると、起動時にエラーが発生します。

Tier フィルタリング設定は削除されました。

詳細

シャードを特定のノードセットに割り当てるためのフィルタリングに使用される ._tier で終わるクラスターおよびインデックスレベルの設定は削除されました。代わりに、tier preference settingindex.routing.allocation.include._tier_preference を使用する必要があります。削除された設定は:

クラスター レベルの設定:

  • cluster.routing.allocation.include._tier
  • cluster.routing.allocation.exclude._tier
  • cluster.routing.allocation.require._tier

インデックス設定:

  • index.routing.allocation.include._tier
  • index.routing.allocation.exclude._tier
  • index.routing.allocation.require._tier

影響

削除された設定の使用を中止してください。Elasticsearch 構成でこれらのクラスター設定のいずれかを指定すると、起動時にエラーが発生します。これらの設定を使用しているインデックスは、インデックスメタデータが読み込まれると設定がアーカイブされ(効果はありません)、削除されます。

共有データパスおよびインデックスごとのデータパス設定は非推奨です。

詳細

Elasticsearch は、共有データパスをインデックスごとのデータパスのベースパスとして使用します。この機能は以前、共有レプリカで使用されていました。7.13.0 から、これらの設定は非推奨です。8.0 からは、7.x で作成された既存のインデックスのみが共有データパスおよびインデックスごとのデータパス設定を使用できるようになります。

影響

非推奨設定の使用を中止してください。

単一データノードのウォーターマーク設定は非推奨であり、true のみを受け入れます。

詳細

7.14 では、cluster.routing.allocation.disk.watermark.enable_for_single_data_node を false に設定することが非推奨となりました。8.0 からは、唯一の合法的な値は true になります。将来のリリースでは、この設定は完全に削除され、設定が true の場合と同じ動作になります。

古い動作が単一データノードクラスターに必要な場合、cluster.routing.allocation.disk.threshold_enabled: false を設定することでディスクベースの割り当てを無効にできます。

影響

非推奨設定の使用を中止してください。

gateway.auto_import_dangling_indices 設定は削除されました。

詳細

gateway.auto_import_dangling_indices クラスター設定は削除されました。以前は、この設定を使用して dangling indices を自動的にインポートすることができました。しかし、dangling indices を自動的にインポートすることは安全ではありません。代わりに、dangling indices APIs を使用して、dangling indices を管理およびインポートしてください。

影響

削除された設定の使用を中止してください。elasticsearch.yml で設定を指定すると、起動時にエラーが発生します。

listener スレッドプールは削除されました。

詳細

以前は、トランスポートクライアントはスレッドプールを使用してリスナーがネットワークスレッドでコールバックされないようにしていました。トランスポートクライアントは 8.0 で削除され、スレッドプールはもはや必要ありません。

影響

listener スレッドプール設定を elasticsearch.yml からすべてのノードに削除してください。listener スレッドプール設定を elasticsearch.yml で指定すると、起動時にエラーが発生します。

fixed_auto_queue_size スレッドプールタイプは削除されました。

詳細

fixed_auto_queue_size スレッドプールタイプは、以前は実験的機能としてマークされており、7.x で非推奨となり、8.0 で削除されました。search および search_throttled スレッドプールは現在 fixed タイプを持っています。

影響

アクションは必要ありません。

いくつかの transport 設定が置き換えられました。

詳細

以下の設定は 7.x で非推奨となり、8.0 で削除されました。各設定には、6.7 で導入された置き換え設定があります。

  • transport.tcp.porttransport.port に置き換えられました
  • transport.tcp.compresstransport.compress に置き換えられました
  • transport.tcp.connect_timeouttransport.connect_timeout に置き換えられました
  • transport.tcp_no_delaytransport.tcp.no_delay に置き換えられました
  • transport.profiles.profile_name.tcp_no_delaytransport.profiles.profile_name.tcp.no_delay に置き換えられました
  • transport.profiles.profile_name.tcp_keep_alivetransport.profiles.profile_name.tcp.keep_alive に置き換えられました
  • transport.profiles.profile_name.reuse_addresstransport.profiles.profile_name.tcp.reuse_address に置き換えられました
  • transport.profiles.profile_name.send_buffer_sizetransport.profiles.profile_name.tcp.send_buffer_size に置き換えられました
  • transport.profiles.profile_name.receive_buffer_sizetransport.profiles.profile_name.tcp.receive_buffer_size に置き換えられました

影響

置き換え設定を使用してください。削除された設定の使用を中止してください。elasticsearch.yml で削除された設定を指定すると、起動時にエラーが発生します。

選択的トランスポート圧縮はデフォルトで有効になっています。

詳細

8.0 より前は、トランスポート圧縮はデフォルトで無効でした。8.0 からは、transport.compressindexing_data にデフォルト設定されます。この構成は、生のインデックスデータの伝播がノード間で圧縮されることを意味します。

影響

ノード間の移動はインデックスパスに沿って減少します。一部のシナリオでは、CPU 使用率が増加する可能性があります。

トランスポート圧縮は lz4 にデフォルト設定されています。

詳細

8.0 より前は、transport.compression_scheme 設定は deflate にデフォルト設定されていました。8.0 からは、transport.compress_schemelz4 にデフォルト設定されます。

8.0 より前は、cluster.remote.<cluster_alias>.transport.compression_scheme 設定は deflate にデフォルト設定されていましたが、cluster.remote.<cluster_alias>.transport.compress が明示的に構成されている場合。8.0 からは、cluster.remote.<cluster_alias>.transport.compression_scheme はデフォルトで transport.compression_scheme にフォールバックします。

影響

この構成は、トランスポート圧縮が低い CPU 負荷と引き換えにやや低い圧縮率を生成することを意味します。

repositories.fs.compress ノードレベル設定は削除されました。

詳細

共有ファイルシステムリポジトリ ("type": "fs") のために、ノードレベル設定 repositories.fs.compress は以前、compress が指定されていないすべての共有ファイルシステムリポジトリの圧縮を有効にするために使用されていました。repositories.fs.compress 設定は削除されました。

影響

repositories.fs.compress ノードレベル設定の使用を中止してください。代わりにリポジトリ固有の compress 設定を使用して圧縮を有効にしてください。共有ファイルシステムリポジトリ設定を参照してください。

FIPS モードが有効になっている場合、デフォルトのパスワードハッシュは PBKDF2_STRETCH です。

詳細

xpack.security.fips_mode.enabled が true の場合(FIPS 140-2を参照)、xpack.security.authc.password_hashing.algorithm の値は pbkdf2_stretch にデフォルト設定されます。

以前のバージョンでは、この設定は常に bcrypt にデフォルト設定され、ランタイムチェックにより、値が明示的に「pbkdf2」バリアントに設定されていない限り、ノードの起動が防止されていました。

FIPS 140 モードを有効にしないクラスターには変更はありません。

影響

この変更は、アップグレードされたノードに影響を与えないはずです。パスワードハッシュアルゴリズムの明示的に構成された値を持つノードは、その構成された値を引き続き使用します。Elasticsearch 6.x または Elasticsearch 7.x で明示的に構成されたパスワードハッシュアルゴリズムを持たないノードは、起動に失敗していました。

xpack.monitoring.history.duration は metricbeat または elastic agent によって作成されたインデックスを削除しません。

詳細

8.0 より前は、Elasticsearch は xpack.monitoring.history.duration 設定に従ってすべての監視インデックスの削除を内部的に処理していました。

metricbeat または elastic agent >= 8.0 を使用して監視データを収集する場合、インデックスは ILM ポリシーを介して管理されます。設定が存在する場合、ポリシーは xpack.monitoring.history.duration を初期保持期間として使用して作成されます。

metricbeat で収集された監視データの保持設定をカスタマイズする必要がある場合は、.monitoring-8-ilm-policy ILM ポリシーを直接更新してください。

xpack.monitoring.history.duration 設定は、(レガシー) 内部収集を使用して書き込まれた監視インデックスにのみ適用され、metricbeat または agent によって作成されたインデックスには適用されません。

影響

アップグレード後、.monitoring-8-ilm-policy ILM ポリシーが希望する保持設定と一致していることを確認してください。

metricbeat または agent のみを使用して監視データを収集する場合は、カスタム xpack.monitoring.history.duration 設定を削除することもできます。

コマンドラインツールの変更

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

elasticsearch-migrate ツールは削除されました。

詳細

elasticsearch-migrate ツールは、ファイルレルムのユーザーとロールをネイティブレルムに変換する方法を提供していました。これは Elasticsearch 7.2.0 以降非推奨です。ユーザーとロールは、ネイティブレルムで直接作成する必要があります。

影響

elasticsearch-migrate ツールの使用を中止してください。elasticsearch-migrate ツールを使用しようとすると、エラーが発生します。

インデックス設定の変更

システムインデックスへの直接アクセスは非推奨です。

詳細

システムインデックスへの直接アクセスは非推奨であり、将来のバージョンで防止される可能性があります。システムインデックスにアクセスする必要がある場合は、特定のインデックスをターゲットにしたインデックス権限を持つセキュリティロールを作成し、allow_restricted_indices 権限を true に設定してください。この権限をインデックス権限に追加する方法については、インデックス権限を参照してください。

影響

システムインデックスに直接アクセスすると、APIレスポンスのヘッダーに警告が表示されます。利用可能な場合は、Kibana または関連する機能の Elasticsearch API を使用して、アクセスしたいデータを管理してください。

index.merge.policy.max_merge_at_once_explicit は非推奨であり、効果はありません。

詳細

index.merge.policy.max_merge_at_once_explicit インデックス設定は非推奨であり、効果はありません。

以前は、index.merge.policy.max_merge_at_once_explicit を指定して、強制マージ中または削除されたドキュメントを消去する際に同時にマージするセグメントの最大数を設定することができました。8.0 では、この数は設定に関係なく無制限です。

影響

index.merge.policy.max_merge_at_once_explicit を指定しても効果はありませんが、非推奨警告が生成されます。

これらの非推奨警告を回避するために、設定の使用を中止してください。新しいインデックスを作成する際に設定を指定せず、インデックスおよびコンポーネントテンプレートから設定を削除してください。

既存のデータストリームまたはインデックスから設定を削除するには、更新インデックス設定 API を使用して設定の値を null として指定してください。

Python

  1. resp = client.indices.put_settings(
  2. index="my-index-000001",
  3. settings={
  4. "index.merge.policy.max_merge_at_once_explicit": None
  5. },
  6. )
  7. print(resp)

Ruby

  1. response = client.indices.put_settings(
  2. index: 'my-index-000001',
  3. body: {
  4. 'index.merge.policy.max_merge_at_once_explicit' => nil
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.indices.putSettings({
  2. index: "my-index-000001",
  3. settings: {
  4. "index.merge.policy.max_merge_at_once_explicit": null,
  5. },
  6. });
  7. console.log(response);

コンソール

  1. PUT my-index-000001/_settings
  2. {
  3. "index.merge.policy.max_merge_at_once_explicit": null
  4. }

index.max_adjacency_matrix_filters インデックス設定は削除されました。

詳細

index.max_adjacency_matrix_filters インデックス設定は削除されました。以前は、この設定を使用して 隣接行列集約 の最大フィルター数を構成することができました。indices.query.bool.max_clause_count インデックス設定が現在、集約の最大フィルター数を決定します。

影響

index.max_adjacency_matrix_filters インデックス設定の使用を中止してください。

インデックス設定を含むリクエストはエラーを返します。7.x インデックスを持つクラスターをアップグレードすると、Elasticsearch は 設定をアーカイブします

インデックスおよびコンポーネントテンプレートからインデックス設定を削除してください。この設定を含むテンプレートを使用しようとすると、失敗し、エラーが返されます。これには、ILM ロールオーバーアクションなどの自動化された操作が含まれます。

index.force_memory_term_dictionary 設定は削除されました。

詳細

index.force_memory_term_dictionary 設定は、適切な場合に用語辞書をディスクに残す最適化からユーザーがオプトアウトできるようにするための一時的な手段として 7.0 で導入されました。この最適化は現在必須であり、設定は削除されました。

影響

index.force_memory_term_dictionary インデックス設定の使用を中止してください。この設定を含むリクエストはエラーを返します。

index.soft_deletes.enabled 設定は削除されました。

詳細

ソフト削除を無効にしてインデックスを作成することは 7.6 で非推奨となり、8.0 ではもはやサポートされていません。index.soft_deletes.enabled 設定はもはや false に設定できません。

影響

index.soft_deletes.enabled インデックス設定の使用を中止してください。index.soft_deletes.enabledfalse に設定するリクエストはエラーを返します。

index.translog.retention.age および index.translog.retention.size 設定は削除されました。

詳細

トランスログ保持設定 index.translog.retention.age および index.translog.retention.size は、7.4 では実質的に無視され、7.7 で非推奨となり、8.0 では ソフト削除 に代わって削除されました。

影響

index.translog.retention.age および index.translog.retention.size インデックス設定の使用を中止してください。これらの設定を含むリクエストはエラーを返します。

Java API の変更

indexlifecycle パッケージは Java High Level REST Client で ilm に名前が変更されました。

詳細

ハイレベル REST クライアントでは、indexlifecycle パッケージが Elasticsearch コード内のパッケージ名変更に合わせて ilm に名前が変更されました。

影響

ilm パッケージを使用するようにワークフローとアプリケーションを更新してください。indexlifecycle の代わりに。

Fuzziness の変更。

詳細

Fuzziness インスタンスを作成するには、fromString および fromEdits メソッドを使用し、以前は文字列と数値の両方を受け入れていた build メソッドの使用を避けてください。クエリビルダーのいくつかのファジネスセッター(例: MatchQueryBuilder#fuzziness)は、もはやオブジェクトではなく Fuzziness インスタンスのみを受け入れます。

ファジネスは、任意の数値を解析する際に寛容であり、許可された編集距離 0、1、または 2 のいずれかに静かに切り捨てられていました。この寛容さは現在取り除かれ、他の値(例: 1.3 のような浮動小数点数)でインスタンスを構築しようとするとエラーが発生します。

影響

利用可能な定数(例: Fuzziness.ONEFuzziness.AUTO)を使用するか、上記のファクトリメソッドを使用して独自のインスタンスを構築してください。許可された Fuzziness 値のみを使用してください。

Repository の変更。

詳細

リポジトリはもはや IndexShard に依存していません。restoreShard および snapshotShard の契約は、テスト可能性を向上させるために Store および MappingService に縮小されました。

影響

アクションは必要ありません。

JVM オプションの変更

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

es.disk.auto_release_flood_stage_block は削除されました。

詳細

ノードが洪水段階のディスクウォーターマークを超えると、ノードがディスクスペースを完全に使い果たすのを防ぐために、すべてのインデックスにブロックが追加されます。デフォルトでは、7.4 以降、ノードが再び高いウォーターマークを下回ると、ブロックは自動的に削除されますが、この動作はシステムプロパティ es.disk.auto_release_flood_stage_blockfalse に設定することで無効にできます。この動作はもはやオプションではなく、このシステムプロパティは設定しない必要があります。

影響

es.disk.auto_release_flood_stage_block システムプロパティの使用を中止してください。このシステムプロパティを設定すると、起動時にエラーが発生します。

es.rest.url_plus_as_space は削除されました。

詳細

バージョン 7.4 以降、URL 内の + はすべての REST API 機能によって %2B としてエンコードされます。以前のバージョンでは、+ は単一のスペースとして処理されていました。これらの以前のバージョンで、アプリケーションが + を単一のスペースとして処理する必要がある場合は、システムプロパティ es.rest.url_plus_as_spacetrue に設定することで古い動作に戻すことができました。この動作は非推奨であり、このシステムプロパティを true に設定することは、バージョン 8 ではサポートされなくなります。

影響

アプリケーションまたはワークフローを更新して、URL 内の +%2B としてエンコードされることを前提としてください。

es.unsafely_permit_handshake_from_incompatible_builds は削除されました。

詳細

Elasticsearch には、同じバージョンのノードのペアが正確に同じビルドを実行していることを確認するチェックがあります。以前のバージョンでは、このチェックはシステムプロパティ es.unsafely_permit_handshake_from_incompatible_buildstrue に設定することで回避できました。このシステムプロパティの使用は現在禁止されています。

影響

es.unsafely_permit_handshake_from_incompatible_builds システムプロパティの使用を中止し、同じバージョンのすべてのノードが正確に同じビルドを実行していることを確認してください。このシステムプロパティを設定すると、起動時にエラーが発生します。

ログの変更

Elasticsearch の JSON ログは現在 ECS に準拠しています。

詳細

Elasticsearch の JSON ログ は現在、Elastic Common Schema (ECS) に準拠しています。以前は、Elasticsearch の JSON ログはカスタムスキーマを使用していました。

影響

アプリケーションが Elasticsearch の JSON ログを解析する場合は、新しい ECS 形式をサポートするように更新してください。

Elasticsearch はもはや非推奨ログや遅延ログをプレーンテキストで出力しません。

詳細

Elasticsearch は以下のログのプレーンテキストバージョンをもはや出力しません:

  • 非推奨ログ
  • インデクシング遅延ログ
  • 検索遅延ログ

これらのログは現在、JSON のみで利用可能です。

サーバーログは引き続き JSON とプレーンテキスト形式の両方で利用可能です。

影響

アプリケーションが Elasticsearch のプレーンテキストログを解析する場合は、新しい ECS JSON ログを使用するように更新してください。

監査ログはサイズによってロールオーバーおよびアーカイブされます。

詳細

既存の毎日のロールオーバーに加えて、セキュリティ監査ログはディスクサイズ制限によってもロールオーバーされます。さらに、ロールオーバーされたログは gzip 圧縮されます。

影響

ロールオーバーされた監査ログファイルの名前(現在のログの名前ではありません)は変更されました。これらのファイルを消費するために自動化ツールを設定している場合は、新しい名前を使用するように構成し、プレーンテキストの代わりに gzip アーカイブを考慮する必要があります。Elasticsearch の Docker ビルドは、ロールオーバーが行われない stdout でログを記録するため、影響を受けません。

マッピングの変更

Elasticsearch 6.x およびそれ以前のバージョンで作成されたインデックスはサポートされていません。

詳細

Elasticsearch 8.0 は、バージョン 7.0 以上で作成されたインデックスを読み取ることができます。Elasticsearch 8.0 ノードは、バージョン 7.0 より前の Elasticsearch で作成されたインデックスが存在する場合、起動しません。

影響

Elasticsearch 8.x に持ち越す必要がある場合は、Elasticsearch 6.x またはそれ以前で作成されたインデックスを Elasticsearch 7.x で再インデックス化してください。

Elasticsearch 6.x およびそれ以前のバージョンで作成されたクローズされたインデックスはサポートされていません。

詳細

以前のバージョンでは、ノードは、インデックスがクローズされている限り、前のメジャーバージョンより前のバージョンで作成されたデータを持っていても起動しました。Elasticsearch は現在、起動時にすべてのインデックス(オープンまたはクローズ)との互換性を確保しています。

影響

Elasticsearch 8.x に持ち越す必要がある場合は、Elasticsearch 6.x またはそれ以前で作成されたクローズされたインデックスを Elasticsearch 7.x で再インデックス化してください。

フィールドごとの最大完了コンテキスト数は現在 10 です。

詳細

単一の完了フィールド内の完了コンテキストの数は 10 に制限されています。

影響

完了フィールド内で最大 10 の完了コンテキストを使用してください。10 を超える完了コンテキストを指定するとエラーが返されます。

マルチフィールド内のマルチフィールドはもはやサポートされていません。

詳細

以前は、マルチフィールド内にマルチフィールドを定義することが可能でした。チェーンされたマルチフィールドの定義は 7.3 で非推奨となり、現在はサポートされていません。

影響

マッピングを移行するには、fields ブロック内に存在するすべての fields のインスタンスを削除する必要があります。これは、チェーンされた fields ブロックを単一レベルにフラット化するか、適切であれば copy_to に切り替えることによって行います。

_field_names メタデータフィールドの enabled パラメータは削除されました。

詳細

この設定は 7.5 で非推奨となり、新しいインデックスではサポートされていません。古いインデックスのマッピングは引き続き機能しますが、非推奨の警告が表示されます。

影響

enabled 設定は _field_names からテンプレートおよびマッピングから削除する必要があります。_field_names を無効にする必要はありません。なぜなら、もはや大きなインデックスオーバーヘッドを持たないからです。

フィールドマッピングの boost パラメータは削除されました。

詳細

インデックス時のブーストは 5x 系列から非推奨となりましたが、マッピング内でフィールド固有のブーストを宣言することはまだ可能でした。これは現在完全に削除されました。7x で構築されたインデックスにマッピングブーストが含まれている場合、警告が表示され、ブーストは 8.0 では効果がありません。新しいインデックスでは、マッピングにブーストを設定することはまったく許可されません。

影響

boost 設定はテンプレートおよびマッピングから削除する必要があります。代わりにクエリで直接ブーストを使用してください。

Java 時間形式は joda 時間形式に取って代わります。

詳細

7.0 では、Elasticsearch は日付関連の解析、フォーマット、および計算のために joda 時間から java 時間に切り替えました。7.0 およびそれ以降のバージョンで作成されたインデックスは、すでに java 時間形式のマッピングを使用する必要があります。ただし、joda 時間形式を使用している以前のインデックスは、java 時間形式のマッピングを使用するために再インデックス化する必要があります。

影響

詳細な移行ガイドについては、Java 時間移行ガイドを参照してください。

いくつかの geo_shape マッピングパラメータが削除されました。

詳細

次の geo_shape マッピングパラメータは 6.6 で非推奨となりました:

  • tree
  • tree_levels
  • strategy
  • distance_error_pct

これらのパラメータは 8.0.0 で削除されました。

影響

8.0 では、これらのパラメータを含むマッピングを作成することはできません。ただし、これらのマッピングパラメータを使用している 7.x インデックスは引き続き機能します。

sparse_vector フィールドデータ型は削除されました。

詳細

sparse_vector フィールドタイプは 7.6 で非推奨となり、8.0 で削除されました。この実験的フィールドタイプにはあまり関心が見られず、現在の設計では明確なユースケースが見られません。スパースベクトル機能に関するフィードバックや提案がある場合は、GitHub または discuss フォーラムを通じてお知らせください。

影響

sparse_vector フィールドデータ型の使用を中止してください。このフィールドデータ型のマッピングを含むリクエストはエラーを返します。

パッケージングの変更

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

データフォルダーのレイアウトが変更されました。

詳細

各ノードのデータは、path.data 設定によって設定されたデータディレクトリに直接保存されるようになりました。${path.data}/nodes/0 ではなく、node.max_local_storage_nodes 設定の削除により、ノードはもはやデータパスを共有できなくなりました。

影響

起動時に、Elasticsearch は自動的にデータパスを新しいレイアウトに移行します。この自動移行は、データパスに複数のノードのデータが含まれている場合は進行しません。アップグレードする前に、各ノードが独自のデータパスを持つ構成に移行する必要があります。

データパスに複数のノードのデータが含まれている構成をアップグレードしようとすると、自動移行は失敗し、Elasticsearch は起動を拒否します。これを解決するには、手動で移行を行う必要があります。追加のノードのデータは、${path.data}/nodes/1${path.data}/nodes/2 などと名付けられたフォルダーに保存されており、これらのフォルダーを適切な場所に移動し、対応するノードをこの場所でデータパスを使用するように構成する必要があります。各ノードが path.data 設定で複数のデータパスを持っている場合は、すべての対応するサブフォルダーを並行して移動する必要があります。各ノードは、すべてのデータパスで同じサブフォルダー (例: nodes/2) を使用します。

デフォルトの Maxmind geoip データベースは削除されました。

詳細

デフォルトの Maxmind geoip データベースは、Elasticsearch にデフォルトで付属していたものが削除されました。これらのデータベースは古く、時代遅れであり、これらのデータベースを使用すると、geoip ルックアップが不正確になる可能性があります。

デフォルトでは、7.13 以降、これらの事前パッケージ化された geoip データベースが、構成ディレクトリにデータベースが指定されていない場合や、geoip ダウンローダーが geoip データベースをダウンロードする前に使用されました。geoip データベースダウンローダーが新しいデータベースのダウンロードを完了すると、これらの事前パッケージ化されたデータベースはもはや使用されません。

影響

geoip ダウンローダーが無効になっていて、各インジェストノードの構成ディレクトリに geoip データベースが提供されていない場合、geoip プロセッサはもはや geoip ルックアップを実行せず、要求されたデータベースが利用できないことを示すタグをこれらのドキュメントに付けます。

クラスターが起動した後、geoip ダウンローダーが最新のデータベースのダウンロードを完了する前に、geoip プロセッサは geoip ルックアップを実行せず、要求されたデータベースが利用できないことを示すタグをドキュメントに付けます。geoip ダウンローダーが最新のデータベースのダウンロードを完了すると、geoip プロセッサは通常通り機能します。クラスターの起動後、geoip プロセッサが geoip ルックアップを実行できない時間のウィンドウは非常に短いはずです。

Painless の変更

JodaCompatibleZonedDateTime クラスは削除されました。

詳細

Joda 日時から Java 日時への移行として、スクリプトは JodaCompatibleZonedDateTime という中間クラスを使用していました。このクラスは削除され、ZonedDateTime に置き換えられました。スクリプト内で JodaCompatibleZonedDateTime へのキャストや、JodaCompatibleZonedDateTime でのみ利用可能なメソッド呼び出しを使用すると、コンパイルエラーが発生し、アップグレードされたノードが起動しない可能性があります。

影響

アップグレードする前に、スクリプト内の getDayOfWeekgetDayOfWeekEnum().value に置き換えてください。getDayOfWeek の使用で int の戻り値を期待すると、コンパイルエラーまたはランタイムエラーが発生し、アップグレードされたノードが起動しない可能性があります。

次の JodaCompatibleZonedDateTime メソッドは、アップグレード前に ZonedDateTime メソッドに置き換える必要があります:

  • getMillis()toInstant().toEpochMilli()
  • getCenturyOfEra()get(ChronoField.YEAR_OF_ERA) / 100
  • getEra()get(ChronoField.ERA)
  • getHourOfDay()getHour()
  • getMillisOfDay()get(ChronoField.MILLI_OF_DAY)
  • getMillisOfSecond()get(ChronoField.MILLI_OF_SECOND)
  • getMinuteOfDay()get(ChronoField.MINUTE_OF_DAY)
  • getMinuteOfHour()getMinute()
  • getMonthOfYear()getMonthValue()
  • getSecondOfDay()get(ChronoField.SECOND_OF_DAY)
  • getSecondOfMinute()getSecond()
  • getWeekOfWeekyear()get(IsoFields.WEEK_OF_WEEK_BASED_YEAR)
  • getWeekyear()get(IsoFields.WEEK_BASED_YEAR)
  • getYearOfCentury()get(ChronoField.YEAR_OF_ERA) % 100
  • getYearOfEra()get(ChronoField.YEAR_OF_ERA)
  • toString(String) → DateTimeFormatter
  • toString(String, Locale) → DateTimeFormatter

プラグインの変更

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

S3、GCS、および Azure リポジトリプラグインは、Elasticsearch に含まれるようになりました。

詳細

以前のバージョンの Elasticsearch では、Amazon S3、Google Cloud Storage (GCS)、または Microsoft Azure Blob Storage にバックアップされたスナップショットリポジトリを登録するには、まず対応する Elasticsearch プラグインをインストールする必要がありました。たとえば、repository-s3 のようにです。これらのプラグインは、現在 Elasticsearch にデフォルトで含まれています。

影響

次のプラグインをインストールする必要はなく、試みるべきではありません。

  • repository-azure
  • repository-gcs
  • repository-s3

Elasticsearch と elasticsearch-plugin CLI ツールは、これらのプラグインのインストールおよび削除の試行を許容するように変更され、既存の自動化が壊れないようにしています。将来的には、これらのプラグインをインストールしようとするとエラーになります。

具体的には、elasticsearch-plugin CLI ツールは、上記のプラグインのいずれかをインストールしようとすると失敗せず、警告を表示してプラグインをスキップします。これらのプラグインがすでにインストールされている場合(たとえば、古いバージョンの Elasticsearch を実行しているときにインストールした場合)、elasticsearch-plugin を使用して削除できます。インストールされていない場合に削除を試みると成功しますが、警告が表示されます。

Docker を使用して Elasticsearch を実行し、構成ファイルを使用してプラグインを管理している場合、Elasticsearch をアップグレードした後に最初に起動すると、すでにインストールされている場合は上記のプラグインが削除されます。構成ファイルにこれらのプラグインが指定されている場合、Elasticsearch はそれらを無視し、警告ログメッセージを出力します。

サードパーティのプラグインはもはや REST リクエストをインターセプトできません (RestHandlerWrapper)

詳細

以前のバージョンの Elasticsearch では、サードパーティのプラグインが getRestHandlerWrapper メソッドを実装してノードへのすべての REST リクエストをインターセプトできました。この機能の一般的な使用法は、組み込みのセキュリティ機能を置き換えるカスタムセキュリティプラグインを実装することでした。この拡張ポイントは、サードパーティのプラグインにはもはや利用できません。

影響

以前のバージョンの Elasticsearch と互換性のあるように設計されたサードパーティのプラグインは、Elasticsearch バージョン 8.0 以降と互換性がない可能性があります。

Elastic によって製造およびサポートされていないプラグインに依存している場合は、プラグインの作成者に確認し、アップグレード前にターゲットバージョンの Elasticsearch にプラグインが利用可能であることを確認してください。

REST API changes

REST API エンドポイントに _xpack が含まれているものは削除されました。

詳細

7.0 では、パスに _xpack を含む REST エンドポイントが非推奨となりました。これらのエンドポイントは 8.0 で削除されました。非推奨となり削除された各エンドポイントは、_xpack を含まない新しいエンドポイントに置き換えられました。例えば、/{index}/_xpack/graph/_explore/{index}/_graph/explore に置き換えられます。

影響

置き換えられた REST API エンドポイントを使用してください。_xpack API エンドポイントに送信されたリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合_xpack プレフィックスを含むリクエストは、_xpack プレフィックスなしの対応する URL にリダイレクトされます。

マッピングタイプを含む REST API エンドポイントは削除されました。

詳細

マッピングタイプは削除されました。マッピングタイプを含む API エンドポイントも削除されました。代わりにタイプなしのエンドポイントを使用してください。

API タイプ付き API エンドポイント タイプなし API エンドポイント
Bulk <target>/<type>/_bulk <target>/_bulk
Count <target>/<type>/_count <target>/_count
Delete <index>/<type>/<_id> <index>/_doc/<_id>
Delete by query <target>/<type>/_delete_by_query <target>/_delete_by_query
Explain <index>/<type>/<_id>/_explain <index>/_explain/<_id>
Get <index>/<type>/<_id> <index>/_doc/<_id>
<index>/<type>/<_id>/_source <index>/_source/<_id>
Get field mapping _mapping/<type>/field/<field> _mapping/field/<field>
<target>/_mapping/<type>/field/<field> <target>/_mapping/field/<field>
Get mapping _mapping/<type> _mapping または <target>/_mapping
<target>/<type>/_mapping <target>/_mapping
<target>/_mapping/<type> <target>/_mapping
Graph explore <index>/<type>/_graph/explore <index>/_graph/explore
Index <target>/<type>/<_id>/_create <target>/_create/<_id>
<target>/<type> <target>/_doc
<target>/<type>/<_id> <target>/_doc/<_id>
Multi get <index>/<type>/_mget <index>/_mget
Multi search <target>/<type>/_msearch <target>/_msearch
Multi search template <target>/<type>/_msearch/template <target>/_msearch/template
Multi term vectors <index>/<type>/_mtermvectors <index>/_mtermvectors
Rollup search <target>/<type>/_rollup_search <target>/_rollup_search
Search <target>/<type>/_search <target>/_search
Search template <target>/<type>/_search/template <target>/_search/template
Term vectors <index>/<mapping_type>/<_id>/_termvectors <index>/_termvectors<_id>
<index>/<mapping_type>/_termvectors <index>/_termvectors
Update <index>/<type>/<_id>/_update <index>/_update/<_id>
Update by query <target>/<type>/_update_by_query <target>/_update_by_query
Update mapping <target>/<type>/_mapping <target>/_mapping
<target>/_mapping/<type> <target>/_mapping
_mapping/<type> <target>/_mapping
Validate <target>/<type>/_validate/query <target>/_validate/query

影響

アプリケーションを更新して、タイプなしの REST API エンドポイントを使用してください。マッピングタイプを含むエンドポイントへのリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、カスタムマッピングタイプを含むリクエストは無視されます。リクエストは対応するタイプなしの URL にリダイレクトされます。リクエストボディ内のカスタムマッピングタイプとタイプ関連の HTTP パラメータは無視され、必要に応じてレスポンスには _type : _doc が含まれます。

クロスクラスタ検索 (CCS) は、現在、前のマイナーバージョンとのみ後方互換性があります。

詳細

8.0以降、Elasticはローカルクラスターから次のようなリモートクラスターへの検索をサポートしています:

- 前のマイナーバージョン。
- 同じバージョン。
- 同じメジャーバージョン内の新しいマイナーバージョン。

Elasticは、メジャーバージョンの最後のマイナーバージョンを実行しているローカルクラスターから、次のメジャーバージョンの任意のマイナーバージョンを実行しているリモートクラスターへの検索もサポートしています。たとえば、ローカルの7.17クラスターは、任意のリモート8.xクラスターを検索できます。


| | | | | | | | | | | | | | | | | | | | |
| —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- |
| | リモートクラスターのバージョン |
| ローカルクラスターのバージョン | 6.8 | 7.1–7.16 | 7.17 | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 | 8.5 | 8.6 | 8.7 | 8.8 | 8.9 | 8.10 | 8.11 | 8.12 | 8.13 | 8.14 | 8.15 |
| 6.8 | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| 7.1–7.16 | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| 7.17 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.0 | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.1 | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.2 | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.3 | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.4 | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.5 | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.6 | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.7 | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.8 | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.9 | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.10 | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.11 | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes |
| 8.12 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes |
| 8.13 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes |
| 8.14 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes |
| 8.15 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes |

EQL 検索 API では、ローカルおよびリモートクラスタは、7.17.7 (含む) より前または 8.5.1 (含む) より前のバージョンを使用している場合、同じ Elasticsearch バージョンを使用する必要があります。

たとえば、ローカルの8.0クラスターは、リモートの7.17または任意のリモート8.xクラスターを検索できます。ただし、ローカルの8.0クラスターからリモートの7.16または6.8クラスターへの検索はサポートされていません。

以前は、リモートクラスタでの検索もサポートしていました:

  • ローカルクラスタのメジャーバージョンの任意のマイナーバージョン。
  • 前のメジャーバージョンの最後のマイナーリリース。

ただし、そのような検索は未定義の動作を引き起こす可能性があります。

影響

同じバージョンまたは新しいバージョンを使用しているリモートクラスタでのみクロスクラスタ検索を実行する場合、変更は必要ありません。

以前に Elasticsearch の古いバージョンを実行しているリモートクラスタで検索していた場合は、推奨される解決策について クロスクラスタ検索サポートを確認する を参照してください。

サポートされていない構成を使用したクロスクラスター検索は、まだ機能する可能性があります。ただし、そのような検索はElasticによってテストされておらず、その動作は保証されていません。

terms 集約はもはや _term 順序キーをサポートしていません。

詳細

terms 集約はもはや _term キーを order 値でサポートしていません。バケットをその用語でソートするには、_key を代わりに使用してください。

影響

_term 順序キーの使用を中止してください。_term 順序キーを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合_term 順序は無視され、key が代わりに使用されます。

date_histogram 集約はもはや _time 順序キーをサポートしていません。

詳細

date_histogram 集約はもはや _time キーを order 値でサポートしていません。バケットをそのキーでソートするには、_key を代わりに使用してください。

影響

_time 順序キーの使用を中止してください。_time 順序キーを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合_time 順序は無視され、_key が代わりに使用されます。

moving_avg 集約は削除されました。

詳細

moving_avg 集約は 6.4 で非推奨となり、削除されました。移動平均を計算するには、代わりに moving_fn 集約 を使用してください。

影響

moving_avg 集約の使用を中止してください。moving_avg 集約を含むリクエストはエラーを返します。

percentiles 集約の percents パラメータはもはや重複値をサポートしていません。

詳細

percentiles 集約percents パラメータを指定する場合、その値は一意でなければなりません。そうでない場合、例外が発生します。

影響

percentiles 集約の percents パラメータに一意の値を使用してください。percents パラメータに重複値が含まれるリクエストはエラーを返します。

date_histogram 集約の interval パラメータはもはや有効ではありません。

詳細

date_histogram 集約 または https://www.elastic.co/guide/en/elasticsearch/reference/8.15/search-aggregations-bucket-composite-aggregation.html#_date_histograminterval パラメータを指定することはエラーとなります。代わりに、calendar_interval または fixed_interval を適切に使用してください。

影響

date_histogram 集約または date_histogram コンポジットソースでの interval パラメータの使用は、今後エラーを生成します。代わりに、より具体的な fixed_interval または calendar_interval パラメータを使用してください。

互換性

rest-api-compatibility要求された場合interval パラメータは固定またはカレンダー間隔に適応されます。

nGram および edgeNGram トークンフィルタ名は削除されました。

詳細

nGram および edgeNGram トークンフィルタ名は 6.4 から非推奨となり、削除されました。両方のトークンフィルタは、7.0 以降は代替名 ngram および edge_ngram のみで使用できます。

影響

同等の ngram および edge_ngram トークンフィルタを使用してください。nGram および edgeNGram トークンフィルタ名を含むリクエストはエラーを返します。

nGram および edgeNGram トークナイザ名は削除されました。

詳細

nGram および edgeNGram トークナイザ名は 7.6 で非推奨となり、新しいインデックスではサポートされなくなりました。7.6 以降に作成されたインデックスのマッピングは引き続き機能しますが、非推奨警告が表示されます。新しいインデックスおよびインデックステンプレートでは、トークナイザ名を完全に同等の ngram または edge_ngram 名に変更する必要があります。

影響

ngram および edge_ngram トークナイザを使用してください。nGram および edgeNGram トークナイザ名を使用して新しいインデックスを作成するリクエストはエラーを返します。

in_flight_requests スタットは、ログおよび診断 API で inflight_requests に名前が変更されました。

詳細

ログ出力および診断 API (ノード統計 API など) でのフライト中のリクエストのサーキットブレーカーの名前が in_flight_requests から inflight_requests に変更され、対応する設定の名前と一致するようになりました。

影響

ワークフローとアプリケーションを更新して、inflight_requests スタットを in_flight_requests の代わりに使用してください。

投票設定除外 API エンドポイントが変更されました。

詳細

POST /_cluster/voting_config_exclusions/{node_filter} API は、除外するノードの名前または ID を指定できる POST /_cluster/voting_config_exclusions?node_names=... および POST /_cluster/voting_config_exclusions?node_ids=... に置き換えられました。

影響

POST /_cluster/voting_config_exclusions?node_ids=... を使用し、ノードフィルタを使用する代わりに除外するノードを指定してください。/_cluster/voting_config_exclusions/{node_filter} エンドポイントに送信されたリクエストはエラーを返します。

リモートシステムインデックスは、自動フォローパターンに一致する場合、自動的にはフォロワーとして追跡されません。

詳細

自動フォローパターンに一致するリモートシステムインデックスは、自動的にフォロワーインデックスとして構成されません。

影響

望ましい動作である場合は、リモートシステムインデックスをフォローするために明示的に フォロワーインデックスを作成する してください。

EQL wildcard 関数は削除されました。

詳細

wildcard 関数は Elasticsearch 7.13.0 で非推奨となり、削除されました。

影響

代わりに like または regex キーワード を使用してください。

ILM freeze アクションは現在、何もしない操作です。

詳細

ILM フリーズアクションは現在、何もしない操作であり、インデックスに対して何のアクションも実行しません。フリーズ API エンドポイントは 8.0 で削除されました。

影響

ILM ポリシーを更新して、freeze アクションを cold フェーズから削除してください。

ILM ポリシーの追加検証。

詳細

ILM ポリシーを作成または更新するには、参照されるスナップショットリポジトリと SLM ポリシーが存在する必要があります。

影響

コードまたは構成管理を更新して、リポジトリと SLM ポリシーがそれらを参照するポリシーの前に作成されることを確認してください。

非推奨の _upgrade APIは削除されました。

詳細

以前は、_upgrade APIが前のメジャーバージョンから現在のバージョンにインデックスをアップグレードしていました。_reindex APIをその目的のために使用する必要があります。

影響

古い _upgrade APIへのリクエストはエラーを返します。

非推奨のフリーズインデックスAPIは削除されました。

詳細

フリーズインデックスAPI(POST /<index>/_freeze)は削除されました。ヒープメモリ使用量の改善により、インデックスをフリーズする理由が排除されました。既存のフリーズされたインデックスを解除するには、アンフリーズインデックスAPIを使用できます。一部のユースケースでは、フローズンティアがフリーズされたインデックスの適切な代替となる場合があります。詳細についてはデータティアを参照してください。

影響

古いフリーズインデックスAPIへのリクエストはエラーを返します。

force merge APIのmax_num_segmentsおよびonly_expunge_deletesパラメータは、同じリクエストで両方を指定することはできません。

詳細

以前は、force merge APIはonly_expunge_deletesおよびmax_num_segmentsパラメータを同時にデフォルト以外の値に設定することを許可していました。しかし、max_num_segmentsonly_expunge_deletestrueに設定されているときに静かに無視され、適用されたという誤った印象を与えていました。

影響

force merge APIを使用する際は、max_num_segmentsおよびonly_expunge_deletesパラメータの両方に値を指定しないでください。両方のパラメータに値を含むリクエストはエラーを返します。

createまたはupdate index template APIのtemplateパラメータは削除されました。

詳細

6.0では、createまたはupdate index templateリクエストでtemplateパラメータを非推奨とし、index_patternsの使用を推奨しました。templateパラメータのサポートは8.0で削除されました。

影響

createまたはupdate index template APIindex_patternsパラメータを使用してください。templateパラメータを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、templateパラメータはindex_patternsにマッピングされます。

同期フラッシュは削除されました。

詳細

同期フラッシュは7.6で非推奨となり、8.0で削除されました。代わりに通常のフラッシュを使用してください。これは7.6以降の同期フラッシュと同じ効果があります。

影響

flush APIを使用してください。/<index>/flush/syncedまたは/flush/syncedエンドポイントへのリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、同期フラッシュへのリクエストは同等の非同期フラッシュURLにルーティングされます。

close index APIの?wait_for_active_shardsパラメータのデフォルトが変更されました。

詳細

以前のバージョンでインデックスを閉じるとき、デフォルトではElasticsearchは閉じたインデックスのシャードが適切に割り当てられるのを待たずに返されました。8.0以降のデフォルトの動作は、index.write.wait_for_active_shardsインデックス設定に従ってシャードが割り当てられるのを待つことです。

影響

新しい動作を受け入れるか、必要に応じて?wait_for_active_shards=0を指定して古い動作を保持してください。

index stats APIのtypesクエリパラメータは削除されました。

詳細

index stats APIのtypesクエリパラメータは削除されました。以前は、typesindexingクエリパラメータと組み合わせて特定のマッピングタイプのインデックス統計を返すことができました。マッピングタイプは8.0で削除されました。

影響

typesクエリパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、typesクエリパラメータは無視され、インデックス全体の統計が返されます。

user_agentインジェストプロセッサのecsパラメータは効果がありません。

詳細

7.2では、ecsパラメータがuser_agentインジェストプロセッサに対して非推奨となりました。8.xでは、user_agentインジェストプロセッサは、ecs値に関係なくElastic Common Schema (ECS)フィールドのみを返します。

影響

非推奨警告を避けるために、インジェストパイプラインからパラメータを削除してください。パイプラインがecs値を指定している場合、その値は無視されます。

include_type_nameクエリパラメータは削除されました。

詳細

include_type_nameクエリパラメータはインデックス作成、インデックステンプレート、およびマッピングAPIから削除されました。以前は、include_type_nametrueに設定して、リクエストとレスポンスにマッピングタイプ名を含めることができました。マッピングタイプは8.xで削除されました。

影響

include_type_nameクエリパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、include_type_nameクエリパラメータは無視され、リクエスト内のカスタムマッピングタイプは削除されます。

リモートからの再インデックスは、URLエンコードされたインデックス名を再エンコードします。

詳細

リモートからの再インデックスは以前、URLエンコードされたインデックス名を許可し、リモートホストの検索リクエストを生成する際に再エンコードしませんでした。この寛容さは削除され、再インデックスがリモート検索リクエストを生成する際にすべてのインデックス名が正しくエンコードされるようになりました。

影響

リモートリクエストのためにエンコードされていないインデックス名を指定してください。

再インデックス、クエリによる削除、およびクエリによる更新APIでは、sizeパラメータの名前が変更されました。

詳細

以前、_reindexリクエストはボディ内に2つの異なるサイズ仕様を持っていました:

  • 外部レベル、処理する最大ドキュメント数を決定
  • source要素内、スクロール/バッチサイズを決定。

外部レベルのsizeパラメータは、混乱を避けるためにmax_docsに名前が変更され、意味が明確になりました。

同様に、sizeパラメータはmax_docsに、_delete_by_queryおよび_update_by_queryに名前が変更され、3つのインターフェースの一貫性が保たれました。

影響

置き換えパラメータを使用してください。sizeパラメータを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された場合、sizeパラメータはmax_docsパラメータにマッピングされます。

クエリによる更新APIは、サポートされていないscriptフィールドを拒否します。

詳細

サポートされていないフィールドをscriptオブジェクトに含む更新によるクエリAPIリクエストは、現在エラーを返します。以前は、APIはこれらのサポートされていないフィールドを静かに無視していました。

影響

エラーを避けるために、scriptオブジェクトからサポートされていないフィールドを削除してください。

cat node APIのlocalクエリパラメータは削除されました。

詳細

?localパラメータはGET _cat/nodes APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?localパラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。

影響

?localクエリパラメータの使用を中止してください。cat node APIリクエストにこのパラメータが含まれていると、エラーが返されます。

cat shard APIのlocalクエリパラメータは削除されました。

詳細

?localパラメータはGET _cat/shards APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?localパラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。

影響

?localクエリパラメータの使用を中止してください。cat shards APIリクエストにこのパラメータが含まれていると、エラーが返されます。

cat indices APIのlocalクエリパラメータは削除されました。

詳細

?localパラメータはGET _cat/indices APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?localパラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。

影響

?localクエリパラメータの使用を中止してください。cat indices APIリクエストにこのパラメータが含まれていると、エラーが返されます。

get field mapping APIのlocalクエリパラメータは削除されました。

詳細

get field mapping APIのlocalパラメータは7.8で非推奨となり、8.0で削除されます。このパラメータは無操作であり、フィールドマッピングは常にローカルで取得されます。

影響

localクエリパラメータの使用を中止してください。get field mapping APIリクエストにこのパラメータが含まれていると、エラーが返されます。

ジョブAPIへのデータのポストは非推奨です。

詳細

機械学習のジョブAPIへのデータのポストは7.11.0から非推奨となり、将来のメジャーバージョンで削除されます。

影響

代わりにdatafeedsを使用してください。

job_idプロパティはUpdate datafeeds APIから削除されました。

詳細

データフィード内のjob_idを更新する機能は7.3.0で非推奨となり、8.0で削除されました。

影響

異常検出ジョブ間でデータフィードを移動することはできません。

リポジトリの作成および削除APIは、リポジトリが使用中の場合に409ステータスコードを返します。500の代わりに。

詳細

スナップショットリポジトリの作成または更新APIおよびスナップショットリポジトリの削除APIは、リクエストが使用中の既存のリポジトリを変更しようとする場合に409ステータスコードを返します。500のステータスコードの代わりに。

影響

リポジトリの作成および削除を処理するクライアントコードを更新して、この変更を反映させてください。

allow_no_datafeedsプロパティは機械学習APIから削除されました。

詳細

allow_no_datafeedsプロパティは、cat datafeedsget datafeedsget datafeed statistics、およびget anomaly detection jobs APIで7.10.0で非推奨となりました。

影響

allow_no_matchを代わりに使用してください。

allow_no_jobsプロパティは機械学習APIから削除されました。

詳細

allow_no_jobsプロパティは、cat anomaly detectorsclose anomaly detection jobsget anomaly detection jobsget anomaly detection job statistics、およびget overall buckets APIで7.10.0で非推奨となりました。

影響

allow_no_matchを代わりに使用してください。

StartRollupJobエンドポイントは、ジョブがすでに開始されている場合に成功ステータスを返します。

詳細

以前は、すでに開始されたロールアップジョブを開始しようとすると、500 InternalServerError: Cannot start task for Rollup Job [job] because state was [STARTED]例外が発生していました。

現在、すでに開始されたジョブを開始しようとすると、成功した200 OK: startedレスポンスが返されます。

影響

ロールアップジョブを開始しようとする際に200ステータスが返された場合、そのジョブがアクティブに開始された状態であると仮定するようにワークフローとアプリケーションを更新してください。リクエスト自体がジョブを開始した可能性があり、または以前に実行されていたため、リクエストには影響がありませんでした。

保存されたスクリプトは、空のスクリプトや検索テンプレートをサポートしなくなりました。

詳細

createまたはupdate stored script APIsourceパラメータは空にできません。

影響

アップグレードする前に、delete stored script APIを使用して、空の保存されたスクリプトや検索テンプレートを削除してください。8.0では、Elasticsearchはクラスター状態から空の保存されたスクリプトや空の検索テンプレートを削除します。空のsourceを持つ保存されたスクリプトや検索テンプレートを作成するリクエストはエラーを返します。

create または update stored script API の code パラメータは削除されました。

詳細

create または update stored script APIcode パラメータは削除されました。代わりに source パラメータを使用してください。

影響

code パラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。

_type フィールドに対する検索はもはやサポートされていません。

詳細

8.x では、_type メタデータフィールドが削除されました。Elasticsearch は _type フィールドに対する検索を存在しないフィールドに対する検索として処理します。存在しないフィールドに対する検索は、クエリ文字列に関係なく、ドキュメントに一致しません。

7.x では、_doc_type フィールドで検索すると、match_all クエリと同じドキュメントに一致しました。

影響

_type フィールドに対するクエリを検索リクエストおよび検索テンプレートから削除してください。これらのクエリを含む検索は結果を返さない可能性があります。

マルチ検索 API は、テキストファイルの最初の空行をアクションメタデータとして解析します。

詳細

マルチ検索 API は、リクエストボディとしてテキストファイルを提供する際に、最初の空行を空のアクションメタデータとして解析します。たとえば、curl の --data-binary フラグを使用する場合です。

API は次の内容を含むテキストファイルをもはやサポートしていません:

  • 最初の空行の後に {} のみを含む行。
  • 最初の空行の後に別の空行。

影響

マルチ検索 API にサポートされていないテキストファイルを提供しないでください。サポートされていないファイルを含むリクエストはエラーを返します。

unmapped_type: string ソートオプションは削除されました。

詳細

検索リクエストはもはや unmapped_type: string ソートオプションをサポートしていません。代わりに、unmapped_type: keyword を使用して、マッピングされていないフィールドを keyword フィールドタイプを持つかのように扱いますが、ソートのためにその値を無視します。

影響

unmapped_type: string の使用を中止してください。unmapped_type: string ソートオプションを含む検索リクエストはシャードの失敗を返します。

_id に対する集約とソートはデフォルトで禁止されています。

詳細

以前は、フィールドデータと呼ばれる高コストのデータ構造をロードすることで、組み込みの _id フィールドに対して集約とソートを行うことができました。これは 7.6 で非推奨となり、8.0 ではデフォルトで禁止されています。

影響

_id に対する集約とソートは避けるべきです。代わりに、_id フィールドの内容を docvalues が有効な別のフィールドに複製することができます(これは自動生成された ID には適用されません)。

common クエリは削除されました。

詳細

common クエリは、7.x で非推奨となり、8.0 で削除されました。同じ機能は、ヒットの総数が追跡されていない場合に match クエリによって実現できます。

影響

common クエリの使用を中止してください。common クエリを含む検索リクエストはエラーを返します。

cutoff_frequency パラメータは match および multi_match クエリから削除されました。

詳細

cutoff_frequency パラメータは、7.x で非推奨となり、8.0 で match および multi_match クエリから削除されました。同じ機能は、ヒットの総数が追跡されていない場合に、設定なしで実現できます。

影響

cutoff_frequency パラメータの使用を中止してください。match または multi_match クエリにこのパラメータを含む検索リクエストはエラーを返します。

nested_filter および nested_path プロパティは、検索 API の sort リクエストボディパラメータから削除されました。

詳細

nested_filter および nested_path オプションは、6.x で非推奨となり、nested コンテキストのために削除されました。

影響

sort リクエストボディパラメータの nested_filter および nested_path プロパティの使用を中止してください。これらのプロパティを含むリクエストはエラーを返します。

検索および取得リクエストは、デフォルトで適応型レプリカ選択を使用してシャードにルーティングされます。

詳細

Elasticsearch は、_search および _get リクエストを処理するために、同じ場所にあるシャード(同じ認識属性値を持つ)を使用することをもはや優先しません。このバージョンではデフォルトで有効になっている適応型レプリカ選択は、以前のノード間通信のサービス時間を使用してリクエストをより効率的にルーティングします。

影響

アクションは必要ありません。

(query, doc['field']) を使用したベクトル関数はもはやサポートされていません。

詳細

function(query, doc['field']) 形式のベクトル関数は 7.6 で非推奨となり、8.x で削除されました。代わりに function(query, 'field') 形式を使用してください。たとえば、cosineSimilarity(query, doc['field'])cosineSimilarity(query, 'field') に置き換えられます。

影響

function(query, 'field') 形式を使用してください。function(query, doc['field']) 形式の使用を中止してください。function(query, doc['field']) 形式を含むリクエストはエラーを返します。

検索 API の indices_boost リクエストボディパラメータはもはやオブジェクト値を受け入れません。

詳細

検索リクエストの indices_boost オプションは、オブジェクトと配列の両方としてブーストを受け入れていました。オブジェクト形式は 5.2 以降非推奨となり、8.0 で削除されました。

影響

indices_boost パラメータには配列値のみを使用してください。indices_boost パラメータにオブジェクト値を含むリクエストはエラーを返します。

検索 API の use_field_mapping リクエストボディパラメータは削除されました。

詳細

7.0 では、各フィールドのマッピング定義を使用して docvalue_fields をデフォルトでフォーマットするようになりました。6.x からの移行を容易にするために、use_field_mapping フォーマットオプションを追加しました。このパラメータは 7.0 で非推奨となり、8.0 で削除されました。

影響

use_field_mapping リクエストボディパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。

互換性

rest-api-compatibility要求された 場合、use_field_mapping パラメータは無視されます。

検索 API の from リクエストボディおよび URL パラメータは負の値を受け入れません。

詳細

検索リクエストは、検索ボディおよび URL で -1from として受け入れ、デフォルト値 0 として扱われていました。他の負の値はすでにエラーで拒否されていました。-1 も無効な値として拒否されます。

影響

リクエストボディまたは URL パラメータで -1from パラメータとして使用している場合は、0 に設定するか、完全に省略してください。負の値を含むリクエストはエラーを返します。

日付フィールドに対する範囲クエリは、数値値を常にエポックからのミリ秒として扱います。

詳細

日付フィールドに対する範囲クエリは、追加のフォーマットが設定されていない場合、小さな数値(例:1000 のような 4 桁)を年として誤解釈していましたが、他の数値値はエポックからのミリ秒として解釈されていました。特定の format パラメータがない場合、すべての数値値をエポックからのミリ秒として扱います。年をクエリしたい場合は、format が欠落している場合、入力値を引用符で囲む必要があります(例:”1984”)。

影響

指定された format なしで日付フィールドをクエリする場合、クエリ内の値が実際にエポックからのミリ秒を意味しているかどうかを確認し、この場合は数値値を使用してください。そうでない場合は、マッピングで設定された日付フォーマットまたはデフォルトで strict_date_optional_time によって解析される文字列値を使用してください。

geo_bounding_box クエリの type パラメータは削除されました。

詳細

geo_bounding_box クエリの type パラメータは 7.14.0 で非推奨となり、8.0.0 で削除されました。このパラメータは無操作で、クエリに影響を与えません。

影響

type パラメータの使用を中止してください。geo_bounding_box クエリがこのパラメータを含む場合、エラーが返されます。

type クエリは削除されました。

詳細

type クエリは削除されました。マッピングタイプは 8.0 で削除されました。

影響

type クエリの使用を中止してください。このクエリを含むリクエストはエラーを返します。

kibana_user ロールは kibana_admin に名前が変更されました。

詳細

以前に kibana_user ロールが割り当てられていたユーザーは、kibana_admin ロールに割り当てるべきです。このロールは kibana_user と同じ特権のセットを付与しますが、その意図された使用をよりよく反映するために名前が変更されました。

影響

kibana_user ロールを持つユーザーを kibana_admin ロールに割り当ててください。kibana_user ロールの使用を中止してください。

スナップショットおよび SLM API では、indices パラメータはもはやシステムインデックスまたはシステムデータストリームに解決されません。

詳細

スナップショットおよび SLM API では、indices パラメータはもはやシステムインデックスまたはシステムデータストリームに解決されません。Feature states は、スナップショットからシステムインデックスまたはシステムデータストリームをバックアップおよび復元する唯一の方法です。

indices パラメータを create SLM policy API または create snapshot API に使用して、スナップショットにシステムインデックスを含めることはできなくなりました。システムインデックスをバックアップするには、include_global_state および feature_states パラメータを使用して、対応するフィーチャーステートを含めてください。デフォルトでは、include_global_state および feature_states パラメータはすべてのシステムインデックスを含みます。

同様に、restore snapshot APIindices パラメータを使用して、スナップショットからシステムインデックスを復元することはできなくなりました。システムインデックスを復元するには、include_global_state および feature_states パラメータを使用して、対応するフィーチャーステートを復元してください。デフォルトでは、include_global_state および feature_states パラメータはシステムインデックスを復元しません。

影響

以前に indices パラメータを使用してシステムインデックスをバックアップまたは復元していた場合は、SLM ポリシーとアプリケーションを更新して include_global_state および feature_states パラメータを使用してください。

indices パラメータにシステムインデックスを明示的に指定した SLM ポリシーは、スナップショットを作成できません。同様に、indices パラメータにシステムインデックスを明示的に指定した create snapshot API または restore snapshot API リクエストは失敗し、エラーを返します。indices 値にワイルドカード (*) パターンが含まれている場合、そのパターンはもはやシステムインデックスに一致しません。

スナップショットはデフォルトでメタデータファイルを圧縮します。

詳細

以前は、compress のデフォルト値は false でした。デフォルトは true に変更されました。

この変更は、新しく作成されたリポジトリと、compress=false が明示的に指定されていない既存のリポジトリの両方に影響します。

影響

compress パラメータのデフォルト値として true を想定するようにワークフローとアプリケーションを更新してください。

S3 スナップショットリポジトリは、デフォルトで DNS スタイルのアクセスパターンを使用します。

詳細

バージョン 7.4 から、s3 スナップショットリポジトリはもはや、今は非推奨のパススタイルのアクセスパターンをデフォルトで使用しません。バージョン 7.0、7.1、7.2、および 7.3 の s3 スナップショットリポジトリは常にパススタイルのアクセスパターンを使用していました。この変更は、パススタイルのアクセスのみをサポートするデプロイメントにとっては破壊的な変更であり、AWS SDK によって DNS スタイルのアクセスをサポートしていると認識されています。この破壊的な変更は、AWS の発表 によって、パススタイルのアクセスパターンが非推奨となり、2020 年 9 月 30 日以降に作成されたバケットではサポートされなくなることが必要でした。

影響

デプロイメントがパススタイルのアクセスのみをサポートし、この変更の影響を受ける場合は、S3 クライアント設定 path_style_accesstrue に設定する必要があります。

復元リクエストはもはや設定を受け入れません。

詳細

以前のバージョンでは、復元スナップショットリクエストのボディに settingsindex_settings の両方を渡すことができましたが、settings 値は無視されていました。復元スナップショット API は、settings 値を含むリクエストを拒否します。

影響

復元スナップショットリクエストで settings パラメータの使用を中止してください。これらのパラメータを含むリクエストはエラーを返します。

リポジトリ統計 API は削除されました。

詳細

リポジトリ統計 API は削除されました。この実験的 API は 7.10.0 で非推奨となりました。

影響

代わりに repositories metering APIs を使用してください。

Watcher の履歴は、現在隠しデータストリームに書き込まれます。

詳細

8.x では、Elasticsearch は Watcher の履歴を隠し .watcher-history-<index-template-version> データストリームに書き込みます。以前は、Elasticsearch は Watcher の履歴を隠し .watcher-history-<index-template-version>-<yyyy-MM-dd> インデックスに書き込んでいました。

影響

リクエストを更新して、Watcher の履歴データストリームをターゲットにしてください。たとえば、.watcher-history-* ワイルドカード式を使用します。存在しない Watcher の履歴インデックスを特定してターゲットにするリクエストはエラーを返す可能性があります。

HTTP ステータスコードは、サーバータイムアウトの場合のクラスタヘルス API で変更されました。

詳細

クラスタヘルス API には、特定のヘルス条件が満たされるのを待つオプションが含まれています。要求された条件がタイムアウト内に満たされない場合、Elasticsearch は "timed_out": true フィールドを含む通常の応答を返します。以前のバージョンでは、リクエストがタイムアウトした場合は HTTP 応答コード 408 Request timeout を使用し、そうでない場合は 200 OK を使用していました。408 Request timeout 応答コードはこの状況には適切ではないため、8.0.0 以降、Elasticsearch は両方のケースで 200 OK 応答コードを使用します。

影響

サーバータイムアウトを検出するには、JSON 応答の timed_out フィールドを確認してください。

SQL JDBCの変更

JDBCドライバーは、org.elasticsearch.geoオブジェクトの代わりに、ジオメトリオブジェクトをウェルノウンテキスト(WKT)文字列として返します。

詳細

JDBCドライバーがElasticsearchクラスに依存しないようにするために、JDBCドライバーはorg.elasticsearch.geometryのクラスの代わりに、WKT(ウェルノウンテキスト)形式の文字列としてジオメトリデータを返します。ユーザーは、elasticsearch-geoライブラリ(以前はorg.elasticsearch.geoオブジェクトを返していた)やjts、spatial4jなど、文字列表現を完全なオブジェクトに変換するために使用するジオメトリライブラリを選択できます。

影響

アップグレードする前に、ResultSet#getObjectまたはResultSet#setObject Elasticsearch JDBCドライバーのorg.elasticsearch.geoクラスを、toStringまたはorg.elasticsearch.geometry.utils.WellKnownText#toWKT/fromWKTメソッドを呼び出すことで、そのWKT表現に置き換えてください。

この変更は、ジオメトリクラスを使用しないユーザーには影響しません。

システム要件の変更

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

いくつかのEOLオペレーティングシステムはもはやサポートされていません。

詳細

次のオペレーティングシステムはサポートの終了に達し、Elasticsearchによってサポートされなくなりました:

  • Amazon Linux
  • CentOS 6
  • Debian 8
  • openSUSE Leap 42
  • Oracle Enterprise Linux 6
  • Ubuntu 16.04

SysV initのサポートも削除されました。サポートされているオペレーティングシステムはSysV initプロセスを使用していません。

詳細

ノードがサポートされているオペレーティングシステムを使用していることを確認してください。サポートされていないオペレーティングシステムでElasticsearchを実行すると、予期しないエラーや障害が発生する可能性があります。

Java 17が必要です。

詳細

Elasticsearchおよびそのコマンドラインツールを実行するには、Java 17以上が必要です。

影響

Java 17以上を使用してください。以前のJavaバージョンを使用してElasticsearch 8.0を実行しようとすると、失敗します。

FIPS 140-2モードでElasticsearch 8.0を実行する際に使用できるJava 17用のFIPS認証セキュリティモジュールはまだありません。FIPS 140-2モードで実行する場合、Elasticsearch 8.0にアップグレードするためにセキュリティ組織から例外を要求するか、Java 17が認証されるまでElasticsearch 7.xのままでいる必要があります。

JAVA_HOMEはもはやサポートされていません。

詳細

JAVA_HOMEはJDKのパスを設定するためにもはやサポートされていません。代わりに、バンドルされたJDK(推奨)を使用するか、ES_JAVA_HOMEを設定してください。

影響

バンドルされたJDK(推奨)を使用するか、ES_JAVA_HOMEを設定してください。JAVA_HOMEは無視されます。

変換の変更

7.4以前のバージョンで作成された変換はアップグレードする必要があります。

詳細

変換の初期ベータ版は、もはやサポートされていない形式の構成情報を持っていました。

影響

アップグレード変換APIを使用して変換を修正してください。このアップグレードは、ソースまたは宛先インデックスには影響しません。

非推奨機能

次の機能はElasticsearch 8.0で非推奨となり、将来のバージョンで削除されます。これがアプリケーションに即座に影響を与えることはありませんが、8.0にアップグレードした後にコードを更新するために説明された手順を強くお勧めします。

非推奨機能を使用しているかどうかを確認するには、非推奨ログ記録を有効にしてください。

クラスタおよびノード設定の非推奨

もはや一時的なクラスタ設定の使用を推奨しません。

詳細

もはや一時的なクラスタ設定の使用を推奨しません。代わりに永続的なクラスタ設定を使用してください。クラスタが不安定になると、一時的な設定が予期せずクリアされ、望ましくないクラスタ構成が生じる可能性があります。

影響

一時的なクラスタ設定はまだ非推奨ではありませんが、将来のリリースで非推奨にする予定です。移行手順については、一時設定の移行ガイドを参照してください。

コマンドラインツールの非推奨

Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。

elasticsearch-setup-passwordsツールは非推奨です。

詳細

elasticsearch-setup-passwordsツールは8.0で非推奨です。組み込みユーザー(elasticユーザーを含む)のパスワードを手動でリセットするには、elasticsearch-reset-passwordツール、Elasticsearchのパスワード変更API、またはKibanaのユーザー管理機能を使用してください。elasticsearch-setup-passwordsは将来のリリースで削除されます。

影響

Elasticsearchを初めて起動すると、elasticユーザーのパスワードが自動的に生成されます。Elasticsearchを起動した後にelasticsearch-setup-passwordsを実行すると、elasticユーザーのパスワードはすでに設定されているため、失敗します。