Elasticsearch 0.15.0

See issues on GitHub

Release Notes

Upgrade Notes

In order to upgrade to this version, and full cluster restart is required. Shutdown the cluster using the cluster wide shutdown API, upgrade the version, and start it back up. The new versioning feature will only start to kick in for newly indexed docs.

Breaking changes:

  • -Des.config=/path/to/config/file doesn’t replace $ES_HOME/elasticsearch.conf, just appends to it (#588)
  • Allow ./bin/plugin to install plugins from the local filesystem / custom url (#595)
  • Twitter updates have broken Twitter River, Update to latest version of Twitter4J (#627)
  • Remove -XX:+AggressiveOpts flag that is turned on by default in startup script (#638)
  • Facets: Remove redundant data returned as part of facet response (for example, the field name being faceted) (#655)
  • Histogram Facet: Improve perf / memory by defaulting to just providing counts with no totals (#587)
  • Geo: All geo components that accept an array of [lat, lon] to change to do [lon, lat] to conform with GeoJSON (#661)
  • Groovy client doesn’t bind to any variables outside the closure (#654)
  • Index Status: Add primary store size to include only primary shards store sizes, also move index store and translog into their own elements (#666)
  • Mapping: Disable automatic ip type detection on new fields (#674)
  • Highlighting: If a field ends up not being highlighted, don’t return it in the response (#685)

New features:

  • Versioning (#594)
  • A setting to auto expand the number of replicas of an index (based on data nodes) (#623)
  • Percolator (#624)
  • Percolate on Index and Bulk (#636)
  • Highlighting: Allow to highlight on fields without term vectors (#585)
  • Search:
    • Date Histogram Facet (#591)
    • Allow to pass a search filter, applying only on the query (and not on facets for example) (#650)
  • Allow ./bin/plugin to install plugins from the local filesystem / custom url (#595)


  • Master based operations (create index, delete index) to automatically retry on retryable cluster blocks (like recovery from gateway) (#584)
  • Add resident field cache type (#602)
  • Add to node stats the number of times field cache was evicted due to memory constraints (#603)
  • Make URI query decoding more robust (#608)
  • Geo-distance in scripts (like custom_score) (#607)
  • NPE for when passing null date to content builder (#610)
  • Add prefer_local flag to analyze and percolate request (#625)
  • Java Client – Allow to set facets in binary format (#442)
  • Analysis:
    • Add Snowball stemmer as analyzer and filter (#606)
    • Add stemming to czech analyzer (#642, #639)
    • Add phonetic token filter (metaphone, soundex, …) (#644)
  • Bulk API: Add how long the bulk API took (in milliseconds) to the response (#599)
  • Index Merge: Improve internal (segment) merging by not initiating it on doc operations (#653)
  • Mapper: Add byte type (8bit signed) (#620)
  • Node Stats: Process / Network / Os should only refresh every 5 seconds (refresh_interval to set it) (#626)
  • Search:
    • Add a timed_out element indicating if the search request timed out (#592)
    • When sorting, allow to pass `track_scores` and set it to `true` to get scores/max_score back (#662)
    • By default, don’t return the version per hit, unless version is set to true (#676)
  • Search Scripts: Allow to access score in facet related scripts using doc.score (#663)
  • Shared Gateway: Allow to set the number of concurrent streams doing snapshot operations (#621)
  • Strict dynamic setting: Refuse to index a document with fields not present in the mapping definition (#643)
  • Terms Facet:
    • Performance and memory improvements when faceting numeric fields (#583)
    • Add option include counts where term is missing (#632)
    • Allow to get all_terms back (possibly with count 0) (#647)
    • Terms facet on an IP field returns terms as numbers, not IPs (#678)
  • Thread Pool: Increase the keep alive time of threads from 60 seconds to 60 minutes (#657)
  • Translog Flushing: Improve logic, flush not just by operations in the translog (#656)
  • Added geo_bbox as an alias to geo bounding box (commit)
  • Analysis: Decompounder (#651)
  • Don’t fail search if highlight field is missing for a specific type (#682)
  • Query: boosting query (#683)
  • ThreadPool: Refactor into several pools, with configurable types per pool (#687)
  • Add new Access-Control-Allow-Headers value into http response header (#688)
  • REST codes: Improve returned error codes on REST APIs, associate codes with internal exceptions (#690)
  • Cluster Shutdown API: On full/_all shutdown, shutdown only data/master nodes, not client nodes (#697)

Bug fixes:

  • Groovy Plugin not loaded (groovy not enabled as pluggable script provider) (#581)
  • Non-data master nodes and non-master data nodes fail to store data (#579)
  • refresh param to bulk not working (#614)
  • /_open is not recovering indices correctly (#615)
  • If the cluster does not contain any indices then index templates do not survive cluster restart. (#617)
  • Starting a node with existing data and killing it before its finished it cluster joining / initialization can cause data loss (#633)
  • ES hangs connection when parent is not specified in bulk index (#641)
  • No cluster name filtering when sniffing is not enabled (#637)
  • Delete By Query: Types are not serialized over network, causing them to be ignored (#580)
  • Highlighting:
    • The result of highlighting for a hit can contain data from another document (#600)
    • Sometimes highlighting returns empty fragments even thought there should be (#613)
    • Only add highlighted fragments that have a score > 0 (fixed as a part of #645)
  • Nodes Stats: return no nodes info (#629)
  • REST Create Index: Not taking JSON index settings into account unless wrapped in settings. (#578)
  • Search:
    • When fetching _parent, only the _id should be returned, and not type#id (#658)
    • Failure when sorting on short type (#665)
  • NPE during ES startup when using S3 gateway with the europe region specified (#659)
  • REST API: Failure to index docs that have their ids URL encoded and contain / (#681)
  • Index Status: Peer recovery does not compute the index size correctly to report the full size (#695)


  • upgrade to gradle 0.9.2
  • upgrade to jackson 1.7.3
  • upgrade to guice 3.0 rc2
  • upgrade to sigar 1.6.4
  • upgrade to trove 3.0.0rc1
  • upgrade to mvel2 2.1.RC1
  • upgrade jsr166y
  • upgrade to netty 3.2.4
  • upgrade to groovy 1.7.7