Elasticsearch 1.5.2 is Coming to Compose

TL;DR: Elasticsearch users can now upgrade to version 1.5.2 of the search-oriented database. By the end of the week we will be working with all our customers to bring their installations up to that version.

This is an important update so read on to find out why we're pushing it to our users.

Why are we updating to 1.5 now?

We have been working on getting Elasticsearch 1.5 on the Compose platform since it was announced at the end of March. As with all new major versions it wasn't long before a release with important bug fixes arrived and that came in early April with Elasticsearch 1.5.1.

There was also engineering work in hand to upgrade our Java 7 installations to Java 8, the latest version of which arrived mid-April. This was work we had to have ready with by the end of April because Java 7 was reaching its public end of life date, April 30th.

It was all going to plan and then, at the very end of April, Elasticsearch 1.5.2 was released to close a security hole. This vulnerability opens a path which could give an attacker view of files on the server. We immediately set about bringing the update as quickly as possible to users.

One issue with a rapid deployment on Compose was Kibana 4. The previous version of the analytics dashboard, Kibana 3, is a "site plugin" – it has a web interface that runs on the Elasticsearch server – but the new version released alongside Elasticsearch 1.5 is a standalone server. We have other plans for stand-alone options such as Kibana 4, so in the interim and to ensure a smooth migration path, Kibana 3 has been configured to work with the Compose Elasticsearch 1.5.2.

We now have a Java 8 based, Elasticsearch 1.5.2 deployment ready for users to upgrade to now. Support will be happy to help any users upgrading now or waiting for the update push at the end of the week. If you have any concerns, please contact support by email or through the Compose Dashboard – select Support and create a new ticket there.

What's new in 1.5

Surprisingly for a major version, there aren't that many user-visible new features. Most of the changes are behind the scenes for performance and reliability. The most major change in 1.5 is the deprecation of rivers, a route used by many to import data into Elasticsearch – the security and stability issues related to rivers meant that we never made them available to Compose users and instead we have offered out Transporter technology as a data import route, not just to Elasticsearch but to a number of database systems.

The new feature that Compose users may find relevant to them is Inner Hits. This query feature opens up documents so that a query can search the nested documents within them and return matches which refer to those nested documents rather than the containing document. This would normally take a number of queries, first to locate a document with matching content, then a complex query on that document to pull out the matching and group the nested documents.

An example of this might be a blog with nested comments or a product with nested reviews. Inner Hits should make it easier to analyse those kinds of structures. The feature is, though, experimental and as such liable to be removed or rewritten at some point in the future.

As a non-trivial update, Elasticsearch 1.5 includes a number of breaking changes, deprecated features and enhancements. They are listed in the release notes. Users should confirm that they are not affected by these changes or take appropriate engineering action in their applications. You can also consult the release notes for Elasticsearch 1.5.1 and Elasticsearch 1.5.2 for the complete picture.

How to update

Go to your Compose Dashboard and select the Elasticsearch deployment you want to upgrade. Then select the Settings tab in the sidebar. The first setting on that page will be Change Version.

Select 1.5.2 from the dropdown menu and then click Change Version. The Compose platform will then automatically do a rolling update to your Elasticsearch deployment which you can follow on the Jobs tab in the sidebar.