Elasticsearch does not support rivers anymore. While we had first planned to keep them around to ease migration, keeping support for rivers proved to be challenging as it conflicted with other important changes that we wanted to bring to 2.0 like synchronous dynamic mappings updates, so we eventually decided to remove them entirely. See Deprecating Rivers for more background about why we took this decision.
Facets, deprecated since 1.0, have now been removed. Instead, use the much more powerful and flexible aggregations framework. This also means that Kibana 3 will not work with Elasticsearch 2.0.
The MVEL scripting language has been removed. The default scripting language is now Groovy.
The old delete-by-query functionality was fast but unsafe. It could lead to document differences between the primary and replica shards, and could even produce out of memory exceptions and cause the cluster to crash.
Currently, a long running delete-by-query job cannot be cancelled, which is one of the reasons that this functionality is only available as a plugin. You can install the plugin with:
./bin/plugin install delete-by-query
See https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/plugins-delete-by-query.html for more information.
Support for multicast is very patchy. Linux doesn’t allow multicast listening on localhost, while OS/X sends multicast broadcasts across all interfaces regardless of the configured bind address. On top of that, some networks have multicast disabled by default.
This feature has been moved to a plugin. The default discovery mechanism now uses unicast, with a default setup which looks for the first 5 ports on localhost. If you still need to use multicast discovery, you can install the plugin with:
./bin/plugin install discovery-multicast
See https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/discovery-multicast.html for more information.
_shutdown API has been removed without a replacement. Nodes should be
managed via the operating system and the provided start/stop scripts.
murmur3 field, which indexes hashes of the field values, has been moved
out of core and is available as a plugin. It can be installed as:
./bin/plugin install mapper-murmur3
_size meta-data field, which indexes the size in bytes of the original
JSON document, has been moved out of core and is available as a plugin. It
can be installed as:
./bin/plugin install mapper-size
The thrift and memcached transport plugins are no longer supported. Instead, use either the HTTP transport (enabled by default) or the node or transport Java client.
The bulk UDP API has been removed. Instead, use the standard
bulk API, or use UDP to send documents to Logstash first.
The merge scheduler is no longer pluggable.