1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- [discrete]
- [[breaking_80_rest_api_changes]]
- ==== REST API changes
- //NOTE: The notable-breaking-changes tagged regions are re-used in the
- //Installation and Upgrade Guide
- //tag::notable-breaking-changes[]
- .REST API endpoints containing `_xpack` have been removed.
- [%collapsible]
- ====
- *Details* +
- In 7.0, we deprecated REST endpoints that contain `_xpack` in their path. These
- endpoints are now removed in 8.0. Each endpoint that was deprecated and removed
- is replaced with a new endpoint that does not contain `_xpack`. As an example,
- `/{index}/_xpack/graph/_explore` is replaced by `/{index}/_graph/explore`.
- *Impact* +
- Use the replacement REST API endpoints. Requests submitted to the `_xpack`
- API endpoints will return an error.
- ====
- [[remove-mapping-type-api-endpoints]]
- .REST API endpoints containing mapping types have been removed.
- [%collapsible]
- ====
- *Details* +
- Mapping types have been removed. API endpoints that contain a mapping type have
- also been removed. Use a typeless endpoint instead.
- [options="header",cols="<1,<3,<1"]
- |====
- | API | Typed API endpoint | Typeless API endpoint
- | {ref}/docs-bulk.html[Bulk]
- | `<target>/<type>/_bulk`
- | `<target>/_bulk`
- | {ref}/search-count.html[Count]
- | `<target>/<type>/_count`
- | `<target>/_count`
- | {ref}/docs-delete.html[Delete]
- | `<index>/<type>/<_id>`
- | `<index>/_doc/<_id>`
- | {ref}/docs-delete-by-query.html[Delete by query]
- | `<target>/<type>/_delete_by_query`
- | `<target>/_delete_by_query`
- | {ref}/search-explain.html[Explain]
- | `<index>/<type>/<_id>/_explain`
- | `<index>/_explain/<_id>`
- | {ref}/docs-get.html[Get]
- | `<index>/<type>/<_id>`
- | `<index>/_doc/<_id>`
- |
- | `<index>/<type>/<_id>/_source`
- | `<index>/_source/<_id>`
- | {ref}/indices-get-field-mapping.html[Get field mapping]
- | `_mapping/<type>/field/<field>`
- | `_mapping/field/<field>`
- |
- | `<target>/_mapping/<type>/field/<field>`
- | `<target>/_mapping/field/<field>`
- | {ref}/indices-get-mapping.html[Get mapping]
- | `_mapping/<type>`
- | `_mapping` or `<target>/_mapping`
- |
- | `<target>/<type>/_mapping`
- | `<target>/_mapping`
- |
- | `<target>/_mapping/<type>`
- | `<target>/_mapping`
- | {ref}/graph-explore-api.html[Graph explore]
- | `<index>/<type>/_graph/explore`
- | `<index>/_graph/explore`
- | {ref}/docs-index_.html[Index]
- | `<target>/<type>/<_id>/_create`
- | `<target>/_create/<_id>`
- |
- | `<target>/<type>`
- | `<target>/_doc`
- |
- | `<target>/<type>/<_id>`
- | `<target>/_doc/<_id>`
- | {ref}/docs-multi-get.html[Multi get]
- | `<index>/<type>/_mget`
- | `<index>/_mget`
- | {ref}/search-multi-search.html[Multi search]
- | `<target>/<type>/_msearch`
- | `<target>/_msearch`
- | {ref}/multi-search-template.html[Multi search template]
- | `<target>/<type>/_msearch/template`
- | `<target>/_msearch/template`
- | {ref}/docs-multi-termvectors.html[Multi term vectors]
- | `<index>/<type>/_mtermvectors`
- | `<index>/_mtermvectors`
- | {ref}/rollup-search.html[Rollup search]
- | `<target>/<type>/_rollup_search`
- | `<target>/_rollup_search`
- | {ref}/search-search.html[Search]
- | `<target>/<type>/_search`
- | `<target>/_search`
- | {ref}/search-template-api.html[Search template]
- | `<target>/<type>/_search/template`
- | `<target>/_search/template`
- | {ref}/docs-termvectors.html[Term vectors]
- | `<index>/<mapping_type>/<_id>/_termvectors`
- | `<index>/_termvectors<_id>`
- |
- | `<index>/<mapping_type>/_termvectors`
- | `<index>/_termvectors`
- | {ref}/docs-update.html[Update]
- | `<index>/<type>/<_id>/_update`
- | `<index>/_update/<_id>`
- | {ref}/docs-update-by-query.html[Update by query]
- | `<target>/<type>/_update_by_query`
- | `<target>/_update_by_query`
- | {ref}/indices-put-mapping.html[Update mapping]
- | `<target>/<type>/_mapping`
- | `<target>/_mapping`
- |
- | `<target>/_mapping/<type>`
- | `<target>/_mapping`
- |
- | `_mapping/<type>`
- | `<target>/_mapping`
- | {ref}/search-validate.html[Validate]
- | `<target>/<type>/_validate/query`
- | `<target>/_validate/query`
- |====
- *Impact* +
- Update your application to use typeless REST API endpoints. Requests to
- endpoints that contain a mapping type will return an error.
- ====
- .{ccs-cap} ({ccs-init}) is now only backward-compatible with the previous minor version.
- [%collapsible]
- ====
- *Details* +
- Elastic only supports searches from a local cluster to a remote cluster running:
- * The previous minor version.
- * The same version.
- * A newer version. This version must also be compatible with the local cluster
- as outlined in the
- {ref}/modules-cross-cluster-search.html#ccs-version-compatibility[compatibility
- matrix].
- IMPORTANT: For the <<eql-search-api,EQL search API>>, the local and remote
- clusters must use the same {es} version.
- For example, a local 8.0 cluster can search a remote 7.7, 8.0, or
- 8.1 cluster. However, a search from a local 8.0 cluster to a remote 7.16 or 6.8
- cluster is not supported.
- Previously, we also supported searches on remote clusters running:
- * Any minor version of the local cluster's major version.
- * The last minor release of the previous major version.
- However, such searches can result in undefined behavior, particularly if the
- search uses a recent feature that's unsupported in the remote cluster.
- *Impact* +
- If you only run cross-cluster searches on remote clusters using the same or a
- newer version, no changes are needed.
- If you previously searched remote clusters running an earlier version of {es},
- see {ref}/modules-cross-cluster-search.html#ensure-ccs-support[Ensure {ccs}
- support] for recommended solutions.
- A {ccs} using an unsupported configuration may still work. However, such
- searches aren't tested by Elastic, and their behavior isn't guaranteed.
- ====
- [[remove-term-order-key]]
- .The `terms` aggregation no longer supports the `_term` order key.
- [%collapsible]
- ====
- *Details* +
- The `terms` aggregation no longer supports the `_term` key in `order` values. To
- sort buckets by their term, use `_key` instead.
- *Impact* +
- Discontinue use of the `_term` order key. Requests that include a `_term` order
- key will return an error.
- ====
- [[remove-time-order-key]]
- .The `date_histogram` aggregation no longer supports the `_time` order key.
- [%collapsible]
- ====
- *Details* +
- The `date_histogram` aggregation no longer supports the `_time` key in `order`
- values. To sort buckets by their key, use `_key` instead.
- *Impact* +
- Discontinue use of the `_time` order key. Requests that include a `_time` order
- key will return an error.
- ====
- [[remove-moving-avg-agg]]
- .The `moving_avg` aggregation has been removed.
- [%collapsible]
- ====
- *Details* +
- The `moving_avg` aggregation was deprecated in 6.4 and has been removed. To
- calculate moving averages, use the
- {ref}/search-aggregations-pipeline-movfn-aggregation.html[`moving_fn`
- aggregation] instead.
- *Impact* +
- Discontinue use of the `moving_avg` aggregation. Requests that include the
- `moving_avg` aggregation will return an error.
- ====
- [[percentile-duplication]]
- .The `percentiles` aggregation's `percents` parameter no longer supports duplicate values.
- [%collapsible]
- ====
- *Details* +
- If you specify the `percents` parameter with the
- {ref}/search-aggregations-metrics-percentile-aggregation.html[`percentiles` aggregation],
- its values must be unique. Otherwise, an exception occurs.
- *Impact* +
- Use unique values in the `percents` parameter of the `percentiles` aggregation.
- Requests containing duplicate values in the `percents` parameter will return
- an error.
- ====
- [[date-histogram-interval]]
- .The `date_histogram` aggregation's `interval` parameter is no longer valid.
- [%collapsible]
- ====
- *Details* +
- It is now an error to specify the `interval` parameter to the
- {ref}/search-aggregations-bucket-datehistogram-aggregation.html[`date_histogram`
- aggregation] or the
- {ref}/search-aggregations-bucket-composite-aggregation.html#_date_histogram[`composite
- date_histogram` source. Instead, please use either `calendar_interval` or
- `fixed_interval` as appropriate.
- *Impact* +
- Uses of the `interval` parameter in either the `date_histogram` aggregation or
- the `date_histogram` composite source will now generate an error. Instead
- please use the more specific `fixed_interval` or `calendar_interval`
- parameters.
- ====
- [[ngram-edgengram-filter-names-removed]]
- .The `nGram` and `edgeNGram` token filter names have been removed.
- [%collapsible]
- ====
- *Details* +
- The `nGram` and `edgeNGram` token filter names that have been deprecated since
- version 6.4 have been removed. Both token filters can only be used by their
- alternative names `ngram` and `edge_ngram` since version 7.0.
- *Impact* +
- Use the equivalent `ngram` and `edge_ngram` token filters. Requests containing
- the `nGram` and `edgeNGram` token filter names will return an error.
- ====
- [[nGram-edgeNGram-tokenizer-dreprecation]]
- .The `nGram` and `edgeNGram` tokenizer names have been removed.
- [%collapsible]
- ====
- *Details* +
- The `nGram` and `edgeNGram` tokenizer names haven been deprecated with 7.6 and are no longer
- supported on new indices. Mappings for indices created after 7.6 will continue to work but
- emit a deprecation warning. The tokenizer name should be changed to the fully equivalent
- `ngram` or `edge_ngram` names for new indices and in index templates.
- *Impact* +
- Use the `ngram` and `edge_ngram` tokenizers. Requests to create new indices
- using the `nGram` and `edgeNGram` tokenizer names will return an error.
- ====
- .The `in_flight_requests` stat has been renamed `inflight_requests` in logs and diagnostic APIs.
- [%collapsible]
- ====
- *Details* +
- The name of the in flight requests circuit breaker in log output and diagnostic APIs (such as the node stats API) changes from `in_flight_requests` to `inflight_requests` to align it with the name of the corresponding settings.
- *Impact* +
- Update your workflow and applications to use the `inflight_requests` stat in
- place of `in_flight_requests`.
- ====
- .The voting configuration exclusions API endpoint has changed.
- [%collapsible]
- ====
- *Details* +
- The `POST /_cluster/voting_config_exclusions/{node_filter}` API has been
- removed in favour of `POST /_cluster/voting_config_exclusions?node_names=...`
- and `POST /_cluster/voting_config_exclusions?node_ids=...` which allow you to
- specify the names or IDs of the nodes to exclude.
- *Impact* +
- Use `POST /_cluster/voting_config_exclusions?node_ids=...` and specify the nodes
- to exclude instead of using a node filter. Requests submitted to the
- `/_cluster/voting_config_exclusions/{node_filter}` endpoint will return an
- error.
- ====
- .Remote system indices are not followed automatically if they match an auto-follow pattern.
- [%collapsible]
- ====
- *Details* +
- Remote system indices matching an {ref}/ccr-auto-follow.html[auto-follow
- pattern] won't be configured as a follower index automatically.
- *Impact* +
- Explicitly {ref}/ccr-put-follow.html[create a follower index] to follow a remote
- system index if that's the wanted behaviour.
- ====
- .The EQL `wildcard` function has been removed.
- [%collapsible]
- ====
- *Details* +
- The `wildcard` function was deprecated in {es} 7.13.0 and has been removed.
- *Impact* +
- Use the `like` or `regex` {ref}/eql-syntax.html#eql-syntax-pattern-comparison-keywords[keywords] instead.
- ====
- [[ilm-freeze-noop]]
- .The ILM `freeze` action is now a no-op.
- [%collapsible]
- ====
- *Details* +
- The ILM freeze action is now a no-op and performs no action on the index, as the freeze API endpoint
- has been removed in 8.0.
- *Impact* +
- Update your ILM policies to remove the `freeze` action from the `cold` phase.
- ====
- [[ilm-policy-validation]]
- .Additional validation for ILM policies.
- [%collapsible]
- ====
- *Details* +
- Creating or updating an ILM policy now requires that any referenced snapshot repositories and SLM
- policies exist.
- *Impact* +
- Update your code or configuration management to ensure that repositories and SLM policies are created
- before any policies that reference them.
- ====
- .The deprecated `_upgrade` API has been removed.
- [%collapsible]
- ====
- *Details* +
- Previously, the `_upgrade` API upgraded indices from the previous major
- version to the current version. The `_reindex` API should be used
- instead for that purpose.
- *Impact* +
- Requests made to the old `_upgrade` API will return an error.
- ====
- .The deprecated freeze index API has been removed.
- [%collapsible]
- ====
- *Details* +
- The freeze index API (`POST /<index>/_freeze`) has been removed.
- https://www.elastic.co/blog/significantly-decrease-your-elasticsearch-heap-memory-usage[Improvements
- in heap memory usage] have eliminated the reason to freeze indices.
- You can still unfreeze existing frozen indices using the
- {ref}/unfreeze-index-api.html[unfreeze index API]. For some use cases, the
- frozen tier may be a suitable replacement for frozen indices. See
- {ref}/data-tiers.html[data tiers] for more information.
- *Impact* +
- Requests made to the old freeze index API will return an error.
- ====
- .The force merge API's `max_num_segments` and `only_expunge_deletes` parameters cannot both be specified in the same request.
- [%collapsible]
- ====
- *Details* +
- Previously, the force merge API allowed the parameters `only_expunge_deletes`
- and `max_num_segments` to be set to a non default value at the same time. But
- the `max_num_segments` was silently ignored when `only_expunge_deletes` is set
- to `true`, leaving the false impression that it has been applied.
- *Impact* +
- When using the {ref}/indices-forcemerge.html[force merge API], do not specify
- values for both the `max_num_segments` and `only_expunge_deletes` parameters.
- Requests that include values for both parameters will return an error.
- ====
- .The create or update index template API's `template` parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- In 6.0, we deprecated the `template` parameter in create or update index
- template requests in favor of using `index_patterns`. Support for the `template`
- parameter is now removed in 8.0.
- *Impact* +
- Use the {ref}/indices-templates-v1.html[create or update index template API]'s
- `index_patterns` parameter. Requests that include the `template` parameter will
- return an error.
- ====
- .Synced flush has been removed.
- [%collapsible]
- ====
- *Details* +
- Synced flush was deprecated in 7.6 and is removed in 8.0. Use a regular flush
- instead as it has the same effect as a synced flush in 7.6 and later.
- *Impact* +
- Use the {ref}/indices-flush.html[flush API]. Requests to the
- `/<index>/flush/synced` or `/flush/synced` endpoints will return an error.
- ====
- .The default for the `?wait_for_active_shards` parameter on the close index API has changed.
- [%collapsible]
- ====
- *Details* +
- When closing an index in earlier versions, by default {es} would not wait for
- the shards of the closed index to be properly assigned before returning. From
- version 8.0 onwards the default behaviour is to wait for shards to be assigned
- according to the
- {ref}/docs-index_.html#index-wait-for-active-shards[`index.write.wait_for_active_shards`
- index setting].
- *Impact* +
- Accept the new behaviour, or specify `?wait_for_active_shards=0` to preserve
- the old behaviour if needed.
- ====
- .The index stats API's `types` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The index stats API's `types` query parameter has been removed. Previously, you
- could combine `types` with the `indexing` query parameter to return indexing
- stats for specific mapping types. Mapping types have been removed in 8.0.
- *Impact* +
- Discontinue use of the `types` query parameter. Requests that include the
- parameter will return an error.
- ====
- .The `user_agent` ingest processor's `ecs` parameter has no effect.
- [%collapsible]
- ====
- *Details* +
- In 7.2, we deprecated the `ecs` parameter for the `user_agent` ingest processor.
- In 8.x, the `user_agent` ingest processor will only return {ecs-ref}[Elastic
- Common Schema (ECS)] fields, regardless of the `ecs` value.
- *Impact* +
- To avoid deprecation warnings, remove the parameter from your ingest pipelines.
- If a pipeline specifies an `ecs` value, the value is ignored.
- ====
- .The `include_type_name` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `include_type_name` query parameter has been removed from the index
- creation, index template, and mapping APIs. Previously, you could set
- `include_type_name` to `true` to indicate that requests and responses should
- include a mapping type name. Mapping types have been removed in 8.x.
- *Impact* +
- Discontinue use of the `include_type_name` query parameter. Requests that
- include the parameter will return an error.
- ====
- .Reindex from remote now re-encodes URL-encoded index names.
- [%collapsible]
- ====
- *Details* +
- Reindex from remote would previously allow URL-encoded index names and not
- re-encode them when generating the search request for the remote host. This
- leniency has been removed such that all index names are correctly encoded when
- reindex generates remote search requests.
- *Impact* +
- Specify unencoded index names for reindex from remote requests.
- ====
- .In the reindex, delete by query, and update by query APIs, the `size` parameter has been renamed.
- [%collapsible]
- ====
- *Details* +
- Previously, a `_reindex` request had two different size specifications in the body:
- - Outer level, determining the maximum number of documents to process
- - Inside the `source` element, determining the scroll/batch size.
- The outer level `size` parameter has now been renamed to `max_docs` to
- avoid confusion and clarify its semantics.
- Similarly, the `size` parameter has been renamed to `max_docs` for
- `_delete_by_query` and `_update_by_query` to keep the 3 interfaces consistent.
- *Impact* +
- Use the replacement parameters. Requests containing the `size` parameter will
- return an error.
- ====
- .The update by query API now rejects unsupported `script` fields.
- [%collapsible]
- ====
- *Details* +
- An update by query API request that includes an unsupported field in the
- `script` object now returns an error. Previously, the API would silently ignore
- these unsupported fields.
- *Impact* +
- To avoid errors, remove unsupported fields from the `script` object.
- ====
- .The cat node API's `local` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `?local` parameter to the `GET _cat/nodes` API was deprecated in 7.x and is
- rejected in 8.0. This parameter caused the API to use the local cluster state
- to determine the nodes returned by the API rather than the cluster state from
- the master, but this API requests information from each selected node
- regardless of the `?local` parameter which means this API does not run in a
- fully node-local fashion.
- *Impact* +
- Discontinue use of the `?local` query parameter. {ref}/cat-nodes.html[cat node
- API] requests that include this parameter will return an error.
- ====
- .The cat shard API's `local` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `?local` parameter to the `GET _cat/shards` API was deprecated in 7.x and is
- rejected in 8.0. This parameter caused the API to use the local cluster state
- to determine the nodes returned by the API rather than the cluster state from
- the master, but this API requests information from each selected node
- regardless of the `?local` parameter which means this API does not run in a
- fully node-local fashion.
- *Impact* +
- Discontinue use of the `?local` query parameter. {ref}/cat-shards.html[cat shards
- API] requests that include this parameter will return an error.
- ====
- .The cat indices API's `local` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `?local` parameter to the `GET _cat/indices` API was deprecated in 7.x and is
- rejected in 8.0. This parameter caused the API to use the local cluster state
- to determine the nodes returned by the API rather than the cluster state from
- the master, but this API requests information from each selected node
- regardless of the `?local` parameter which means this API does not run in a
- fully node-local fashion.
- *Impact* +
- Discontinue use of the `?local` query parameter. {ref}/cat-indices.html[cat indices
- API] requests that include this parameter will return an error.
- ====
- .The get field mapping API's `local` query parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `local` parameter for get field mapping API was deprecated in 7.8 and is
- removed in 8.0. This parameter is a no-op and field mappings are always retrieved
- locally.
- *Impact* +
- Discontinue use of the `local` query parameter.
- {ref}/indices-get-field-mapping.html[get field mapping API] requests that
- include this parameter will return an error.
- ====
- .Post data to jobs API is deprecated.
- [%collapsible]
- ====
- *Details* +
- The {ml} {ref}/ml-post-data.html[post data to jobs API] is deprecated starting in 7.11.0
- and will be removed in a future major version.
- *Impact* +
- Use {ref}/ml-apis.html#ml-api-datafeed-endpoint[{dfeeds}] instead.
- ====
- .The `job_id` property of the Update {dfeeds} API has been removed.
- [%collapsible]
- ====
- *Details* +
- The ability to update a `job_id` in a {dfeed} was deprecated in 7.3.0. and is
- removed in 8.0.
- *Impact* +
- It is not possible to move {dfeeds} between {anomaly-jobs}.
- ====
- .Create repository and delete repository API's return `409` status code when a repository is in use instead of `500`.
- [%collapsible]
- ====
- *Details* +
- The {ref}/put-snapshot-repo-api.html[Create or update snapshot repository API] and
- {ref}/delete-snapshot-repo-api.html[Delete snapshot repository API] return `409`
- status code when the request is attempting to modify an existing repository that's in use instead of status code `500`.
- *Impact* +
- Update client code that handles creation and deletion of repositories to reflect this change.
- ====
- .The `allow_no_datafeeds` property has been removed from {ml} APIs.
- [%collapsible]
- ====
- *Details* +
- The `allow_no_datafeeds` property was deprecated in the
- {ref}/cat-datafeeds.html[cat {dfeeds}],
- {ref}/ml-get-datafeed.html[get {dfeeds}],
- {ref}/ml-get-datafeed-stats.html[get {dfeed} statistics], and
- {ref}/ml-stop-datafeed.html[stop {dfeeds}] APIs in 7.10.0.
- *Impact* +
- Use `allow_no_match` instead.
- ====
- .The `allow_no_jobs` property has been removed from {ml} APIs.
- [%collapsible]
- ====
- *Details* +
- The `allow_no_jobs` property was deprecated in the
- {ref}/cat-anomaly-detectors.html[cat anomaly detectors],
- {ref}/ml-close-job.html[close {anomaly-jobs}],
- {ref}/ml-get-job.html[get {anomaly-jobs}],
- {ref}/ml-get-job-stats.html[get {anomaly-job} statistics], and
- {ref}/ml-get-overall-buckets.html[get overall buckets] APIs in 7.10.0.
- *Impact* +
- Use `allow_no_match` instead.
- ====
- .The StartRollupJob endpoint now returns a success status if a job has already started.
- [%collapsible]
- ====
- *Details* +
- Previously, attempting to start an already-started rollup job would
- result in a `500 InternalServerError: Cannot start task for Rollup Job
- [job] because state was [STARTED]` exception.
- Now, attempting to start a job that is already started will just
- return a successful `200 OK: started` response.
- *Impact* +
- Update your workflow and applications to assume that a 200 status in response to
- attempting to start a rollup job means the job is in an actively started state.
- The request itself may have started the job, or it was previously running and so
- the request had no effect.
- ====
- .Stored scripts no longer support empty scripts or search templates.
- [%collapsible]
- ====
- *Details* +
- The {ref}/create-stored-script-api.html[create or update stored script API]'s
- `source` parameter cannot be empty.
- *Impact* +
- Before upgrading, use the {ref}/delete-stored-script-api.html[delete stored
- script API] to delete any empty stored scripts or search templates.
- In 8.0, {es} will drop any empty stored scripts or empty search templates from
- the cluster state. Requests to create a stored script or search template with
- an empty `source` will return an error.
- ====
- .The create or update stored script API's `code` parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The {ref}/create-stored-script-api.html[create or update stored script API]'s
- `code` parameter has been removed. Use the `source` parameter instead.
- *Impact* +
- Discontinue use of the `code` parameter. Requests that include the parameter
- will return an error.
- ====
- [[_type-search-matches-no-docs]]
- .Searches on the `_type` field are no longer supported.
- [%collapsible]
- ====
- *Details* +
- In 8.x, the `_type` metadata field has been removed. {es} now handles a search
- on the `_type` field as a search on a non-existent field. A search on a
- non-existent field matches no documents, regardless of the query string.
- In 7.x, a search for `_doc` in the `_type` field would match the same documents
- as a `match_all` query.
- *Impact* +
- Remove queries on the `_type` field from your search requests and search
- templates. Searches that include these queries may return no results.
- ====
- [[msearch-empty-line-support]]
- .The multi search API now parses an empty first line as action metadata in text files.
- [%collapsible]
- ====
- *Details* +
- The multi search API now parses an empty first line as empty action metadata
- when you provide a text file as the request body, such as when using curl's
- `--data-binary` flag.
- The API no longer supports text files that contain:
- * An empty first line followed by a line containing only `{}`.
- * An empty first line followed by another empty line.
- *Impact* +
- Don't provide an unsupported text file to the multi search API. Requests that
- include an unsupported file will return an error.
- ====
- [[remove-unmapped-type-string]]
- .The `unmapped_type: string` sort option has been removed.
- [%collapsible]
- ====
- *Details* +
- Search requests no longer support the `unmapped_type: string` sort option.
- Instead, use `unmapped_type: keyword` to handle an unmapped field as if it had
- the `keyword` field type but ignore its values for sorting.
- *Impact* +
- Discontinue use of `unmapped_type: string`. Search requests that include the
- `unmapped_type: string` sort option will return shard failures.
- ====
- [[id-field-data]]
- .Aggregating and sorting on `_id` is disallowed by default.
- [%collapsible]
- ====
- *Details* +
- Previously, it was possible to aggregate and sort on the built-in `_id` field
- by loading an expensive data structure called fielddata. This was deprecated
- in 7.6 and is now disallowed by default in 8.0.
- *Impact* +
- Aggregating and sorting on `_id` should be avoided. As an alternative, the
- `_id` field's contents can be duplicated into another field with docvalues
- enabled (note that this does not apply to auto-generated IDs).
- ====
- .The `common` query has been removed.
- [%collapsible]
- ====
- *Details* +
- The `common` query, deprecated in 7.x, has been removed in 8.0.
- The same functionality can be achieved by the `match` query if the total number of hits is not tracked.
- *Impact* +
- Discontinue use of the `common` query. Search requests containing a `common`
- query will return an error.
- ====
- .The `cutoff_frequency` parameter has been removed from the `match` and `multi_match` query.
- [%collapsible]
- ====
- *Details* +
- The `cutoff_frequency` parameter, deprecated in 7.x, has been removed in 8.0 from `match` and `multi_match` queries.
- The same functionality can be achieved without any configuration provided that the total number of hits is not tracked.
- *Impact* +
- Discontinue use of the `cutoff_frequency` parameter. Search requests containing
- this parameter in a `match` or `multi_match` query will return an error.
- ====
- .The `nested_filter` and `nested_path` properties have been removed from the search API's `sort` request body parameter.
- [%collapsible]
- ====
- *Details* +
- The `nested_filter` and `nested_path` options, deprecated in 6.x, have been removed in favor of the `nested` context.
- *Impact* +
- Discontinue use of the `sort` request body parameter's `nested_filter` and
- `nested_path` properties. Requests containing these properties will return an
- error.
- ====
- .Search and get requests are now routed to shards using adaptive replica selection by default.
- [%collapsible]
- ====
- *Details* +
- {es} will no longer prefer using shards in the same location (with the same awareness attribute values) to process
- `_search` and `_get` requests. Adaptive replica selection (activated by default in this version) will route requests
- more efficiently using the service time of prior inter-node communications.
- *Impact* +
- No action needed.
- ====
- .Vector functions using `(query, doc['field'])` are no longer supported.
- [%collapsible]
- ====
- *Details* +
- The vector functions of the form `function(query, doc['field'])` were
- deprecated in 7.6, and are now removed in 8.x. The form
- `function(query, 'field')` should be used instead. For example,
- `cosineSimilarity(query, doc['field'])` is replaced by
- `cosineSimilarity(query, 'field')`.
- *Impact* +
- Use the `function(query, 'field')` form. Discontinue use of the `function(query,
- doc['field'])` form. Requests containing the `function(query,
- doc['field'])` form will return an error.
- ====
- .The search API's `indices_boost` request body parameter no longer accepts object values.
- [%collapsible]
- ====
- *Details* +
- The `indices_boost` option in the search request used to accept the boosts
- both as an object and as an array. The object format has been deprecated since
- 5.2 and is now removed in 8.0.
- *Impact* +
- Use only array values in the `indices_boost` parameter. Requests containing an
- object value in the `indices_boost` parameter will return an error.
- ====
- .The search API's `use_field_mapping` request body parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- In 7.0, we began formatting `docvalue_fields` by default using each field's
- mapping definition. To ease the transition from 6.x, we added the format
- option `use_field_mapping`. This parameter was deprecated in 7.0, and is now
- removed in 8.0.
- *Impact* +
- Discontinue use of the `use_field_mapping` request body parameter. Requests
- containing this parameter will return an error.
- ====
- .The search API's `from` request body and url parameter cannot be negative.
- [%collapsible]
- ====
- *Details* +
- Search request used to accept `-1` as a `from` in the search body and the url,
- treating it as the default value of 0. Other negative values got rejected with
- an error already. We now also reject `-1` as an invalid value.
- *Impact* +
- Change any use of `-1` as `from` parameter in request body or url parameters by either
- setting it to `0` or omitting it entirely. Requests containing negative values will
- return an error.
- ====
- .Range queries on date fields treat numeric values alwas as milliseconds-since-epoch.
- [%collapsible]
- ====
- *Details* +
- Range queries on date fields used to misinterpret small numbers (e.g. four digits like 1000)
- as a year when no additional format was set, but would interpret other numeric values as
- milliseconds since epoch. We now treat all numeric values in absence of a specific `format`
- parameter as milliseconds since epoch. If you want to query for years instead, with a missing
- `format` you now need to quote the input value (e.g. "1984").
- *Impact* +
- If you query date fields without a specified `format`, check if the values in your queries are
- actually meant to be milliseconds-since-epoch and use a numeric value in this case. If not, use
- a string value which gets parsed by either the date format set on the field in the mappings or
- by `strict_date_optional_time` by default.
- ====
- .The `geo_bounding_box` query's `type` parameter has been removed.
- [%collapsible]
- ====
- *Details* +
- The `geo_bounding_box` query's `type` parameter was deprecated in 7.14.0 and has
- been removed in 8.0.0. This parameter is a no-op and has no effect on the query.
- *Impact* +
- Discontinue use of the `type` parameter. `geo_bounding_box` queries that include
- this parameter will return an error.
- ====
- .The `type` query has been removed.
- [%collapsible]
- ====
- *Details* +
- The `type` query has been removed. Mapping types have been removed in 8.0.
- *Impact* +
- Discontinue use of the `type` query. Requests that include the `type` query
- will return an error.
- ====
- .The `kibana_user` role has been renamed `kibana_admin`.
- [%collapsible]
- ====
- *Details* +
- Users who were previously assigned the `kibana_user` role should instead be assigned
- the `kibana_admin` role. This role grants the same set of privileges as `kibana_user`, but has been
- renamed to better reflect its intended use.
- *Impact* +
- Assign users with the `kibana_user` role to the `kibana_admin` role.
- Discontinue use of the `kibana_user` role.
- ====
- [[snapshot-resolve-system-indices]]
- .For snapshot and {slm-init} APIs, the `indices` parameter no longer resolves to system indices or system data streams.
- [%collapsible]
- ====
- *Details* +
- For snapshot and {slm-init} APIs, the `indices` parameter no longer resolves to
- system indices or system data streams.
- {ref}/snapshot-restore.html#feature-state[Feature states] are now the only way
- to back up and restore system indices or system data streams from a snapshot.
- You can no longer use the `indices` parameter for the
- {ref}/slm-api-put-policy.html[create {slm-init} policy API] or the
- {ref}/create-snapshot-api.html[create snapshot API] to include a system index in
- a snapshot. To back up a system index, use the `include_global_state` and
- `feature_states` parameters to include the corresponding feature state instead.
- By default, the `include_global_state` and `feature_states` parameters include
- all system indices.
- Similarly, you can no longer use the {ref}/restore-snapshot-api.html[restore snapshot
- API]'s `indices` parameter to restore a system index from a snapshot. To restore
- a system index, use the `include_global_state` and `feature_states` parameters
- to restore the corresponding feature state instead. By default, the
- `include_global_state` and `feature_states` parameters don't restore any system
- indices.
- *Impact* +
- If you previously used the `indices` parameter to back up or restore system
- indices, update your {slm-init} policies and application to use the
- `include_global_state` and `feature_states` parameters instead.
- An {slm-init} policy that explicitly specifies a system index in the `indices`
- parameter will fail to create snapshots. Similarly, a create snapshot API or
- restore snapshot API request that explicitly specifies a system index in the
- `indices` parameter will fail and return an error. If the `indices` value
- includes a wildcard (`*`) pattern, the pattern will no longer match system
- indices.
- ====
- .Snapshots compress metadata files by default.
- [%collapsible]
- ====
- *Details* +
- Previously, the default value for `compress` was `false`. The default has been changed to `true`.
- This change will affect both newly created repositories and existing repositories where `compress=false` has not been
- explicitly specified.
- For more information on the compress option, see
- {ref}/snapshots-register-repository.html[Register a snapshot repository].
- *Impact* +
- Update your workflow and applications to assume a default value of `true` for
- the `compress` parameter.
- ====
- .The S3 repository plugin now uses a DNS-style access pattern by default.
- [%collapsible]
- ====
- *Details* +
- Starting in version 7.4 the `repository-s3` plugin does not use the
- now-deprecated path-style access pattern by default. In versions 7.0, 7.1, 7.2
- and 7.3 the `repository-s3` plugin always used the path-style access pattern.
- This is a breaking change for deployments that only support path-style access
- but which are recognized as supporting DNS-style access by the AWS SDK. This
- breaking change was made necessary by
- https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/[AWS's
- announcement] that the path-style access pattern is deprecated and will be
- unsupported on buckets created after September 30th 2020.
- *Impact* +
- If your deployment only supports path-style access and is affected by this
- change then you must configure the S3 client setting `path_style_access` to
- `true`.
- ====
- .Restore requests no longer accept settings.
- [%collapsible]
- ====
- *Details* +
- In earlier versions, you could pass both `settings` and `index_settings` in the
- body of a restore snapshot request, but the `settings` value was ignored. The
- restore snapshot API now rejects requests that include a `settings` value.
- *Impact* +
- Discontinue use of the `settings` parameter in restore
- snapshot request. Requests that include these parameters will return an error.
- ====
- .The repository stats API has been removed.
- [%collapsible]
- ====
- *Details* +
- The repository stats API has been removed. We deprecated this experimental API
- in 7.10.0.
- *Impact* +
- Use the {ref}/repositories-metering-apis.html[repositories metering APIs]
- instead.
- ====
- .Watcher history now writes to a hidden data stream.
- [%collapsible]
- ====
- *Details* +
- In 8.x, {es} writes Watcher history to a hidden
- `.watcher-history-<index-template-version>` data stream. Previously, {es} wrote
- Watcher history to hidden
- `.watcher-history-<index-template-version>-<yyyy-MM-dd>` indices.
- *Impact* +
- Update your requests to target the Watcher history data stream. For example, use
- the `.watcher-history-*` wildcard expression. Requests that specifically target
- non-existent Watcher history indices may return an error.
- ====
- .HTTP Status code has changed for the Cluster Health API in case of a server timeout.
- [%collapsible]
- ====
- *Details* +
- The {ref}/cluster-health.html[cluster health API] includes options for waiting
- for certain health conditions to be satisfied. If the requested conditions are
- not satisfied within a timeout then {es} will send back a normal response
- including the field `"timed_out": true`. In earlier versions it would also use
- the HTTP response code `408 Request timeout` if the request timed out, and `200
- OK` otherwise. The `408 Request timeout` response code is not appropriate for
- this situation, so from version 8.0.0 {es} will use the response code `200 OK`
- for both cases.
- *Impact* +
- To detect a server timeout, check the `timed_out` field of the JSON response.
- ====
- //end::notable-breaking-changes[]
|