See issues on GitHub

Release Notes

Breaking changes

  • Benchmark:
    • Benchmark api: removed leftovers #10180
  • Highlighting:
    • Wildcard field names in highlighting should only return fields that can be highlighted #11364 (issue: #9881)
  • Network:
  • Snapshot/Restore:
    • Fix FSRepository location configuration #11284 (issue: #11068)

Deprecations

  • CRUD:
  • Java API:
    • Query DSL: deprecate BytesFilterBuilder in favour of WrapperFilterBuilder #11112 (issue: #10919)
    • Deprecate async replication #10642 (issues: #10114, #10171)
  • More Like This:
    • Deprecate the More-Like-This API in favour of the MLT query #10982 (issue: #10736)
  • Rivers:
    • Deprecate rivers #10503
    • Warning in documentation for deprecation of rivers #10423 (issue: #10345)
  • Network:
    • Deprecated the thrift and memcached transports #10167 (issue: #10166)
  • Parent/Child:
  • Plugins:
    • Plugins: deprecate addQuery methods that are going to be removed in 2.0 #11532 (issue: #11481)
  • Scripting:
    • Deprecate Groovy sandbox and related settings #10478 (issue: #10156)
  • Search:
    • Deprecate delete-by-query in client/transport/action APIs too #10239 (issue: #10082)
  • Suggesters:
    • Deprecate filter option in PhraseSuggester collate #11445 (issue: #11195)

New features

  • Logging:
    • Add ability to specify a SizeBasedTriggeringPolicy for log configuration #10373 (issue: #10371)
  • Mapping:
  • REST:
    • API: Add response filtering with filter_path parameter #10980 (issue: #7401)
  • Recovery:
  • Scripting:
  • Search:
  • Settings:
  • Shadow Replicas:
    • Allow shards on shared filesystems to be recovered on any node #10960 (issue: #10932)
  • Stats:

