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 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 aggregations 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 scroll and bulk 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:

./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.

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:

./bin/plugin install discovery-multicast

See https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/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:

./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:

./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 bulk API, or use UDP to send documents to Logstash first.

MergeScheduler pluggability

The merge scheduler is no longer pluggable.