[[breaking_20_removed_features]] === Removed features ==== Rivers have been removed 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 link:/blog/deprecating_rivers[Deprecating Rivers] for more background about why we took this decision. ==== Facets have been removed Facets, deprecated since 1.0, have now been removed. Instead, use the much more powerful and flexible <> framework. This also means that Kibana 3 will not work with Elasticsearch 2.0. ==== MVEL has been removed The MVEL scripting language has been removed. The default scripting language is now Groovy. ==== Delete-by-query is now a plugin 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. This feature has been reimplemented using the <> and <> APIs, which may be slower for queries which match large numbers of documents, but is safe. 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: [source,sh] ------------------ ./bin/plugin install delete-by-query ------------------ See {plugins}/plugins-delete-by-query.html for more information. ==== Multicast Discovery is now a plugin 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: [source,sh] ------------------ ./bin/plugin install discovery-multicast ------------------ See {plugins}/discovery-multicast.html for more information. ==== `_shutdown` API The `_shutdown` API has been removed without a replacement. Nodes should be managed via the operating system and the provided start/stop scripts. ==== `murmur3` is now a plugin The `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: [source,sh] ------------------ ./bin/plugin install mapper-murmur3 ------------------ ==== `_size` is now a plugin The `_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: [source,sh] ------------------ ./bin/plugin install mapper-size ------------------ ==== Thrift and memcached transport 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. ==== Bulk UDP The bulk UDP API has been removed. Instead, use the standard <> API, or use UDP to send documents to Logstash first. ==== MergeScheduler pluggability The merge scheduler is no longer pluggable.