Elasticsearch 0.90.3

See issues on GitHub

Release Notes

Breaking changes:

  • Java Client: Renamed IndicesAdminClient.existsAliases() to IndicesAdminClient.aliasesExist #3330

New features:

  • Support for the pattern replace char filter has been added #3197
  • A new API to check if there are pending cluster tasks has been added #3368
  • A new completion suggestion based on prefix suggestions has been added (this is experiemental) #3376


  • Support for named filters has been added #3097
  • The has_child query has been optimized to execute faster when matching parent count is low #3190
  • Integer field data implementations have been merged #3220
  • The rescore query now supports a score_mode #3258
  • Mget fields parameter can now be a string or an array #3270
  • XContentParser/Generator now can handle simple arrays #3279
  • Bulk deletes now contain a found field #3320
  • Zen discovery cluster events now have an urgent priority #3361
  • An own channel for pings has been added in order to be independent from huge cluster state updates #3362
  • Cluster state update APIs now respect the master_timeout much better #
  • A new dedicated thread pool for the optimize API has been added #3366
  • FastVectorHighlighter now supports complex queries (such as multi phrase queries with two terms at the same position) #3357
  • The recursion level of the hunspell filter is now configurable in the mapping #3369
  • Every distribution now contains information about its git build #3370
  • The dynamic flag in the root object mapper can now be configured dynamically on runtime #3384
  • Less cluster state changes if auto_expand_replicas is set #3399
  • Open/Close index API now supports an ackknowledgement from other nodes instead of simply waiting for the change in the cluster state #3400
  • Whenever analyzing strings, elasticsearch now uses Lucene methods introduced with Lucene 4.4, which reuse internal data structures #3409
  • In addition, the formerly used methods have been deprecated #3411
  • Improved alias handling in the cluster state (much faster if you have tens of thousands of aliases) #3410
  • The delete API now waits until a shard is removed from disk #3413
  • Rerouting of shards now happens on a shard started event #3417
  • The Index Template API now is more RESTful, supports HEAD and returns a proper 404 if it does not exist #3434
  • HighlightBuilder is now consistent with REST API #3435
  • The header response (including the successful/failed shards) has been streamlined between different requests #3441

Bug fixes:

  • Timestamp index settings in a mapping are now correctly returned #3174
  • Field data now supports more than 2B ordinals per segment #3189
  • TokenStreams were reset twice when highlighting #3200
  • The geo_shape filter now handles multiple shapes per document correctly#3242
  • PluginManager fixes
    • The PluginManager now parses parameters correctly again (regression from 0.90.1) #3245
    • Calling the PluginManager while having a non-existing plugins directory is now handled #3253
  • The index warmer setting to is now configurable at runtime #3246
  • The order of fields in a suggest request can now be arbitrary #3247
  • More-like-this now correctly returns an error message if used with numeric fields (that error can be simply ignored as well) #3252
  • The parent option is now taken into account for delete requests #3257
  • The Update APIs doc_as_upsert option is now taken into account correctly #3265
  • Mget requests do not abort completely anymore if any index is missing #3267
  • Parent is taken into account in exists request #3276
  • Removed java dependency from debian package, so arbitrarily installed java can be used #3284
  • Partial fields filtering could return false matches #3288
  • Caching of top_children, has_child and has_parent queryies could lead to a ClassCastException #3290
  • Script based sorting was applied after pagination #3309
  • Unallocated indexes cannot be closed immediately to prevent indices which cannot be opened anymore #3313
  • Thai analyzer now makes use of stopwords #3342
  • Unset top level filter now behaves the same as inside a filtered query #3356
  • Pattern replace filter now has an empty default set to ensure same behaviour on upgrades #3359
  • Alias validation on adding aliases has been improved #3363
  • Uncaught exceptions on cluster state updates could lead to hanging request #3364
  • FuzzyLikeThisFieldQueryBuilder defaults are now consistent with the REST API #3374
  • Updatting a mapping with ignore_conflicts could hang and timeout #3381
  • Setting index.gc_deletes on runtime is working properly now #3396
  • MoreLikeThisFieldQueryBuilder defaults are now consistent with the REST API #3402
  • Query/Filter facet counter is now 64bit #3419
  • The pid file was not properly overwritten if it already existed #3425
  • Search in a shard group while relocation final flip happens could have failed #3427
  • UpsertRequests now contain all metadata fields (parent, routing, etc.) #3444
  • Retry_on_conflict setting in a bulk request could lead to an NPE #3447