Elasticsearch 1.4.0 And 1.3.5 Released
Today, we are happy to announce the release of Elasticsearch 1.4.0, based on Lucene 4.10.2, and of bug fix release Elasticsearch 1.3.5. You can download them and read the full changes list here:
- Latest stable release: Elasticsearch 1.4.0.
- Bug fixes for 1.3.x: Elasticsearch 1.3.5
For blog posts about past releases in the 1.3 branch, see: 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0.
As we said with the Beta1 release, the major theme of 1.4.0 is resiliency: making Elasticsearch more stable and reliable than ever before, with better memory management, improved discovery algorithms, and better detection of corrupted data. Some highlights from the Beta1 release include:
- Doc values (fielddata written to disk at index time) greatly reduces heap usage.
- Request circuit breaker to abort search requests which consume too much memory.
- Bloom filters are disabled by default as they are no longer needed for fast indexing.
- Numerous bug fixes and improvements in node discovery and shard recovery.
- Increased use of checksums to detect data corruption early.
- Groovy replaces MVEL as the default scripting language.
- CORS is disabled by default to prevent XSS attacks.
- Query cache to return aggregation results instantly on shards that have not changes.
-
New aggregations:
filters
(docs),children
(docs), andscripted_metric
(docs). -
A new
GET /index
API which returns index settings, mappings, warmers, and aliases in a single request (docs). - Flake IDs for auto-generated document IDs, which improve primary key lookup performance.
- Updates which don't make any change to the document can avoid reindexing the document.
-
Functions in the
function_score
query can be individually tuned with theweight
parameter (docs).
Please read the 1.4.0.Beta1 blog post for more details.
You can read about all of the changes that have gone into 1.4.0 since Beta1 in the 1.4.0 release notes, but there are two major changes which deserve to be highlighted:
HTTP pipelining is the ability to send multiple requests on a single connection without waiting for the corresponding responses, and that responses should be returned in the same order that the requests were received. The HTTP/1.1 spec requires support for pipelining. While Elasticsearch has always advertised HTTP/1.1, it has never supported pipelining, which has caused problems especially for our .NET users.
HTTP pipelining is now officially supported, and is enabled by default. See #8299.
Every release of Lucene brings with it bug fixes and optimizations, but many users have indices that were created with old versions of Lucene and which cannot take advantage of more recent improvements. The new upgrade
API allows you to transparently upgrade any or all of your indices to the latest Lucene format.
The GET _upgrade
request will tell you which indices need to be upgraded, and gives you an indication of how much work is involved by reporting the size of the segments that need to be upgraded. The POST _upgrade
command will rewrite an index in the background into the latest Lucene format.
See the upgrade
API documentation for more information.
Thanks to all our beta testers who reported their experiences with the Beta1 release. We are confident that 1.4.0 is going to be our best release yet. Please download Elasticsearch 1.4.0, try it out, and let us know what you think on Twitter (@elasticsearch). You can report any problems on the GitHub issues page.