0.17.0 has just been released. You can download it here. This is a major release, and includes the following major features:
Improved Aliases – Filtering and Routing
Index aliases, which are very handy in aliasing a custom name to an index (or indices) and changing it on the fly, now support the ability to associate a search filter which will automatically filter all the search requests when using the alias, and a routing value (will automatically be used when hitting the alias).
This can come in handy in several scenarios, for example, a single index holding multi user data can have a username as the alias, associate a term filter that filters the results based on the username, and possibly use the username as the routing value (thus hitting less shards when searching).
The get API is now fully realtime. This means that its not affected by the scheduled refresh / visibility of changes done to the index for search, and once a document is indexed / deleted, it will be immediately visible for GET.
Also, a new multi get API has been added to execute multi document get in an optimized manner.
Note, the realtime get feature does not require “refreshing” the Lucene index, and does not come with the overhead associated with it.
Nested objects / docs
Nested objects / documents are now supported, allowing for a document to be broken down into root document and nested document (mainly make sense for multi valued inner objects). This allows for better searchability across those nested documents, as well as better faceting.
Note, the fact that those nested documents are “within” the json document indexed allows to index them within the same “block”, resulting in extremely fast “join” implementation (compared to parent child mapping).
Plugins & Site Plugins
The plugins module has been enhanced to support downloading plugins from github. Plugins can now also serve static sites, for example, installing two commonly used web admins for elasticsearch is as simple as:
bin/plugin -install mobz/elasticsearch-head
bin/plugin -install lukas-vlcek/bigdesk
Many Indices / Large Cluster
Numerous improvements to large clusters and many indices scenarios, especially around memory utilization and full cluster restart times.
An upgrade to Lucene 3.3 version bringing bug fixes and a new tiered based segment merging.
All nodes level APIs now support executing the APIs against nodes not only based on their IDs. For example:
# Attributes (set something like node.rack: 2 in the config)
EC2 specific network host settings
Specific ec2 settings for host names when the
cloud-aws plugin is installed. For example, setting
_ec2:privateIp_ will automatically use the configured instance private ip address to bind and publish to.
Small(er) improvements and bug fixes
As usual, many more smaller features (more analyzers, more customization) and bug fixes are in this release.