Enhancements

  • Allocation:
    • Async fetch of shard started and store during allocation #11262 (issues: #11101, #9502)
    • When using recover_on_any_node on shared filesystem, respect Deciders #11168
    • Early terminate if the cluster can't be rebalanced #9162
  • Analysis:
    • Document and test custom analyzer position_offset_gap #10934 (issue: #1812)
  • CAT API:
  • Cluster:
  • Core:
    • Add node setting to send SegmentInfos debug output to System.out #11546
    • Reduce shard inactivity timeout to 5m #11479 (issues: #11179, #11336)
    • Fail shard if search execution uncovers corruption #11440 (issue: #11419)
    • Acquire IndexWriter's write.lock lock before shard deletion #11127 (issue: #11097)
    • Refactor TransportShardReplicationOperationAction #10749 (issue: #10032)
    • Make getFileStore a bit more defensive #10696
    • Ref count write operations on IndexShard #10610
    • Refresh if many deletes in a row use up too much version map RAM #10312 (issue: #7052)
  • Discovery:
    • Prevent over allocation for multicast ping request #10896
    • Unicast Ping should close temporary connections after returning ping results #10849
  • Engine:
    • Remove reflection call to waitForMerges #10102
  • Geo:
    • Add merge conflicts to GeoShapeFieldMapper #10533 (issues: #10513, #10514)
    • Coordinates can contain more than two elements (x,y) in GeoJSON parser. #9542 (issue: #9540)
  • Index APIs:
    • Add check to MetaData#concreteIndices to prevent NPE #10342 (issue: #10339)
  • Indexed Scripts/Templates:
    • Indexed scripts/templates: return response body when script is not found #10396 (issue: #7325)
    • Indexed Scripts/Templates: Return error message on 404 #7335 (issue: #7325)
  • Internal:
    • Removed generic types from ContextAndHeaderHolder and HasHeaders#putHeader() #11231
    • Wait forever (or one day) for indices to close #10833 (issue: #10680)
    • Don't create a new BigArrays instance for every call of withCircuitBreaking #10800 (issue: #10798)
    • Change BigArrays to not extend AbstractComponent #10798
    • CommitStats doesn't need to allow for null values in commit user data #10774 (issue: #10687)
    • Add fairness option to KeyedLock. #10703
    • Fix string comparisons #10204
    • Remove unsafe field in BytesStreamInput #10157
    • Fix errors reported by error-prone #9817
    • Reduce the size of the search thread pool. #9165 (issue: #9135)
  • Java API:
    • Unify SearchResponse and BroadcastOperationResponse code around shards header #11064
    • Remove duplicated consistency level and replication type setters #10188
  • Logging:
    • Display low disk watermark to be consistent with documentation #11313 (issue: #10588)
    • Add index name to log statements when settings update fails #11124
    • Add logging of slow cluster state tasks #10907 (issue: #10874)
    • Log sending translog operation batches to nodes #10544
    • Log only a summary line of filesystem detail for all path.data on node startup #10527 (issue: #10502)
    • Add INFO logging saying whether each path.data is on an SSD #10502
    • Use static logger name in Engine.java #10497
    • Miscellaneous additional logging and cleanups #10376
    • Change logging to warning to match pattern #9593
    • Reduce apache (cloud-aws) logging when rootLogger is DEBUG #8856
  • Network:
    • Default value for socket reuse should not be null #11255
    • Make Netty exceptionCaught method protected #10464
    • Remove content thread safe from REST layer #10429
    • Add getter for channel in NettyTransportChannel #10319
    • Schedule transport ping interval #10189
    • Return useful error message on potential HTTP connect to Transport port #10108 (issue: #2139)
  • Packaging:
    • Export hostname as environment variable for plugin manager #11399 (issues: #10902, #9474)
    • Exclude jackson-databind dependency #10924
    • Add common SystemD file for RPM/DEB package #10725
    • Standardization of packages structure and install #10595 (issue: #10330)
    • Add properties files to configure startup and installation scripts #10330
    • service.bat file should explicitly use the Windows find command. #9532
    • Export the hostname as environment variable #9474 (issue: #8470)
  • Plugins:
    • Use of default CONF_DIR/CONF_FILE in plugin install #10721 (issues: #10673, #7946)
    • Always send current ES version when downloading plugins #10131
  • Query DSL:
    • Function score: Add default to field_value_factor #10845 (issue: #10841)
  • REST:
    • Unify query_string parameters parsing #11057
    • HttpServer: Support relative plugin paths #10975 (issue: #10958)
    • Remove global source parameter from individual APIs in REST spec #10863
    • Better detection of CBOR #10026 (issue: #7640)
    • Remove indices_boost URL param #9244 (issue: #6281)
  • Recovery:
    • Reduce cluster update reroutes with async fetch #11421
    • Check if the index can be opened and is not corrupted on state listing #11269 (issue: #11226)
    • Allow to recover into a folder containing a corrupted shard #10558
    • Only cancel recovery when primary completed relocation #10218
  • Scripting:
    • Allow plugins to define custom operations that they use scripts for #10419 (issue: #10347)
  • Search:
    • Single value numeric queries shouldn't be handled by NumericRangeQuery #10648 (issue: #10646)
  • Settings:
    • Make prompt placeholders consistent with existing placeholders #11514 (issues: #10918, #11455)
  • Shadow Replicas:
    • Implement retries for ShadowEngine creation #10688 (issue: #10637)
    • Allow rebalancing primary shards on shared filesystems #10585 (issue: #10469)
  • Snapshot/Restore:
    • Add support for applying setting filters when displaying repository settings (Backport to 1.6) #11431 (issue: #11265)
    • Check that reading indices is allowed before creating their snapshots #11133
    • Don't throw an exception if repositories are unregistered with * #11113
    • Improve the error message when attempting to snapshot a closed index #10608 (issue: #10579)
    • AbstractBlobContainer.deleteByPrefix() should not list all blobs #10366 (issue: #10344)
    • Batching of snapshot state updates #10295
    • Expand wildcards in snapshot #9903 (issue: #6097)
  • Stats:
    • Add CommitStats to supply information about the current commit point #10687
  • Store:
    • Consolidate directory lock obtain code #11390
  • Suggesters:
    • Phrase Suggester Collate Enhancements #10710 (issue: #9377)
  • Translog:
    • Use buffered translog type also when sync is set to 0 #10993
    • Remove useless random translog directory selection #10589
  • Upgrade:
    • Upgrade Jackson to 2.5.3 #11307
    • Upgrade to Netty 3.10.3 #11304
    • Update forbiddenapis to version 1.8 #10555
    • Upgrade to Jackson 2.5.1 #10210
    • Upgrade to Jackson 2.5.1 #10134
  • Upgrade API:
    • Refactor upgrade API to use transport and write minimum compatible version that the index was upgraded to #11333 (issues: #11072, #11095)
    • Add upgrade_only_ancient_segments option to upgrade API #10540 (issue: #10213)

