See issues on GitHub

Release Notes

Breaking changes

  • Aliases:
    • Aliases: Throw exception if index is null or missing when creating an alias #8240 (issues: #7863, #7976)
  • Benchmark:
    • Benchmark api: removed leftovers #10180
    • Core:
      • Resiliency: Throw exception if the JVM will corrupt data #7580
    • Engine:
      • [ENGINE] Remove full flush / FlushType.NEW_WRITER #9559
    • Index APIs:
      • Change behaviour of indices segments api to allow no indices #9219 (issue: #5856)
    • Plugins:
      • Plugins: Don't overwrite plugin configuration when removing/upgrading plugins #7890 (issue: #5064)
    • Recovery:
      • Recovery: RecoveryState clean up #9811 (issue: #6644)
    • Scripting:
      • Scripting: cleanup ScriptService & friends in preparation for #6418 #9992 (issue: #6418)
      • Disable dynamic Groovy scripting by marking Groovy as not sandboxed [ISSUE] #9655
      • Scripting: Script with _score: remove dependency of DocLookup and scorer #7819 (issues: #7043, #7487)

    Deprecations

    • CRUD:
    • Core:
      • Core: deprecate index.fail_on_merge_failure #10084
    • Mapping:
      • Mappings: Deprecate _analyzer and per query analyzers #9383 (issue: #9279)
    • More Like This:
      • Deprecation: MLT Field Query #8253
    • Network:
      • Deprecated the thrift and memcached transports #10167 (issue: #10166)
    • Search:
      • Core: add deprecation messages for delete-by-query #10082

    New features

    • Aggregations:
      • New aggregations feature - “PercentageScore" heuristic for significant_terms #9747 (issue: #9720)
      • significant terms: add scriptable significance heuristic #7850
    • CAT API:
      • Cat API: show open and closed indices in _cat/indices #7936 (issue: #7907)
    • Circuit Breakers:
      • Circuit Breakers: Add NoopCircuitBreaker used in NoneCircuitBreakerService #8063
    • Engine:
      • Shadow replicas on shared filesystems #9727 (issue: #8976)
    • More Like This:
      • MLT Query: Support for artificial documents #7725
    • Query DSL:
      • Add time_zone setting for query_string #8164 (issue: #7880)
      • Search: add format support for date range filter and queries #7821 (issue: #7189)
      • Add min_score parameter to function score query to only match docs above this threshold #7814 (issue: #6952)
    • Search:
      • Add inner hits to nested and parent/child queries #8153 (issues: #3022, #3152)
    • Store:
    • Term Vectors:
      • Term Vectors/MLT Query: support for different analyzers than default at the field #7801

    Enhancements

    • Aggregations:
      • Aggregations: deprecate pre_zone and <code>post_zone in date_histogram #9722 (issue: #9062)
      • Aggregations: Add 'offset' option to date_histogram #9614 (issue: #9062)
      • Aggregations: Numeric metric aggregations are now formattable #9032 (issue: #6812)
      • Aggregations: Adds methods to get to/from as Strings for Range Aggs #9026 (issue: #9003)
      • Made the nested, <code>reverse_nested and children aggs ignore unmapped nested fields or unmapped child / parent types. #8808 (issue: #8760)
      • Fixed #6061 size parsing consistent for strings #8645
      • Aggregations: Do not take deleted documents into account in aggregations filters. #8540
      • Aggs - support for arrays of numeric values in include/exclude clauses #7727 (issue: #7714)
      • Aggregations: Adds ability to sort on multiple criteria #7662 (issues: #6917, #7588)
      • Aggregations: Properly support top_hits aggregation in a nested and reverse_nested aggregations. #7164 (issue: #3022)
    • Allocation:
      • Allocation: Speed-up disk-threshold decider #8803 (issue: #6372)
      • Allocation: DiskThresholdDecider#remain(...) should take shards relocating away into account #8659 (issue: #8538)
      • Allocation: Take percentage watermarks into account for reroute listener #8382 (issues: #8367, #8368)
      • Allocation: Reroute shards automatically when high disk watermark is exceeded #8270 (issue: #8146)
      • Add option to take currently relocating shards' sizes into account #7785 (issues: #6168, #7753)
    • CAT API:
      • Mark shadow replicas with 's' in _cat/shards output #10023 (issue: #9772)
      • Admin: add total index memory in _cat/indices #7824 (issue: #7008)
      • Add file descriptor details to cat/nodes #7655 (issue: #7652)
    • Circuit Breakers:
      • Circuit Breakers: Log if CircuitBreaker is tripping #8050
    • Core:
      • Core: don't rethrow already handled merge exceptions #10083
      • [ENV] NodeEnv should lock all shards for an index #9799
      • [CORE] Allow primary promotion on shadow replica without failing the shard #9786
      • [INDICES] Retry if shard deletes fail due to IOExceptions #9784
      • Core: only do a single listAll from FileSwitchDir #9666 (issue: #6636)
      • Core: Remove ability to run optimize and upgrade async #9640 (issue: #9638)
      • Update joda-time to v2.7 #9610
      • [CORE] Consolidate index / shard deletion in IndicesService #9605
      • Minor hygiene, Removed Redundant inheritance #9427
      • Core: don't throttle recovery indexing operations #9396 (issue: #9394)
      • Core: increase default xlog flush size from 200mb to 512 mb #9341 (issue: #9265)
      • Pass through all exceptions in IndicesLifecycleListeners #9330
      • Pass index settings to IndicesLifecycle#beforeIndexCreated and #afterIndexShardClosed #9245
      • Core: Fix Store.checkIntegrity() for lucene 3.x index files. #9234
      • Core: Don't verify adler32 for lucene 3.x terms dict/terms index. #9142
      • [CORE] Delete shard content under lock #9083 (issues: #8608, #9009)
      • [SEARCH] close active contexts on SearchService#close() #8947 (issue: #8940)
      • Core: use Lucene's defaults for compound file format #8934 (issue: #8919)
      • [CORE] Remove explicit .cleanUp() on cache clear #8924
      • Core: clarify index removal log message #8641
      • [CORE] Ensure shards are deleted under lock on close #8579
      • [INDEX] Add before/after indexDeleted callbacks to IndicesLifecycle #8569 (issue: #8551)
      • [CORE] Free pending search contexts if index is closed #8551
      • [CORE] Ban all usage of Future#cancel(true) #8494
      • Core: set bloom default to false even when Directory doesn't have a codecService #8442
      • [CORE] Introduce shard level locks to prevent concurrent shard modifications #8436
      • Discovery: Don't wait joinThread when stopping #8359 (issue: #8327)
      • [STATE] Observe cluster state on health request #8350
      • [UTILITIES] Introduce a RefCounted interface and basic impl #8210
      • Use 1 instead of 0 as filler version value for nested docs #8145
      • [CORE] Add cluster and index state checksums #8010 (issue: #7586)
      • Resiliency: Perform write consistency check just before writing on the primary shard #7873
      • [CORE] Add ThreadPool.terminate to streamline shutdown #7868
      • [CORE] Add ActionRunnable support to ThreadPool to simplify async operation on bounded threadpools #7765
      • Internal: Add missing cluster blocks handling for master operations #7763 (issue: #7740)
    • Discovery:
      • [Discovery] Prevent stale master nodes from sharing dated cluster states to nodes that have moved to a different master node #9632
      • Discovery: publishing timeout to log at WARN and indicate pending nodes #9551
      • Discovery: Concurrent node failures can cause unneeded cluster state publishing #8933 (issue: #8804)
      • [CLIENT] Only fetch the node info during node sampling #8685
      • Discovery: don't accept a dynamic update to min_master_nodes which s larger then current master node count #8321
      • Discovery: Improve handling of multicast binding exceptions #8243 (issue: #8225)
      • Discovery: Simplify discovery node initialization if version is unknown #8055 (issue: #8051)
      • Discovery: Close ping handler's executor service properly #7903
    • Engine:
      • [CORE] move InternalEngine.segmentStats() into abstract Engine #9728 (issue: #9727)
      • [ENGINE] Move more methods into abstract Engine #9717
      • [CORE] Move as much as possible into abstract Engine #9678
      • [ENGINE] Factor out settings updates from Engine #9625
      • [ENGINE] Close Engine immediately if a tragic event strikes. #9616 (issue: #9517)
      • [CORE] Refactor InternalEngine into abstract Engine and classes #9585
      • [ENGINE] Remove FlushType and make resources final in InternalEngine #9565
      • [ENGINE] Simplify Engine construction and ref counting #9211
      • [CORE] Fold engine into IndexShard #9181
      • Core: Don't acquire Engine's readLock in segmentsStats #8910 (issue: #8905)
      • [ENGINE] Remove engine related command classes #8900
      • Internal: allow InternalEngine to be stopped and started #8784 (issue: #8720)
      • [ENGINE] Flush IndexWriter to disk on close and shutdown #7563
    • Geo:
      • Revert "[GEO] Update GeoPolygonFilter to handle ambiguous polygons" #9463 (issues: #5968, #9304, #9339, #9462)
      • Geo: Update GeoPolygonFilter to handle polygons crossing the dateline #9339 (issues: #5968, #8672, #9304)
      • Geo: GeoPolygonFilter not properly handling dateline and pole crossing #9171 (issue: #5968)
      • Geo: Removing unnecessary orientation enumerators #9036 (issues: #8978, #9035)
      • Geo: Add optional left/right parameter to GeoJSON #8978 (issue: #8764)
      • Geo: Feature/Fix for OGC compliant polygons failing with ambiguity #8762 (issue: #8672)
      • Geo: Fixes BoundingBox across complete longitudinal range #7340 (issue: #5218)
    • Index Templates:
      • Provide template usage information on index creation #8646 (issue: #7421)
    • Internal:
      • Core: fix typo when primary is not available to index a document (UnavailableShardsException) #10140
      • [SHARD] make assert less strict to ensure local node is not null #10076
      • Use provided cluster state for indices service validations #10014
      • some more simple fs cleanups. #9827
      • Removed 'Master' from names.txt #9698 (issue: #9687)
      • Internal: Introduce TimedPrioritizedRunnable base class to all commands that go into InternalClusterService.updateTasksExecutor #9671 (issues: #8077, #9354)
      • Update Groovy dependency to 2.4.0 #9520
      • Add beforeIndexAddedToCluster callback #9514
      • [CACHE] Use a smaller expected size when serializing query results #9485
      • [CACHE] Use correct number of bytes in query cache accounting #9479
      • Internal: add AliasesRequest interface to mark requests that manage aliases #9460
      • Internal: ClusterInfoService should wipe local cache upon unknown exceptions #9449
      • Internal: fix shard state tranport action names #9440 (issue: #7105)
      • Mappings: Remove includeExisting flag from adding ObjectMapper and FieldMapper listeners #9184
      • Internal: assert that we do not call blocking code from transport threads #9164
      • [EXEC] Remove reduced stack size #9158 (issue: #9135)
      • Search: parse terms filters on a single term as a term filter. #9014
      • Internal: remove IndexCloseListener & Store.OnCloseListener #9009 (issues: #8436, #8608)
      • Core: add ignore_idle_threads (default: true) to hot threads #8985 (issue: #8908)
      • Remove circular dependency between IndicesService and IndicesStore #8918
      • Remove some Internal* abstractions #8904
      • [HEALTH] Don't mark health as timed out if desired state is reached #8683
      • Internal: Use a 1024 byte minimum weight for filter cache entries #8304 (issues: #8249, #8268)
      • Immediately remove filter cache entries on cache clear #8289 (issue: #8285)
      • Internal: Make indexQueryParserService available from ParseContext #8252 (issue: #8248)
      • Internal: Allow to configure custom thread pools #8247
      • Internal: Expose concurrency_level setting on all caches #8112 (issue: #7836)
      • Resiliency: Be more conservative if index.version.created is not set #8018
      • Internal: split internal fetch request used within scroll and search #7870 (issues: #6933, #7319, #7856)
      • Internal: split internal free context request used after scroll and search #7856 (issues: #6933, #7319)
      • Internal: Clarify when a shard search request gets created to be only used locally #7855
      • Internal: Add a listener thread pool #7837
      • Internal: remove ForceSyncDirectory #7804
      • Internal: Check if from + size don't cause overflow and fail with a better error #7778 (issue: #7774)
      • Internal: make sure that internally generated percolate request re-uses the original headers and request context #7767
      • Internal: make sure that update internal requests share the same original headers and request context #7766
      • Internal: Nest original exception while creating NoShardAvailableActionException #7757 (issue: #7756)
      • Internal: make sure that all delete mapping internal requests share the same original headers and context #7736
      • Internal: make sure that original headers are used when executing search as part of put warmer #7711
    • Java API:
      • Java API: package private getters to become public if there have corresponding public setters #9273
      • java: QueryBuilders cleanup (add and deprecate) #8667
      • Added utility method #8594
      • Java API: Enabled overriding the request headers in the clients #8258
      • Internal: add indices setter to IndicesRequest interface #7734
    • Logging:
      • Store: renaming temp files should log errors of delete in trace #9933
      • Fix logging a RoutingNode object, log an object with a good .toString instead #9863
      • Logging: improve logging messages added in #9562 #9603
      • Logging: add logging around gateway shard allocation #9562
      • Logging: Log byte and doc size for slow merges #8855 (issue: #8853)
      • Core: separately log file deletions #8662 (issue: #8603)
      • Logging: Add log4j-extras dependency #8464 (issue: #7927)
      • Core: log how long IW.rollback took, and when MockFSDir starts its check index #8388
      • Logs: Change log level for mpercolate #8306
      • Logging: suppress long mapping logging during mapping updates (unless in TRACE) #7949
      • Add log4j-extras dependency #7947 (issue: #7927)
      • Core: Add EnhancedPatternLayout to logging.yml options #4991
    • Mapping:
      • Mappings: Add enabled flag for _field_names to replace disabling through index=no #9893
      • [Mapper] Add ignore_missing option to <code>timestamp #9104 (issues: #8882, #9049)
      • Mapping: Include currentFieldName into ObjectMapper errors #9020
      • Mappings: Make lookup structures immutable. #7486
    • More Like This:
      • MLT Query: Support for when all fields are deprecated #8067
      • MLT Query: use minimum should match more extensive syntax #7898
    • NOT CLASSIFIED:
      • [LIFECYCLE] Add before/afterIndexShardDelete callback #10173
    • Network:
      • Netty HTTP Transport: Change access modifiers to protected #9724
      • Transport: added a simple request tracer, logging incoming and outgoing requests #9286
      • Netty Transport: Add profiles to transport infos #9134
      • Netty: Support binding on multiple host/port pair #8098
      • Internal: Chunk direct buffer usage by networking layer #7811
      • Netty: Make sure channel closing never happens on i/o thread #7726
    • Packaging:
      • Windows: makes elasticsearch.bat more friendly to automated processes #9160 (issue: #8913)
      • Shutdown: Add support for Ctrl-Close event on Windows platforms to grace... #8993
      • Packaging: Add java7/8 java-package paths to init script #8815 (issue: #7383)
      • Packaging: Check if proc file exists before calling sysctl #8793 (issue: #4978)
      • deb: add systemd service config for upcoming Jessie #8765 (issue: #8493)
      • bin/elasticsearch: add help, fix endless loop #8729 (issues: #2168, #7104)
      • Packaging: Introduce elasticsearch.in.bat (i.e. es.in for Windows) #8244 (issue: #8237)
      • add more checks to build_release.py #7913
      • Prevent init script from returning when the service isn't actually started #6909
      • Boostrap: Log startup exception to console if needed and to file as error #6581
      • Packaging: Use the new command line syntax in the init script #5033
      • Startup: Add ES_HOME to ES_INCLUDE search path #4958
    • Parent/Child:
      • Parent/child: Reduce memory usage in top children query #8165
    • Percolator:
      • Introduce index option named 'index.percolator.map_unmapped_fields_as_string' #9054 (issues: #9025, #9053)
    • Plugins:
      • [PLUGINS] Always send current ES version when downloading plugins #10131
    • Query DSL:
      • Add support for minimum_should_match to <code>simple_query_string #9864 (issue: #6449)
      • inner hits: Nested parent field should be resolved based on the parent inner hit definition #9251 (issue: #8153)
      • Raise an exception on an array of values being sent as the factor for a ... #9246 (issue: #7408)
      • inner_hits: Added another more compact syntax for inner hits. #8770
      • function_score: use query and filter together #8675 (issue: #8638)
      • Query: add option for analyzing wildcard/prefix to simple_query_strinq #8422 (issue: #787)
      • Query DSL: Expose max_determinized_states in regexp query, filter #8384 (issue: #8357)
      • FunctionScore: RandomScoreFunction now accepts long, as well a strings. #8311 (issue: #8267)
      • Be stricter parsing ids for ids query #7945 (issue: #7686)
      • Adding "min" score mode to parent-child queries #7771 (issue: #7603)
      • Query DSL: Throw parsing exception if terms filter or query has more than one field #5137 (issue: #5014)
      • Query DSL: Expose dist/pre/post options for SpanNotQuery #4452
    • REST:
      • [HTTP] add option to only return simple exception messages #10117
      • Rest: expose master_timeout flag on <code>GET _template & HEAD _template #9688
      • Rest: Adding support of multi-index query parameters for _cluster/state #9295 (issue: #5229)
      • Adds parameters to API endpoint cluster put settings specification #8769
      • Change IndexPrimaryShardNotAllocatedException from 409 to 500 #7987 (issue: #7632)
      • Percolator: Added missing percolate API parameters to the rest spec #7173
    • Recovery:
      • Recovery: add throttle stats #10097
      • Engine: update index buffer size during recovery and allow configuring version map size #10046 (issues: #6363, #6667)
      • Recovery: unify RecoveryState management to IndexShard and clean up semantics #9902 (issue: #9503)
      • [RECOVERY] Only iterate the files that we recovered from the commit #9761
      • Recovery: add a timeout to local mapping change check #9575
      • Recovery: flush immediately after a remote recovery finishes (unless there are ongoing ones) #9439
      • [RECOVERY] Release store lock before blocking on mapping updates #9102
      • [RECOVERY] Ensure shards are identical after recovery #8723
      • Recovery: be more resilient to partial network partitions #8720
      • [RECOVERY] Throw IndexShardClosedException if shard is closed #8648
      • Backport ShardRecoveryHandlerrefactorings to 1.x #8570
      • Recovery: refactor RecoveryTarget state management #8092 (issues: #7315, #7893)
    • Scripting:
      • Scripting: Add String to the default whitelisted receivers #9837 (issue: #8866)
      • Scripting: Make script.groovy.sandbox.method_blacklist_patch truly append-only #9473
      • Scripting: Make groovy sandbox method blacklist dynamically additive #9470
      • Scripting: Add explainable script again #8665 (issues: #7245, #8561)
      • Scripting: Created a parameter parser to standardise script options #7977
      • Provide more context variables in update scripts #5724 (issues: #1607, #2230, #2231)
    • Search:
      • Added nested scope to parse context that keeps track the current nested level during search request parsing #9692 (issue: #9305)
      • Search: Reduce memory usage during fetch source sub phase #8138
      • Internal: Don't let took be negative. #7968
      • Core: switch to Lucene QueryRescorer #7707 (issue: #6232)
    • Settings:
      • Add 'http.publish_port' setting to the HTTP module #8807 (issue: #8137)
      • Settings: Validates bool values in yaml for node settings #8186 (issue: #8097)
    • Snapshot/Restore:
      • [RESTORE] Refactor how restore cleans up files after snapshot was restored #9770
      • Snapshot/Restore: add support for changing index settings during restore... #9285 (issue: #7887)
      • Snapshot/Restore: Override write(byte[] b, int off, int len) in FilterOutputStream for better performance #8749 (issue: #8748)
      • Snapshot/Restore: Allow custom metadata to specify whether or not it sho... #7901 (issue: #7900)
    • Stats:
      • Recovery: add total operations to the _recovery API #10042 (issue: #9368)
      • API: add pending tasks count to cluster health #9877
      • Stats : Add time in index throttle to stats. #7896 (issue: #7861)
    • Store:
      • [INDICES] Schedule pending delete if index store delete fails #9856
      • [STORE] Improve safety when deleting files from the store #9801
      • [STORE] Add simple cache for StoreStats #9709 (issue: #9683)
      • [STORE] use Directory#fileLength() less during calculating checksums #9689
      • [STORE] Cache fileLength for fully written files #9683
      • [STORE] Synchronize operations that modify file mappings on DistributorDirectory #8408
      • [STORE] Cut over MetaDataStateFormat to NIO Path API #8297
      • [STORE] Remove special file handling from DistributorDirecotry #8276
      • [STORE] Fold two hashFile implemenation into one #7720
    • Term Vectors:
      • Term Vectors: requests are now timed #9583
      • Term Vectors: support for realtime #7846
    • Translog:
      • [CORE] Handle truncated translog gracefully #9797 (issue: #9699)
      • Internal: Write translog opSize twice #7735
    • Upgrade:
      • Core: upgrade to Lucene 4.10.4 bugfix release #9960
      • Internal: Log when upgrade starts and stops #9229 (issue: #9227)
      • Dependencies: Upgrade netty to 3.10.0.Final #9132
      • upgrade to lucene 4.10.3 release #9100
      • Internal: Upgrade to Jackson 2.4.2 #7934 (issue: #7932)
      • Internal: Upgrade to Lucene 4.10.1 snapshot #7844 (issue: #7905)

    Bug fixes

    • Aggregations:
      • Aggregations: Be lenient when converting local to utc time in time zone roundings #10031 (issue: #10025)
      • Aggs: Fix rounding issue using date_histogram with <code>pre_zone_adjust_large_interval #9828 (issue: #8209)
      • Aggs: Fix rounding issues when using date_histogram and time zones #9790 (issues: #7673, #9491)
      • Aggregations: Prevent negative intervals in date_histogram #9690 (issue: #9634)
      • Aggs: Remove limitation on field access within aggs to the types provided in the search #9487
      • Aggs: nested agg needs to reset root doc between segments. #9441 (issues: #9436, #9437)
      • Aggs: Fix handling of multiple buckets being emitted for the same parent doc id in nested aggregation #9346 (issues: #8454, #9317)
      • Aggs: In reverse nested aggregation, fix handling of the same child doc id being processed multiple times. #9345 (issues: #9263, #9346)
      • Aggs: The parent filter of the nested aggregator isn't resolved correctly all the time #9335 (issue: #9280)
      • Aggs: post collection the children agg should also invoke that phase on its wrapped child aggs. #9291 (issue: #9271)
      • Aggs: Validate the aggregation order on unmapped terms in terms agg. #8952 (issue: #8946)
      • Aggregations: Fix date_histogram issues during a timezone DST switch #8655 (issue: #8339)
      • Fielddata: Fix iterator over global ordinals. #8627 (issue: #8580)
      • Aggregations: Fix geohash grid doc counts computation on multi-valued fields #8574 (issue: #8512)
      • Aggregations: Parser throws NullPointerException when Filter aggregation clause is empty #8527 (issue: #8438)
      • Aggregations: Fix geohash grid aggregation on multi-valued fields. #8513 (issue: #8507)
      • Aggregations: Change nested agg to execute in doc id order #8454
      • Aggregations: The children agg didn't take deleted document into account #8180
      • Aggregations: Fixes scripted metrics aggregation when used as a sub aggregation #8037 (issue: #8036)
      • Aggregations: Makes script params consistent with other APIs in scripted_metric #7969
      • Aggregations: Significant terms can throw error on index with deleted docs. #7960 (issue: #7951)
      • Aggregations: size property parsing inconsistent [ISSUE] #6061
    • Aliases:
      • Aliases: Take into account _default_ mapping in index template when parsing alias filter in index templates. #8577 (issue: #8473)
    • Allocation:
      • Allocation: Weight deltas must be absolute deltas #9149 (issue: #9023)
      • Allocation: Fix handling of dangling_timeout set to 0 and <code>auto_import_dangled true #8257
      • Allocation: Enable ClusterInfoService by default #8206
    • Bulk:
      • Bulk API: Handle failed request when auto create index is disabled #8163 (issue: #8125)
      • Bulk API: Bulk operation can create duplicates on primary relocation #7729
    • CAT API:
      • Stats: Fix NPE in /_cat/nodes #7815 (issue: #6297)
    • Circuit Breakers:
      • Circuit Breaker: Only set breaker when stats are retrieved #7721
    • Core:
      • Core: also throttle delete by query when merges fall behind #9986
      • Internal: promptly cleanup updateTask timeout handler #9621
      • Core: Disable auto gen id optimization #9468 (issue: #8788)
      • Core: Verify the index state of concrete indices after alias resolution #9057
      • Core: ignore_unavailable shouldn't ignore closed indices #9047 (issue: #7153)
      • Core: Terms filter lookup caching should cache values, not filters. #9027 (issues: #1, #2)
      • Core: Don't forcefully release IW lock (this can cause corruption) #8892 (issue: #8588)
      • Core: Hard wire utf-8 encoding, so unicode filenames work #8847
      • Gateway: GatewayService should register cluster state listener before checking for current state #8789
      • Core: Remove unnecessary index removal on index creation #8639
      • [GATEWAY] Remove _state directory if index has been deleted #8610
      • disable bloom filters #8572 (issues: #8564, #8571)
      • Core: Change default eager loading behaviour for nested fields and parent/child in bitset cache #8440
      • Core: Don't eagerly load NestedDocsFilter in bitset filter cache, because it is never used. #8414 (issue: #8394)
      • Internal: Extend refresh-mapping logic to the _default_ type #8413 (issue: #4760)
      • Internal: Translog leaks filehandles if it's corrupted or truncated #8372
      • Return 0 instead of -1 for unknown/non-exposed ramBytesUsed() #8291 (issue: #8239)
      • Resiliency: Don't catch FNF/NSF exception when reading metadata #8207
      • Internal: Don't handle FNF exceptions when reading snapshot #8086
    • Dates:
      • DateMath: Use time zone when rounding. #9885 (issue: #9814)
      • Query DSL: Resolve now in date ranges in percolator and alias filters at search time instead of parse time #8534 (issue: #8474)
    • Discovery:
      • Zen: Node receiving a cluster state with a wrong master node should reject and throw an error #9963
      • Discovery: check index uuid when merging incoming cluster state into the local one #9541 (issue: #9489)
      • Discovery: only retry join when other node is not (yet) a master #8979 (issue: #8972)
      • Discovery: Removed unnecessary DiscoveryService reference from LocalDiscovery #8415 (issue: #8539)
      • Discovery: Improve the lifecycle management of the join control thread in zen discovery. #8327
    • Engine:
      • [ENGINE] Upgrade 3.x segments on engine startup #9899
      • Core: SerialMergeScheduler never triggers index throttling #8405
      • Internal: Add current translog ID to commit meta before closing #8245
    • Geo:
      • [GEO] Fix validate_* merge policy for GeoPointFieldMapper [OPEN] #10165 (issue: #10164)
      • Geo: Correct bounding box logic for GeometryCollection type #9550 (issue: #9360)
      • Geo: Throw helpful exception for Polygons with holes outside of shell #9105 (issue: #9071)
      • Geo: GIS envelope validation #9091 (issues: #2544, #8672, #9067, #9079, #9080)
      • Geo: Fix for NPE enclosed in SearchParseException for a "geo_shape" filter or query #8785 (issue: #8432)
      • Geo: Fix for geohash neighbors when geohash length is even. #8529 (issue: #8526)
      • Geo: Fix for ArithmeticException[/ by zero] when parsing a polygon #8475 (issue: #8433)
      • geo sort: remove unnecessary code from geo distance builder #8338
      • Geo: Fix IndexedGeoBoundingBoxFilter to not modify the bits of other filters. #8325
    • Index APIs:
      • Indices API: Fix to make GET Index API consistent with docs #9178 (issue: #9148)
      • Indices API: Fixed backward compatibility issue #8387 (issue: #8364)
      • Internal: Fix optimize behavior with 'force' and 'flush' flags. #7920 (issues: #7886, #7904)
      • Indices API: fixes GET Alias API backwards compatibility #7892 (issue: #7793)
    • Indexed Scripts/Templates:
      • Scripting: ScriptService can deadlock entire nodes if script index is recovering #8901
      • Indexed Scripts/Templates: GetIndexedScript call can deadlock #8266
      • Make template params take arrays #8255
      • Indexed Scripts/Templates: Cleaned up various issues #7787 (issues: #7559, #7560, #7567, #7568, #7647)
    • Internal:
      • Internal: Fix PageCacheRecycler's max page size computation. #10087 (issue: #10077)
      • Ensure that we don't pass negative timeInQueue to writeVLong #9662 (issue: #8077)
      • Snapshot status api: make sure headers are handed over to inner nodes request #9409
      • fix equality check of timevalue after serialization #9218
      • Internal: AdapterActionFuture should not set currentThread().interrupt() #9141 (issue: #9001)
      • Internal: PlainTransportFuture should not set currentThread().interrupt() #9001
      • Internal: IndexService - synchronize close to prevent race condition with shard creation #8557
      • Index API: BWC layer for GetIndex should not block in a listener #8496
      • Internal: Don't pass acceptdocs down to nonNestedDocsFilter in ParentsFilter #8463 (issue: #8461)
      • Indices API: Fix GET index API always running all features #8452
      • Internal: When corruption strikes, don't create exceptions with circular references #8331
      • Internal: Fixed bitset filter cache leftover in nested filter #8303
      • Internal: Cleanup non nested filter to not flip the FixedBitSet returned by the wrapped filter. #8232 (issue: #8227)
      • Internal: Dynamic changes to max_merge_count are now picked up by index throttling #8136 (issue: #8132)
      • Internal: Only schedule another refresh if refresh_interval is positive #8087 (issue: #8085)
      • Internal: Fix serialization of PendingClusterTask.timeInQueue. #8077
      • Internal: dangling indices import ignores aliases #8059
      • Fix serialization of short[] arays. #8025 (issue: #7845)
      • Internal: Make close() synchronized during node shutdown #7885
    • Java API:
      • Mappings: Fix Get field mapping api with pretty flag #8806 (issue: #6552)
      • Settings: Ensure fields are overriden and not merged when using arrays #8381 (issue: #6887)
      • Fixing SearchRequestBuilder aggregations call to facets #8121 (issue: #8120)
      • Fixing copy/paste mistake in SearchRequest.extraSource's exception message #8118 (issue: #8117)
      • Aggregations: Added missing module registration in TransportClient for Significant Terms #7852 (issue: #7840)
    • Logging:
      • [STORE] Add filename to corruption message #10110 (issue: #10062)
      • Transport: fix potential NPE in new tracer log if request timeout #9994 (issue: #9286)
      • Fix example in logging daily rotate configuration #8550 (issue: #8464)
      • Internal: Fix location information for loggers #8052 (issue: #5130)
    • Mapping:
      • Fixes ignore_malformed behaviour for ip fields #10112
      • Mapping: Throw StrictDynamicMappingException exception #9445 (issue: #9444)
      • Mapping: Using default=null for _timestamp field creates a index loss on restart #9233 (issues: #9104, #9223)
      • Mapping: Reencode transformed result with same xcontent #8974 (issue: #8959)
      • Mapping: serialize doc values settings for _timestamp #8967 (issue: #8893)
      • mappings: update cluster state with type mapping also for failed indexin... #8692 (issue: #8650)
      • Mapping: Fix conflict when updating mapping with _all disabled #8426 (issues: #7377, #8423)
      • Mappings: Generate dynamic mappings for empty strings. #8329 (issue: #8198)
      • Mapping: Throw exception if null_value is set to null #7978 (issue: #7273)
      • Mapping: Posting a mapping with default analyzer fails #7902 (issue: #2716)
    • More Like This:
      • MLT Query: Fix exclude with artificial documents #8679
    • Network:
      • Netty: Add HTTP pipelining support #8299 (issue: #2665)
    • Packaging:
      • Packaging: Add antlr and asm dependencies #9696
      • Packaging: Added quotes to allow spaces in installation path #8428 (issue: #8441)
      • Packaging: Move forbidden api signature files to dev-tools. #7921 (issue: #7917)
      • Packaging: Export JAVA_HOME in RPM init script #5434
    • Parent/Child:
      • Parent/child: Fix concurrency issues of the _parent field data. #9030 (issue: #8396)
      • Parent/child: Fixed p/c filters not being able to be used in alias filters. #8649 (issues: #5916, #8628)
      • Bulk API: Missing parent routing causes NullPointerException #8506 (issue: #8365)
      • Parent/child: has_parent filter must take parent filter into account when executing the inner query/filter #8020 (issue: #7362)
    • Percolator:
      • Percolator: Support encoded body as query string param consistently #9628
      • Percolator: Take filters from aliases into account #9590 (issue: #6241)
      • Percolator: Fixed bug when using multi percolate api with routing #9161 (issue: #6214)
    • Plugins:
      • Plugins: Installation failed when directories are on different file systems #9011 (issue: #8999)
      • Plugins: NPE when plugins dir is inaccessible #8839 (issue: #8837)
      • Plugins: Support usage of ES_JAVA_OPTS in plugin commands #8288
      • PluginManager: Fix config path extraction from plugin handle #7935
    • Query DSL:
      • Query DSL: Fix wrong error messages in MultiMatchQueryParser #8597
      • DateMath: Fix semantics of rounding with inclusive/exclusive ranges. #8556 (issue: #8424)
      • Query DSL: Fix NumberFormatException in Simple Query String Query #7876 (issue: #7875)
    • REST:
      • REST: Add fielddata_fields to the REST spec #9399 (issues: #4492, #9398)
      • Search: Passing fieddata_fields as a non array causes OOM #8203
    • Recovery:
      • Gateway: improve assertion at the end of shard recovery #10028
      • Recovery: synchronize RecoveryState.timer methods #9943
      • [RECOVERY] Don't recover from buggy version #9925 (issues: #7210, #9922)
      • Engine: close snapshots before recovery counter #9760 (issue: #9439)
      • [ENGINE] Fix deadlock problems when API flush and finish recovery happens concurrently #9648
      • [RECOVERY] Handle corruptions during recovery finalization #9619
      • Core: Mapping update task back references already closed index shard #9607
      • Recovery: update access time of ongoing recoveries #9506 (issue: #8720)
      • Recovery: cleaner interrupt handling during cancellation #9000
      • Internal: harden recovery for old segments #8399
      • Gateway: Prefer recovering the state file that uses the latest format. #8343
      • Recovery: change check for finished to a ref count check #8271 (issue: #8092)
      • Recovery: RecoveriesCollection.findRecoveryByShard should call recoveryStatus.tryIncRef before accessing fields #8231 (issue: #8092)
    • Scripting:
      • Scripting: File scripts cache key to include language and prevent conflicts #10033
      • script_file does not work with _update [ISSUE] #10007
      • Internal: Avoid unnecessary utf8 conversion when creating ScriptDocValues for a string field. #9557 (issue: #6908)
      • Scripting: Disallow method pointer expressions in Groovy scripting #9509
      • Scripting: Make _score in groovy scripts comparable #9094 (issue: #8828)
      • Search: Function score and optional weight : avg score is wrong #9004 (issue: #8992)
      • Scripting: Return new lists on calls to getValues. #8591 (issue: #8576)
      • Scripting: Add score() back to AbstractSearchScript #8417 (issues: #8377, #8416)
      • Scripting: Clear the GroovyClassLoader cache before compiling #8062 (issues: #7658, #8073)
      • Scripting: Fix NPE in ScriptService when script file with no extension is deleted #7953 (issue: #7689)
    • Search:
      • inner hits: Don't fail if an object is specified as a nested value instead of an array. #9743 (issue: #9723)
      • Query cache: Remove query-cache serialization optimization. #9500 (issue: #9294)
      • inner_hits: Make sure inner hits on has_parent query resolve hits properly #9384
      • Query cache: Queries are never cached when date math expressions are used (including exact dates) #9269 (issue: #9225)
      • Search: Make sure that named filters/ queries defined in a wrapped query/filters aren't lost #9166 (issue: #6871)
      • Search: Fix paging on strings sorted in ascending order. #9157 (issue: #9136)
      • Refactor term analysis for simple_query_string prefix queries #8435
    • Settings:
      • Settings: Reset TieredMP settings only if the value actually changed #9497 (issue: #8890)
      • Settings: cluster.routing.allocation.disk.threshold_enabled accepts wrong values [ISSUE] #9309
      • Settings: Tab characters in YAML should throw an exception #8355 (issue: #8259)
      • Settings: LogConfigurator resolveConfig also reads .rpmnew or .bak files #7457
    • Snapshot/Restore:
      • Snapshot/Restore: delete operation should ignore finalizing shards on no... #9981 (issue: #9924)
      • Snapshot/Restore: Allow deletion of snapshots with corrupted snapshot files #9569 (issue: #9534)
      • Snapshot/Restore: better handling of index deletion during snapshot #9418 (issue: #9024)
      • Snapshot/Restore: add validation of restored persistent settings #9051 (issue: #8830)
      • Snapshot/Restore: restore with wait_for_completion=true should wait for succesfully restored shards to get started #8545 (issue: #8340)
      • Snapshot/Restore: keep the last legacy checksums file at the end of rest... #8358 (issue: #8119)
      • Snapshot/Restore: restore of indices that are only partially available i... #8341 (issue: #8224)
      • Snapshot/Restore: Fix snapshotting of a single closed index #8047 (issue: #8046)
      • Snapshot/Restore: Make it possible to delete snapshots with missing metadata file #7981 (issue: #7980)
      • Snapshot/Restore: Make sure indices cannot be renamed into restored aliases #7918 (issue: #7915)
    • Stats:
      • Translog: make sure stats's op count and size are in sync #10041
      • Nodes Stats: Fix open file descriptors count on Windows #9397 (issue: #1563)
      • Stats: Relax restrictions on filesystem size reporting in DiskUsage #9283 (issues: #9249, #9260)
      • Indices API: Fix wrong search stats groups #8950 (issue: #7644)
      • Stats: Fix Bloom filter ram usage calculation #8584 (issue: #8564)
      • Stats: _status with #shards >> queue capacity failing with BroadcastShardOperationFailedException [ISSUE] #7916
    • Store:
      • Internal: only ack index store deletion on data nodes #9672 (issue: #9605)
      • [Store] Only fail recovery if files are inconsistent #8779
      • Store: Use Lucene checksums if segment version is >= 4.9.0 #8599 (issue: #8587)
      • Store: Calculate Alder32 Checksums for legacy files in Store#checkIntegrity #8407
    • Suggesters:
      • return an HTTP error code when a suggest request failed instead of 200 #10104
      • Completion Suggester: Fix CompletionFieldMapper to correctly parse weight #8197 (issue: #8090)
    • Translog:
      • Translog: stats fail to serialize size #10105
      • [GATEWAY] copy translog file if rename fails after retries. #9980
      • Translog: Never delete translog file from a snapshot #8917
    • Tribe Node:
      • Tribe node: system properties and configuration settings must not be forwarded to tribe clients #9721 (issue: #9576)
      • Tribe node: remove closed indices from cluster state #9334
    • Upgrade:
      • Upgrade: Fix version check in bytes to upgrade that spans major versions #9340

    Regression

    • Mapping:
      • Mapping: Mapping With a null Default Timestamp Causes NullPointerException on Merge #9205 (issue: #9204)

    Docs

    • Geo:
      • [GEO] fix docs for geo_point "validate" option [OPEN] #10168 (issue: #9539)
    • Java API:
      • A getHits() was forgotten! #9320
      • [Doc] Java API: add search templates #8716 (issue: #7321)
      • Docs: Add java documentation for aggregations #8694
    • NOT CLASSIFIED:
      • Need additional line in config file, to work tutorial's example. [ISSUE] #10074
      • fix typo #10045
      • Fix some docs n typos #10029
      • Documented default value for node_initial_primaries_recoveries #9955
      • [DOCS] added a note for the default shard_size value #9873
      • [DOCS] Default units for Geo Distance Agg is meters not km [ISSUE] #9812
      • [doc] Link mapper-attachment type documentation to its repo #9756 (issue: #101)
      • Clarify no master block [ISSUE] #9739
      • Add warning to settings documentation because setting number_of_replicas on a closed can lead to index beeing not openable again #9591 (issue: #9566)
      • Docs: Use the new experimental annotation. #9563
      • Testing classes don't support Parameterized tests? [ISSUE] #9423
      • Updates the command to add the repo #9261
      • Fix typo in sample json of keyword marker tokenfilter #9253
      • [TEST] Add missing docs and tests for '_cat/segments' #9179 (issue: #5856)
      • [Doc] Java API: add information on JBoss EAP #8766 (issue: #3445)
      • [DOCS] Document ActionNames class and related tests #8759
      • Fix error in documentation #8605
      • Update DiskThresholdDecider javadoc #8585 (issue: #6201)
      • Docs: Fix a typo in a javadoc comment #8575
      • Missing quote in the example #8565
      • randomizedtesting jar versions mismatch [ISSUE] #8450
      • Docs: note about confusing disk threshold settings #8437
      • Docs: document action.replication_type setting #8290
      • MLT Query: use ParseField#withAllDeprecated for percent_terms_to_match #8241
      • Docs: Clarify that index.routing.allocation.total_shards_per_node applies to replica and primary #8002
      • Docs: rolling upgrade process seems incorrect [ISSUE] #7973
      • null_value and dynamic_templates not working correctly [ISSUE] #7874
      • Docs : Filtering based on exact values not working [ISSUE] #7807
      • Docs: Document the most important changes to zen discovery. #7746
      • Inconsistent ceiling round up in range search for "lt" (less than) [ISSUE] #7203
    • Packaging:
      • Packaging: Added a command to start elasticsearch on bootup. #8600

    Tests

    • Aggregations:
      • Adding tests for TimezoneRounding in 1.x #9796
    • NOT CLASSIFIED:
      • [TEST] Add tests that triggers truncated files on recovery #10155
      • [TESTS] Make sure test end with ..Tests #9947 (issue: #9945)
      • [TEST] Work around URI encode limitations in RestClient #9946 (issue: #9769)
      • Tests: Add back tests.cluster #9916
      • [TEST] Fix NPE in ElasticsearchIntegrationTest if no indexer is provided #9909 (issue: #9907)
      • Tests: check node ports availability when using unicast discovery #9886
      • Tests: Use all found index files instead of static list for static bwc tests #9854
      • Tests: Remove thread leak filter #9843
      • [TEST] Don't reuse single node tests node instance across tests #9813
      • Kernel32LibraryTests creates JNA proxy classes [ISSUE] #9802
      • Tests: Remove global shared cluster #9781 (issue: #8854)
      • Test: Remove use of globalTempDir() and forbid it from future use. #9777
      • Testing: Added REST tests to check if expression scripting works #9750
      • Testing: Ensure RepeatOnException rule is available in test-jar #9675
      • [TEST] Introduce basic validation of our REST spec #9629
      • Tests: Add static indexes to fill out 0.20.x coverage. #9537
      • [TEST] support stashed values within property names in our REST tests #9533
      • Testing: Add test rule to repeat tests on binding exceptions #9527 (issue: #9010)
      • Tests: Add type-unrestricted version of field mapper getter to SearchContext #9490
      • Test: use local gateway by default #9476
      • Tests: Rename tests with the same name #9370
      • Internal: Change snapshot state for unreleased versions and add validation tests for constants #9228
      • Tests: Add upgrade step to static bwc tests #9207
      • Add 0.20.x index. #9146
      • Don't enable custom data_path for backwards compatibility tests #9119
      • Fix TransportNodesListShardStoreMetaData for custom data paths #9101
      • [TEST] Make sure we restart the suite cluster after each test failure #9015
      • [TEST] upgrade randomized runner to 2.1.11 #8930
      • [TEST] LoggingListener to restore the initial logger levels after any modification #8845 (issue: #8820)
      • Test: fix InternalEngineTest.testIndexWriterIFDInfoStream to pass in IntelliJ #8822
      • [TEST] Pass class level test logging to external nodes #8820 (issue: #8552)
      • [TEST] Add unit tests for DiskThresholdDecider settings #8816
      • [TEST] guarantee REST tests execution order #8745
      • [TEST] make sure rest tests info is printed for any @Rest annotated test #8680 (issue: #7795)
      • [TEST] split base settings in ClusterDiscoveryConfiguration between node and transport client #8653
      • [TEST] Extend unicast ports generation to support more concurrent clusters #8634
      • [TEST] Register data.path for all nodes on close in InternalTestCluster #8519
      • Tests: Skip bwc analysis tests if using turkish or azuri locale. #8492
      • Allow -SNAPSHOT versions to be parsed by Version.fromString #8379
      • [TEST] move ClusterDiscoveryConfiguration to org.elasticsearch.test.discovery #8337
      • Tests: Pass through locale and timezone to test runner, and print in repro command line. #8315
      • [TEST] Remove redundant call to setTemplateType() #8295
      • [TEST] initialize SUITE | GLOBAL scope cluster in a private random context #8250
      • [TEST] Scope.SUITE is not reproducible due to late cluster initialization #8220
      • [TEST] Add simple BWC tests that start from pre-build indices [ISSUE] #8065
      • Tests: dump all thread stacks on failure #8033
      • [TEST] fix CurrentTestFailedMarker to reset its state after each test #8008
      • [TEST] create client nodes using node.client: true #7911
      • [TEST] Use Shutdown API only if nodes are on 1.3.3 or newer to prevent shutdown problems #7910 (issue: #7885)
      • [TEST] add regular scroll REST test #7860
      • Internal: MulticastChannel should wait on receiver thread to stop during shutdown #7835
      • Tests: Add a more restrictive thread leaks filter #7825 (issue: #7833)
      • [TEST] move REST tests to their own test group #7795
      • [TEST] Only reset test cluster if a test actually failed #7775
      • [TEST] Improve HTTP support in TestClusters #7738
      • [TEST] Update REST client before each test in our REST tests #7737 (issues: #6734, #7723)
      • Test: always run CheckIndex after a test, and fail the test if it detects corruption #7730
      • Tests: always run CheckIndex on all shards created by the test [ISSUE] #7724
      • [TEST] Minor REST tests infra cleanup #7723
      • [TEST] Expose ability to provide http headers when sending requests in our REST tests #7710
      • Tools: Add script to grab ES version for BWC tests. #7653
      • Geo: [TEST] Adds tests for GeoUtils #7510
      • Benchmark: BenchmarkIntegrationTest failure fixed [ISSUE] #6094
      • Test: Integration tests for benchmark API. #6023 (issue: #6003)
      • Test: Start nodes using node.bench true to enable benchmark api #5920 (issue: #5910)
    • Recovery:
      • [RECOVERY] Make recovery delay configurable #8739
    • Snapshot/Restore:
      • Tests: Make sure snapshots created with old version of elasticsearch can... #8968

    Not classified

    • NOT CLASSIFIED:
      • Core: check only call rate limiter every minPauseCheckBytes during recovery [OPEN] #10185 (issue: #6018)
      • Build: Check that all packages contain the same jar files #9757
      • Rename Maven repository id #9733
      • [BUILD] Add marvel and license to the release script #9697
      • ignore intellij project/workspace files #9044
      • Switch to forbidden-apis 1.7 #8620
    • Recovery:
      • Recovery: node shut down during the last phase of recovery needlessly fails shard [ISSUE] #9496