Product release

Elasticsearch 5.0.0-alpha2 released

Today we are excited to announce the release of Elasticsearch 5.0.0-alpha2 based on Lucene 6.0.0. This is the second in a series of pre-5.0.0 releases designed to let you test our your application with the features and changes coming in 5.0.0, and to give us feedback about any problems that you encounter.

Open a bug report today and become an Elastic Pioneer.

IMPORTANT: This is an alpha release and is intended for testing purposes only. Indices created in this version will not be compatible with Elasticsearch 5.0.0 GA. Upgrading 5.0.0-alpha2 to any other version is not supported.

DO NOT DEPLOY IN PRODUCTION

Elasticsearch 5.0.0-alpha2 is close to being feature complete, and builds on the work released in 5.0.0-alpha1. There are many small changes which you can read about in the release notes above, but some of the more interesting ones are mentioned below.

Also take a look at the release announcement for Elasticsearch 5.0.0-alpha1 to read about features like:

  • Ingest Node
  • Painless Scripting
  • Instant Aggregations
  • Text/Keyword fields replacing String
  • Completion Suggester v2
  • Settings Validation
  • Safety in Production
  • Resiliencey Improvements

Migration Helper

The Elasticsearch Migration Helper is a site plugin designed to help you to prepare for your migration from Elasticsearch 2.3.x to Elasticsearch 5.0. It comes with three tools:

Cluster Checkup
Runs a series of checks on your cluster, nodes, and indices and alerts you to any known problems that need to be rectified before upgrading.
Reindex Helper
Indices created before v2.0.0 need to be reindexed before they can be used in Elasticsearch 5.x. The reindex helper upgrades old indices at the click of a button.
Deprecation Logging
Elasticsearch comes with a deprecation logger which will log a message whenever deprecated functionality is used. This tool enables or disables deprecation logging on your cluster.

Instructions for installing the Elasticsearch migration helper on Elasticsearch 2.3.x.

Lucene 6

This release is based on Lucene 6.0.0 and uses the new dimensional point fields for date, numeric, and ip fields. Besides faster indexing, faster range queries, and smaller indices, the use of point fields also means that ip fields support IPv4 and IPv6 out of the box.

Percolate Query

We sat back and had a long hard think about how we could improve the Percolator with requested features like highlighting, scoring, and pagination. What we realised was that percolation is just a special form of search and we could benefit from all the features of the search API by replacing the percolate API with the new percolate query. The percolate query is just a new query that can be used along with the rest of the Query DSL. It queries the special percolator field datatype, which replaces the .percolator document type. The old percolate API is now deprecated but will continue to work through Elasticsearch 5.x.

Deleted Index Tombstones

Have you ever restarted an old node and found that previously deleted indices popped back to life like annoying, hard-to-kill zombies? We now maintain tombstones for deleted indices in the cluster state to keep these zombies where they should be. The tombstone list is capped at 500 indices by default, which equates to about one season of The Walking Dead.

Indexed Scripts/Templates are now Stored

Previously, scripts and templates could be indexed into the special .scripts index and referenced by name in search and other requests. This complicated index recovery because the .scripts index had to be recovered before other indices. We have renamed these indexed scripts/templates to stored scripts/templates, and they are now stored in the cluster state instead of in an index. You will need to migrate any existing indexed scripts or templates that you have to the cluster state when moving to 5.0. Instructions for doing so are available here.

So long Environment Vars and thanks for all the fish

In previous versions, JVM configuration options could be scattered across multiple configuration files and environment variables. Now, all JVM options are centralized into a single jvm.options file that can be checked into your version control.

Importantly, you can no longer use the ES_HEAP_SIZE environment variable but instead should configure the min and max heap sizes in the JVM options file.

Safety Measures

We’ve added more checks to Elasticsearch to keep your cluster running healthily. At bootstrap time we check to ensure that you have set the JVM heap size correctly, and that your node has access to enough virtual memory. This last one is particularly important because Elasticsearch is switching to use mmapfs for all Lucene files, instead of the mmap/nio hybrid file system that was used before.

There is also a new circuit breaker to limit the total size of all inflight requests. This is to prevent users from overloading your cluster by sending too many large bulk or search requests at the same time, which can overload nodes and even cause them to run out of memory.

Conclusion

Please download Elasticsearch 5.0.0-alpha2, try it out, and let us know what you think on Twitter (@elastic) or in our forum. You can report any problems on the GitHub issues page.