Bug fixes

  • Aggregations:
    • Allow aggregations_binary to build and parse #11473 (issue: #11457)
    • Fix geo bounds aggregation when longitude is 0 #11090 (issue: #11085)
    • Fixes Infinite values return from geo_bounds with non-zero bucket-ordinals #10917 (issue: #10804)
    • Fix _as_string output to only show when format specified #10571 (issue: #10284)
  • Allocation:
    • GatewayAllocator: reset rerouting flag after error #11519 (issue: #11421)
  • Analysis:
    • Custom analyzer names and aliases must not start with _ #11303 (issue: #9596)
    • Fix tokenizer settings in SynonymTokenFilterFactory #10489
  • Bulk:
    • Allow null values in the bulk action/metadata line parameters #11459 (issue: #11458)
    • Throw exception if unrecognized parameter in bulk action/metadata line #11331 (issue: #10977)
    • _default_ mapping should be picked up from index template during auto create index from bulk API #10762 (issue: #10609)
    • Removed duplicate timeout param #10205
  • CAT API:
    • _cat/nodes: Thread null handling through stats and info #9938 (issue: #6297)
  • CRUD:
    • detect_noop now understands null as a valid value #11210 (issue: #11208)
    • The parent option on update request should be used for upsert only. #9612 (issue: #4538)
  • Cache:
  • Cluster:
    • ClusterHealth shouldn't fail with "unexpected failure" if master steps down while waiting for events #11493
  • Core:
    • Improve exception message when shard has a partial commit (segments_N file) due to prior disk full #11539 (issue: #11249)
    • Use System.nanoTime for elapsed time #11058
    • Lucene merges should run on the target shard during recovery #10463 (issue: #9226)
    • Increase default rate limiting for snapshot, restore and recovery to 40 MB/sec #10185 (issue: #6018)
  • Dates:
  • Engine:
    • Ignore 3x segment upgrade if unneeded #11383 (issue: #11361)
    • Sync translog before closing engine #10484
  • Geo:
    • Fix OOM for high precision exotic shapes #10652 (issues: #10583, #2361, #9860)
    • Correct ShapeBuilder coordinate parser to ignore values in 3rd+ dimension #10539 (issue: #10510)
    • Fix hole intersection at tangential coordinate #10332 (issue: #9511)
  • Highlighting:
    • Use analyzer set on the field #8943 (issue: #8757)
  • Index APIs:
    • Remove expansion of empty index arguments in RoutingTable #10148 (issue: #9081)
  • Indexed Scripts/Templates:
  • Inner Hits:
    • Fix multi level parent/child bug #11199
    • Make sure size=0 works on the inner_hits level. #10388 (issue: #10358)
    • Make sure inner hits also works for nested fields defined in object field #10353 (issue: #10334)
    • Fix bug where parse error is thrown if a inner filter is used in a nested filter/query. #10309 (issue: #10308)
    • Fix nested stored field support. #10235 (issue: #9766)
  • Internal:
    • Make JNA optional for tests and move classes to bootstrap package #11378 (issue: #11360)
    • Fix CompressedString.equals. #11233
    • ThreadPool: make sure no leaking threads are left behind in case of initialization failure #11061 (issue: #9107)
    • Propagate headers & contexts to sub-requests #11060 (issue: #10979)
    • Fix NPE in PendingDelete#toString #11032
    • Search: FielddataTermsFilter equality is based on hash codes  #10728
    • Ensure that explanation descriptions are not null on serialization #10689 (issue: #10399)
    • Fix possible NPE in InternalClusterService$NotifyTimeout, the future field is set from a different thread #10630 (issue: #3)
    • Allow ActionListener to be called on the network thread #10573 (issue: #10402)
    • Add missing hashCode method to RecoveryState#File #10501
    • Don't try to send a mapping refresh if there is no master #10311 (issue: #10283)
    • Close all resources if doStart fails #9898
  • Java API:
    • Add missing rewrite parameter to FuzzyQueryBuilder #11139 (issue: #11130)
    • Ensure netty I/O thread is not blocked in TransportClient #10644
    • toString for SearchRequestBuilder and CountRequestBuilder #9944 (issues: #5555, #5576)
  • Logging:
    • Add filename to corruption message #10110 (issue: #10062)
    • Fix potential NPE in new tracer log if request timeout #9994 (issue: #9286)
  • Mapping:
    • numeric_resolution should only apply to dates provided as numbers. #11002 (issue: #10995)
    • Unneccesary mapping refreshes caused by unordered fielddata settings #10370 (issue: #10318)
    • Fixed an equality check in StringFieldMapper. #10359 (issue: #10357)
    • Fix _field_names to be disabled on pre 1.3.0 indexes #10268 (issue: #9893)
    • Fix ignore_malformed behaviour for ip fields #10112
    • Update dynamic fields in mapping on master even if parsing fails for the rest of the doc #9874 (issue: #9851)
  • Network:
    • Transport: fix racing condition in timeout handling #10220 (issue: #10187)
  • Parent/Child:
  • Percolator:
    • Prevent PercolateResponse from serializing negative VLong #11138
    • Fix wrong use of currentFieldName outside of a parsing loop #10307
  • Plugins:
    • Only load a plugin once from the classpath #11301
    • HTTP: Ensure url path expansion only works inside of plugins #10815
  • Query DSL:
    • Score value is 0 in _explanation with random_score query  #10742
    • Avoid NPE during query parsing #10333
    • Function score: Apply min_score to sub query score if no function provided #10326 (issue: #10253)
    • function_score: undo "Remove explanation of query score from functions" #9826
  • REST:
    • fielddata_fields query string parameter was ignored. #11368 (issue: #11025)
    • REST spec for termvector missing paths on 1.x branch #11087 (issue: #11086)
  • Recovery:
    • Don't write recoveryType twice #11347 (issues: #11179, #11335)
    • Decrement reference even if IndexShard#postRecovery barfs #11201
    • Fail recovery if retry recovery if resetRecovery fails #11149
    • Refactor state format to use incremental state IDs #10316
    • RecoveryState.File.toXContent reports file length as recovered bytes #10310
    • Fail shard when index service/mappings fails to instantiate #10283
  • Scripting:
    • Allow script language to be null when parsing #10976 (issue: #10926)
  • Search:
    • Release search contexts after failed dfs or query phase for dfs queries #11434 (issue: #11400)
    • Don't truncate TopDocs after rescoring #11342 (issues: #11277, #7707)
  • Search Templates:
    • Fix JSON encoding for Mustache templates. #10820 (issue: #5473)
  • Settings:
    • Prevent changing the number of replicas on a closed index #11410 (issue: #9566)
    • Read configuration file with .yaml suffix #10909 (issue: #9706)
    • Validate number_of_shards/_replicas without index setting prefix #10701 (issue: #10693)
    • Fix handling of IndicesOptions in update settings REST API #10030
  • Snapshot/Restore:
    • Sync up snapshot shard status on a master restart #11450 (issue: #11314)
    • Fix check for locations in a repository path #11426
    • Don't reuse source index UUID on restore #10367
    • Separate repository registration #10354 (issue: #10351)
    • Automatically add "index." prefix to the settings are changed on restore if the prefix is missing #10269 (issue: #10133)
  • Store:
    • Fix stream version check in ShardActiveRequest #11407
    • Ensure we mark store as corrupted if we fail to read the segments info #11230 (issue: #11226)
    • Fix NPE when checking for active shards before deletion #11110 (issue: #10172)
    • Shard not deleted after relocation if relocated shard is still in post recovery #10172 (issue: #10018)
  • Suggesters:
    • Ensure empty string completion inputs are not indexed #11158 (issue: #10987)
    • Ensure collate option in PhraseSuggester only collates on local shard #11156 (issue: #9377)
    • Make GeoContext mapping idempotent #10602 (issues: #10581, #8937)
    • Return an HTTP error code when a suggest request failed instead of 200 #10104
  • Term Vectors:
    • ShardTermVectorsService calls docFreq() on unpositioned TermsEnum #10660
  • Translog:
    • Acquire index writer lock before renaming translog file #11396
    • Fail #snapshot if translog is closed #10809 (issue: #10807)
  • Upgrade API:
    • Use the smallest version rather than the default version #11475 (issue: #11474)