Elasticsearch 1.5.0


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