[[breaking-changes-5.0]]
== Breaking changes in 5.0

This section discusses the changes that you need to be aware of when migrating
your application to Elasticsearch 5.0.

[float]
[[migration-plugin]]
=== Migration Plugin

The https://github.com/elastic/elasticsearch-migration/blob/2.x/README.asciidoc[`elasticsearch-migration` plugin]
(compatible with Elasticsearch 2.3.0 and above) will help you to find issues
that need to be addressed when upgrading to Elasticsearch 5.0.  

[float]
=== Indices created before 5.0

Elasticsearch 5.0 can read indices created in version 2.0 or above.  An
Elasticsearch 5.0 node will not start in the presence of indices created in a
version of Elasticsearch before 2.0.

[IMPORTANT]
.Reindex indices from Elasticseach 1.x or before
=========================================

Indices created in Elasticsearch 1.x or before will need to be reindexed with
Elasticsearch 2.x in order to be readable by Elasticsearch 5.x. It is not
sufficient to use the <<indices-upgrade,`upgrade`>> API.  The easiest
way to reindex old indices is to upgrade to Elasticsearch 2.3 or later and to use the
`reindex` API, or the reindex UI provided by the <<migration-plugin,Migration Plugin>>.

=========================================

The first time Elasticsearch 5.0 starts, it will automatically rename index
folders to use the index UUID instead of the index name. If you are using
<<indices-shadow-replicas,shadow replicas>> with shared data folders, first
start a single node with access to all data folders, and let it rename all
index folders before starting other nodes in the cluster.

[float]
=== Also see:

* <<breaking_50_search_changes>>
* <<breaking_50_mapping_changes>>
* <<breaking_50_percolator>>
* <<breaking_50_suggester>>
* <<breaking_50_index_apis>>
* <<breaking_50_document_api_changes>>
* <<breaking_50_settings_changes>>
* <<breaking_50_allocation>>
* <<breaking_50_http_changes>>
* <<breaking_50_rest_api_changes>>
* <<breaking_50_cat_api>>
* <<breaking_50_java_api_changes>>
* <<breaking_50_packaging>>
* <<breaking_50_plugins>>
* <<breaking_50_fs>>
* <<breaking_50_aggregations_changes>>
* <<breaking_50_scripting>>


include::migrate_5_0/search.asciidoc[]

include::migrate_5_0/mapping.asciidoc[]

include::migrate_5_0/percolator.asciidoc[]

include::migrate_5_0/suggest.asciidoc[]

include::migrate_5_0/index-apis.asciidoc[]

include::migrate_5_0/docs.asciidoc[]

include::migrate_5_0/settings.asciidoc[]

include::migrate_5_0/allocation.asciidoc[]

include::migrate_5_0/http.asciidoc[]

include::migrate_5_0/rest.asciidoc[]

include::migrate_5_0/cat.asciidoc[]

include::migrate_5_0/java.asciidoc[]

include::migrate_5_0/packaging.asciidoc[]

include::migrate_5_0/plugins.asciidoc[]

include::migrate_5_0/fs.asciidoc[]

include::migrate_5_0/aggregations.asciidoc[]

include::migrate_5_0/scripting.asciidoc[]
