12 February 2014

1.0.0 Released

By Clinton Gormley

Today we are proud to announce the release of Elasticsearch 1.0.0 GA, based on Lucene 4.6.1. This release is the culmination of 9 months of work with almost 8,000 commits by 183 contributors! A big thank you to everybody who has made this release possible.

You can download Elasticsearch 1.0.0 here.

The main features available in 1.0 are:

  • Snapshot/Restore API Backup or restore select indices or the whole cluster to a shared filesystem, S3 or HDFS via a simple API. Blog: Introducing snapshot & restore, Docs: Snapshot/Restore
  • Aggregations Aggregations are “facets” reborn, providing more powerful, more flexible real-time analytics. Aggregations can be combined with each other and nested, to slice and dice your data exactly the way you want it. Includes the new geohash grid aggregation for geo-clustering. Blog: Data visualization with elasticsearch aggregations and D3, Docs: Aggregations
  • Distributed Percolation Percolation is search reversed: instead of running a query to find matching docs, we can percolate a document to find matching queries. While percolation was already available before, this release makes percolation distributed, so that it will scale with your cluster. Percolation now supports highlighted search snippets, aggregations and bulk percolation. Blog: Redesigned percolator, Docs: Percolator
  • cat API Easy to read, console-based insight into what is happening in your cluster. Particularly useful to the sysadmin when the alarm goes off at 3am and JSON is too difficult to read. Blog: Introducing the cat API, Docs: cat API
  • Federated search The tribe node joins multiple clusters and acts as a federated client. Almost all operations are supported: distributed search, suggestions, percolation. You can even index into multiple clusters with the tribe node. Alternatively, you can set a tribe node to not allow any write operations, making it read-only. Docs: Tribe node
  • Doc values Some of those beautiful aggregations can use a lot of memory, especially when they involve text fields. Doc values store field values on disk rather than in memory, allowing you to run aggregations on much bigger datasets, at the cost of a little performance. Blog: disk-based field data a.k.a. doc values, Docs: Doc Values
  • Circuit breaker There are a few sharp edges in Elasticsearch, places where you can hurt yourself if you are not careful. We are working on adding “circuit breaker” functionality to prevent you from doing so. The first circuit breaker detects attempts to load too much fielddata into memory, which may cause OOM (out of memory) exceptions. More circuit breakers will follow. Docs: Fielddata circuit breaker

Migrating to 1.0.0

We took advantage of a major version bump to remove cruft and to fix a number of inconsistencies. Our goal is that the user interface should be intuitive — you shouldn’t even need to consult the docs for common requests because the API should be obvious. The good news is that a number of APIs are much simpler. Unfortunately, this means that there were a few backwards incompatible changes.

We have put together a guide to help you migrate to v1.0.0: Breaking changes in 1.0. Please read this carefully, backup your data and test your application thoroughly before upgrading.

You will need to do a full cluster restart when upgrading, but we hope to make these a thing of the past in the 1.x branch — a number of features have been added to facilitate rolling upgrades going forward.

The v1.0.0 release notes list all of the changes since v1.0.0.RC2, but you should also check the release notes for:

If you are using the official Elasticsearch clients, please see the appropriate docs for instructions about how to use them with v1.0.0:

Please download Elasticsearch 1.0.0 and let us know what you think!