5.0.0 Combined Release Notesedit

The list below covers all changes from 5.0.0-alpha1 to 5.0.0 GA excluding changes which were already released in the 2.x series, which can be found in 5.0.0-alpha1 Release Notes (Changes previously released in 2.x).

Also see Breaking changes in 5.0.

Breaking changesedit

Aggregations
  • Remove size 0 options in aggregations #18854 (issue: #18838)
Aliases
  • make get alias expand to open and closed indices by default #15954 (issue: #14982)
  • Remove deprecated indices.get_aliases #13906
Allocation
  • Remove DisableAllocationDecider #13313
Analysis
  • Remove token_filter in _analyze API #20285 (issue: #20283)
  • Removes support for adding aliases to analyzers #19994 (issue: #18244)
  • Analyze API : Rename filters/token_filters/char_filter in Analyze API in master #17843 (issue: #15189)
CAT API
  • Improve cat thread pool API #19721 (issue: #19590)
  • Row-centric output for _cat/fielddata #18068 (issue: #10249)
  • Add raw recovery progress to cat recovery API #17064 (issue: #17022)
  • Remove host from cat nodes API #16656 (issues: #12959, #16575)
  • Using the accept header in the request instead of content-type in _cat API. #14421 (issue: #14195)
CRUD
  • Fixed naming inconsistency for fields/stored_fields in the APIs #20166 (issues: #18943, #20155)
  • Disallow creating indices starting with - or + #20033 (issue: #19800)
  • Wait for changes to be visible by search #17986 (issue: #1063)
  • Remove object notation for core types. #15684 (issue: #15388)
Cache
  • Remove deprecated query cache settings #15592
Cluster
Core
  • Remove ignore system bootstrap checks #20511
  • Remove minimum master nodes bootstrap check #20082
  • Keep input time unit when parsing TimeValues #19102
  • Remove cluster name from data path #18554 (issue: #17810)
  • Add max number of processes check #16919
  • Add mlockall bootstrap check #16909
  • One log #16703 (issue: #16585)
Engine
  • Optimize indexing for the autogenerated ID append-only case #20211 (issue: #19813)
  • Remove index.compound_on_flush setting and default to true #15594 (issue: #10778)
Exceptions
Fielddata
  • Remove "uninverted" and "binary" fielddata support for numeric and boolean fields. #14082 (issue: #14113)
Geo
  • Deprecate GeoDistance enums and remove geo distance script helpers #19783
Index APIs
  • Removes write consistency level across replication action APIs in favor of wait_for_active_shards #19454 (issue: #18985)
  • Remove GET option for /_forcemerge #15223 (issue: #15165)
  • Remove /_optimize REST API endpoint #14226 (issue: #13778)
Indexed Scripts/Templates
  • Store indexed scripts in the cluster state instead of the .scripts index #17650 (issue: #16651)
Inner Hits
  • Also do not serialize _index key in search response for parent/child inner hits #19011
  • Don’t include _id, _type and _index keys in search response for inner hits #18995 (issue: #18091)
  • Nested inner hits shouldn’t use relative paths #18567 (issue: #16653)
  • Drop top level inner hits in favour of inner hits defined in the query dsl #17816 (issue: #11118)
Internal
  • _flush should block by default #20597 (issue: #20569)
  • Actually bound the generic thread pool #17017
  • Remove support for pre 2.0 indices #13799
Logging
Mapping
  • Remove _timestamp and _ttl on 5.x indices. #18980 (issue: #18280)
  • Add a soft limit on the mapping depth. #17400
  • Disable fielddata on text fields by defaults. #17386
  • Add limit to total number of fields in mapping #17357
  • Change the field mapping index time boost into a query time boost. #16900
  • Deprecate string in favor of text/keyword. #16877
  • Term vector APIs should no longer update mappings #16285
  • Remove the format option of the _source field. #15398
  • Remove transform #13657 (issue: #12674)
Packaging
Parent/Child
  • Removed total score mode in favour for sum score mode. #17174 (issues: #13470, #17083)
  • Removed pre 2.x parent child implementation #13376
Percolator
  • Remove .percolator type in favour of percolator field type #17560
  • Change the percolate api to not dynamically add fields to mapping #16077 (issue: #15751)
Plugin Delete By Query
Plugin Lang Painless
  • Remove all date now methods from Painless #20766 (issue: #20762)
  • Make Painless the Default Language #20017 (issue: #19960)
Plugins
  • Plugins cleanup #18594 (issue: #18588)
  • Rename bin/plugin in bin/elasticsearch-plugin #16454
  • Change the inner structure of the plugins zip #16453
  • Remove multicast plugin #16326 (issue: #16310)
  • Plugins: Remove site plugins #16038
Query DSL
  • Lessen leniency of the query dsl. #18276
  • Function score query: remove deprecated support for boost_factor #13510
  • Remove support for deprecated queries. #13418 (issue: #13326)
REST
  • Change separator for shards preference #20786 (issues: #20722, #20769)
  • Parameter improvements to Cluster Health API wait for shards #20223 (issue: #20216)
  • Switch indices.exists_type from {index}/{type} to {index}/_mapping/{type}. #20055 (issue: #15613)
  • Only use PUT for index creation, not POST. #20001 (issues: #15613, #18160)
  • Remove camelCase support #17933 (issue: #8988)
  • Remove case parameter from rest apis #17774 (issue: #8988)
  • Disallow unquoted field names #15351 (issue: #9800)
  • Limit the accepted length of the _id #16036 (issue: #16034)
Scripting
  • Hardcode painless as the default scripting lang and add legacy script default for stored scripts #20310 (issue: #20122)
  • Remove deprecated 1.x script and template syntax #19387 (issue: #13729)
  • Allow only a single extension for a scripting engine #18332 (issue: #10598)
  • Remove sandbox option for script settings, allow only registering a single language. #18226 (issues: #10598, #17114)
Search
  • Rename fields to stored_fields and add docvalue_fields #18992 (issue: #18943)
  • Remove only node preference #18875 (issue: #18822)
  • Add search preference to prefer multiple nodes #18872 (issue: #18822)
  • Add a soft limit on the number of shards that can be queried in a single search request. #17396
  • Remove deprecated reverse option from sorting #17282 (issue: #17047)
  • Remove some deprecations #14331
  • Remove search exists api #13911 (issues: #13682, #13910)
  • Remove the scan and count search types. #13310
Search Refactoring
  • Remove deprecated parameter from field sort builder. #16573 (issue: #16127)
  • Remove "query" query and fix related parsing bugs #14304 (issue: #13326)
Settings
  • Default max local storage nodes to one #19964 (issues: #19679, #19748)
  • Persistent Node Names #19456 (issue: #19140)
  • Remove support for properties #19398 (issues: #19388, #19391)
  • Rename boostrap.mlockall to bootstrap.memory_lock #18669
  • Register indices.query.bool.max_clause_count setting #18341 (issue: #18336)
  • Remove settings and system properties entanglement #18198 (issue: #18197)
  • Remove action.get.realtime setting #17857 (issue: #12543)
  • Remove ability to specify arbitrary node attributes with node. prefix #17402 (issue: #17280)
  • Enforce discovery.zen.minimum_master_nodes is set when bound to a public ip #17288
  • Prevent index level setting from being configured on a node level #17144 (issue: #16799)
  • Remove support for node.client setting #16963 (issue: #16565)
  • Remove es.max-open-files flag #16757 (issues: #16506, #483)
  • Enforce node level limits if node is started in production env #16733 (issue: #16727)
  • Make settings validation strict #16365
  • Remove the ability to fsync on every operation and only schedule fsync task if really needed #16257 (issue: #16152)
  • Script settings #16197
  • Remove index.flush_on_close entirely #15977
  • Restore chunksize of 512kb on recovery and remove configurability #15235 (issue: #15161)
  • Remove ancient deprecated and alternative recovery settings #15234
Similarities
  • Renames default similarity into classic #15446 (issue: #15102)
Snapshot/Restore
  • Change the default of include_global_state from true to false for snapshot restores #18773 (issue: #18569)
  • Fail closing or deleting indices during a full snapshot #17021 (issue: #16321)
Stats
  • Modify load average format #15932 (issue: #15907)
  • Reintroduce five-minute and fifteen-minute load averages on Linux #15907 (issues: #12049, #14741)
  • Add system CPU percent to OS stats #14741
Term Vectors
  • Remove DFS support from TermVector API #16452
Translog
  • Drop support for simple translog and hard-wire buffer to 8kb #15574
  • Simplify translog-based flush settings #15573
Warmers
  • Remove query warmers and the warmer API. #15614 (issue: #15607)

Breaking Java changesedit

Aggregations
  • getKeyAsString and key_as_string should be the same for terms aggregation on boolean field #15393
Allocation
  • Move parsing of allocation commands into REST and remove support for plugins to register allocation commands #17802 (issue: #17894)
  • Simplify shard balancer interface #17028 (issue: #8954)
Analysis
  • Simplify Analysis registration and configuration #14355
CRUD
Cache
  • Refactor IndicesRequestCache to make it testable. #16610
  • Fold IndexCacheModule into IndexModule #14293
Core
Discovery
  • Introduce node handshake #15971 (issue: #9061)
  • Include pings from client nodes in master election #17329 (issue: #17325)
Highlighting
  • Register Highlighter instances instead of classes #18859
Internal
  • Remove TransportService#registerRequestHandler leniency #20469 (issue: #20468)
  • Consolidate search parser registries #20000
  • Move all FetchSubPhases to o.e.search.fetch.subphase #19702
  • Squash the rest of o.e.rest.action #19698
  • Clean up BytesReference #19196
  • Cleanup ClusterService dependencies and detached from Guice #18941
  • Simplify SubFetchPhase interface #18881
  • Simplify FetchSubPhase registration and detach it from Guice #18862
  • Remove duplicate getters from DiscoveryNode and DiscoveryNodes #17410 (issue: #16963)
  • Cli: Switch to jopt-simple #17024 (issue: #11564)
  • Replace ContextAndHeaders with a ThreadPool based ThreadLocal implementation #15776
  • Remove NodeBuilder #15354
  • Fix IndexSearcherWrapper interface to not depend on the EngineConfig #14654
  • Cleanup query parsing and remove IndexQueryParserService #14452
  • Remove circular dependency between IndicesService and IndicesStore #14285
  • Remove guice injection from IndexStore and friends #14279
  • Replace IndicesLifecycle with a per-index IndexEventListener #14217 (issue: #13259)
  • Simplify similarity module and friends #13942
  • Refactor SearchRequest to be parsed on the coordinating node #13859
Java API
  • Add a dedicated client/transport project for transport-client #19435 (issue: #19412)
  • Remove setRefresh #18752 (issue: #1063)
  • Remove the count api #14166 (issue: #13928)
  • IdsQueryBuilder to accept only non null ids and types #13937
Mapping
  • [Mapping] Several MappingService cleanups #16133 (issue: #15924)
Network
  • Factor out abstract TCPTransport* classes to reduce the netty footprint #19096
  • Remove ability to disable Netty gathering writes #16774 (issue: #7811)
Parent/Child
  • Cleanup ParentFieldMapper #16045
  • Several other parent/child cleanups #13470
Percolator
  • Move the percolator from core to its own module #18511
  • Remove percolator cache #18434
Plugins
  • Cleanup sub fetch phase extension point #20382
  • Remove IndexTemplateFilter #20072
  • Switch custom ShardsAllocators to pull based model #20071
  • Make custom allocation deciders use pull based extensions #20040
  • Migrate query registration from push to pull #19376
  • Add components getter as bridge between guice and new plugin init world #19371
  • Remove CustomNodeAttributes extension point #19348
  • Add RepositoryPlugin interface for registering snapshot repositories #19324
  • Simplified repository api for snapshot/restore #19292
  • Switch most search extensions from push to pull #19238
  • Move RestHandler registration to ActionModule and ActionPlugin #19165
  • Pull actions from plugins #19108
  • Switch analysis from push to pull #19073
  • Remove guice from Mapper plugins #19018
  • Fail to start if plugin tries broken onModule #19025
  • Simplify ScriptModule and script registration #18903
  • Cut over settings registration to a pull model #18890
  • Enforce isolated mode for all plugins #17276
  • Don’t use guice for QueryParsers #15761
  • Remove guice from the index level #14518
  • Remove shard-level injector #13881
Query DSL
  • Remove the MissingQueryBuilder which was deprecated in 2.2.0. #15364 (issue: #14112)
  • Remove NotQueryBuilder #14204 (issue: #13761)
Scripting
  • Remove o.e.script.Template class and move template query to lang-mustache module #19425 (issue: #16314)
  • Move search template to lang-mustache module #18765 (issue: #17906)
  • Remove LeafSearchScript.runAsFloat(): Nothing calls it. #18364
Search
  • Remove FetchSubPhaseParseElement #20350
  • Refactor of query profile classes to make way for other profile implementations #18370 (issue: #10538)
  • Query refactoring: split parse phase into fromXContent and toQuery for all queries #13788 (issue: #10217)
Search Refactoring
  • Refactored inner hits parsing and intoduced InnerHitBuilder #17291
  • Remove support for query_binary and filter_binary #14433 (issue: #14308)
  • Validate query api: move query parsing to the coordinating node #14384
Settings
  • Remove node.mode and node.local settings #19428
  • Remove Settings.settingsBuilder. #17619
  • Move remaining settings in NettyHttpServerTransport to the new infra #16531
  • Replace IndexSettings annotation with a full-fledged class #14251
  • Fix ping timeout settings inconsistencies #13701 (issue: #6579)
Snapshot/Restore
  • Removes extra writeBlob method in BlobContainer #19727 (issue: #18528)
Store
  • Standardize state format type for global and index level metadata #17123
Suggesters

Deprecationsedit

CRUD
  • Deprecate found and created in delete and index rest responses #19633
Plugin Discovery Azure Classic
  • Deprecate discovery-azure and rename it to discovery-azure-classic #19186 (issue: #19144)
Plugin Mapper Attachment
Query DSL
  • Deprecate Indices query #17710 (issue: #12017)
  • Deprecate mlt, in and geo_bbox query name shortcuts #17507
Query Refactoring
  • Splits phrase and phrase_prefix in match query into MatchPhraseQueryBuilder and MatchPhrasePrefixQueryBuilder #17508
Scripting
  • Deprecate Groovy, Python, and Javascript #20244 (issue: #20129)
Search
Templates

New featuresedit

Aggregations
  • Split regular histograms from date histograms. #19551 (issues: #4847, #8082)
  • Adds aggregation profiling to the profile API #18414 (issue: #10538)
  • New Matrix Stats Aggregation module #18300 (issue: #16826)
Aliases
  • Add an alias action to delete an index #20184 (issue: #20064)
Allocation
  • Add API to explain why a shard is or isn’t assigned #17305 (issue: #14593)
Analysis
  • Exposing lucene 6.x minhash filter. #20206 (issue: #20149)
  • Add fingerprint token filter and fingerprint analyzer #17873 (issue: #13325)
Circuit Breakers
  • Circuit break on aggregation bucket numbers with request breaker #19394 (issue: #14046)
Discovery
  • Add two phased commit to Cluster State publishing #13062
Geo
  • Cut over geo_point field and queries to new LatLonPoint type #20315 (issue: #20314)
Index APIs
  • Add rollover API to switch index aliases given some predicates #18732 (issue: #18647)
Ingest
  • ingest-useragent plugin #19074
  • Add a Sort ingest processor #17999
  • Add date_index_name processor #17973 (issue: #17814)
  • Merge feature/ingest branch into master branch #16049 (issue: #14049)
Java REST Client
  • Introduce async performRequest method #19400
  • Low level Rest Client #18735 (issue: #7743)
Mapping
Percolator
  • index the query terms from the percolator query #13646 (issue: #12664)
Plugin Analysis ICU
  • Adding support for customizing the rule file in ICU tokenizer #13651 (issue: #13146)
Plugin Discovery File
Plugin Ingest Attachment
Plugin Mapper Attachment
  • Migrate mapper attachments plugin to main repository #14605
Plugin Repository HDFS
Plugin Repository S3
  • Add support for path_style_access #15114
Query DSL
  • Adds a rewrite phase to queries on the shard level #16870 (issue: #9526)
Reindex API
Scripting
  • Exceptions and Infinite Loop Checking #15936
  • Added a new scripting language (PlanA) #15136 (issue: #13084)
Scroll
  • Add the ability to partition a scroll in multiple slices. #18237 (issue: #13494)
Search
  • Add the ability to disable the retrieval of the stored fields entirely #20026
  • Add search_after parameter in the SearchAPI #16125 (issue: #8192)
Settings
  • Add infrastructure to transactionally apply and reset dynamic settings #15278
Snapshot/Restore
  • Add Google Cloud Storage repository plugin #13578 (issue: #12880)
Stats
  • Extend field stats to report searchable/aggregatable fields #17980 (issue: #17750)
  • API for listing index file sizes #16661 (issue: #16131)
Store
  • Expose MMapDirectory.preLoad(). #18880
  • Add primitive to shrink an index into a single shard #18270
Suggesters
  • Add support for returning documents with completion suggester #19536 (issue: #10746)
  • Add document-oriented completion suggester #14410 (issue: #10746)
Task Manager
  • Add task cancellation mechanism #16320
  • Make the Task object available to the action caller #16033
  • Task Management: Add framework for registering and communicating with tasks #15347 (issue: #15117)
Translog
  • Add elasticsearch-translog CLI tool with truncate command #19342 (issue: #19123)

Enhancementsedit

Aggregations
  • Make the heuristic to compute the default shard size less aggressive. #19659
  • Add _bucket_count option to buckets_path #19571 (issue: #19553)
  • Remove AggregationStreams #19507
  • Migrate serial_diff aggregation to NamedWriteable #19483
  • Migrate most remaining pipeline aggregations to NamedWriteable #19480
  • Migrate moving_avg pipeline aggregation to NamedWriteable #19420
  • Migrate matrix_stats to NamedWriteable #19418
  • Migrate derivative pipeline aggregation to NamedWriteable #19407
  • Migrate top_hits, histogram, and ip_range aggregations to NamedWriteable #19375
  • Migrate nested, reverse_nested, and children aggregations to NamedWriteable #19374
  • Migrate geohash_grid and geo_bounds aggregations to NamedWriteable #19372
  • Clean up significant terms aggregation results #19365
  • Migrate range, date_range, and geo_distance aggregations to NamedWriteable #19321
  • Migrate terms aggregation to NamedWriteable #19277
  • Migrate sampler and missing aggregations to NamedWriteable #19259
  • Migrate global, filter, and filters aggregation to NamedWriteable #19220
  • Migrate the cardinality, scripted_metric, and geo_centroid aggregations to NamedWriteable #19219
  • Use a static default precision for the cardinality aggregation. #19215
  • Migrate more aggregations to NamedWriteable #19199
  • Migrate stats and extended stats to NamedWriteable #19198
  • Migrate sum, min, and max aggregations over to NamedWriteable #19194
  • Start migration away from aggregation streams #19097
  • Automatically set the collection mode to breadth_first in the terms aggregation when the cardinality of the field is unknown or smaller than the requested size. #18779 (issue: #9825)
  • Rename PipelineAggregatorBuilder to PipelineAggregationBuilder. #18677 (issue: #18377)
  • AggregatorBuilder and PipelineAggregatorBuilder do not need generics. #18368 (issue: #18133)
  • Rename AggregatorBuilder to AggregationBuilder #18377 (issue: #18367)
  • Add the ability to use the breadth_first mode with nested aggregations (such as top_hits) which require access to score information. #18127 (issue: #9825)
  • Make significant terms work on fields that are indexed with points. #18031
  • Add tests and documentation for using time_zone in date range aggregation #16955 (issue: #10130)
  • Fixes serialisation of Ranges #16674
Allocation
  • Verify AllocationIDs in replication actions #20320
  • Mark shard as stale on non-replicated write, not on node shutdown #20023 (issue: #18919)
  • Add routing changes API to RoutingAllocation #19992
  • Primary shard allocator observes limits in forcing allocation #19811 (issue: #19446)
  • Use primary terms as authority to fail shards #19715
  • Add recovery source to ShardRouting #19516
  • Allow _shrink to N shards if source shards is a multiple of N #18699
  • Only filter intial recovery (post API) when shrinking an index #18661
  • Estimate shard size for shrinked indices #18659
  • Only fail relocation target shard if failing source shard is a primary #18574 (issue: #16144)
  • Simplify delayed shard allocation #18351 (issue: #18293)
  • Limit retries of failed allocations per index #18467 (issue: #18417)
  • Immutable ShardRouting #17821
  • Add the shard’s store status to the explain API #17689 (issue: #17372)
  • Write shard state metadata as soon as shard is created / initializing #16625 (issue: #14739)
  • Reuse existing allocation id for primary shard allocation #16530 (issue: #14739)
  • Remove version in ShardRouting (now obsolete) #16243 (issue: #14739)
  • Prefer nodes that previously held primary shard for primary shard allocation #16096 (issue: #14739)
  • Extend reroute with an option to force assign stale primary shard copies #15708 (issue: #14739)
  • Allocate primary shards based on allocation IDs #15281 (issue: #14739)
  • Persist currently started allocation IDs to index metadata #14964 (issue: #14739)
  • Use ObjectParser to parse AllocationID #14962 (issue: #14831)
  • Persist allocation ID with shard state metadata on nodes #14831 (issue: #14739)
Analysis
  • Stop using cached component in _analyze API #19929 (issue: #19827)
  • Specify custom char_filters/tokenizer/token_filters in the analyze API #15671 (issue: #8878)
  • Add a MultiTermAwareComponent marker interface to analysis factories. #19028 (issues: #18064, #9978)
  • Add Flags Parameter for Char Filter #18363 (issue: #18362)
  • Core: better error message when analyzer created without tokenizer or… #18455 (issue: #15492)
  • Move AsciiFolding earlier in FingerprintAnalyzer filter chain #18281 (issue: #18266)
  • Improve error message if resource files have illegal encoding #17237 (issue: #17212)
Benchmark
  • Add client-benchmark-noop-api-plugin to stress clients even more in benchmarks #20103
CAT API
  • Add health status parameter to cat indices API #20393
  • Includes the index UUID in the _cat/indices API #19204 (issue: #19132)
  • Add node name to Cat Recovery #18187 (issue: #8041)
  • Add support for documented byte/size units and for micros as a time unit in _cat API #17779
  • Add _cat/tasks #17551
  • Cat health supports ts=0 option #13508 (issue: #10109)
  • Expose http address in cat/nodes #16770
  • [cat/recovery] Make recovery time a TimeValue() #16743 (issue: #9209)
  • :CAT API: remove space at the end of a line #15250 (issue: #9464)
CRUD
  • Renaming operation to result and reworking responses #19704 (issue: #19664)
  • Adding _operation field to index, update, delete response. #19566 (issues: #19267, #9642, #9736)
  • CRUD: Allow to get and set ttl as a time value/string #15047
Cache
  • Enable option to use request cache for size > 0 #19472
  • Cache FieldStats in the request cache #18768 (issue: #18717)
  • Allow the query cache to be disabled. #16268 (issue: #15802)
  • Enable the indices request cache by default #17162 (issues: #16870, #17134)
Circuit Breakers
  • Cluster Settings Updates should not trigger circuit breakers. #20827
  • Circuit break the number of inline scripts compiled per minute #19694 (issue: #19396)
Cluster
  • Add clusterUUID to RestMainAction output #20503
  • Batch process node left and node failure #19289 (issue: #19282)
  • Index creation waits for write consistency shards #18985
  • Inline reroute with process of node join/master election #18938 (issue: #17270)
  • Index creation does not cause the cluster health to go RED #18737 (issues: #9106, #9126)
  • Cluster Health class improvements #18673
  • Adds tombstones to cluster state for index deletions #17265 (issues: #16358, #17435)
  • Enable acked indexing #17038 (issue: #7572)
  • Cluster Health should run on applied states, even if waitFor=0 #17440
  • Resolve index names to Index instances early #17048
  • Remove DiscoveryNode#shouldConnectTo method #16898 (issue: #16815)
  • Fail demoted primary shards and retry request #16415 (issue: #14252)
  • Illegal shard failure requests #16275
  • Shard failure requests for non-existent shards #16089 (issue: #14252)
  • Add handling of channel failures when starting a shard #16041 (issue: #15895)
  • Wait for new master when failing shard #15748 (issue: #14252)
  • Master should wait on cluster state publication when failing a shard #15468 (issue: #14252)
  • Split cluster state update tasks into roles #14899 (issue: #13627)
  • Add timeout mechanism for sending shard failures #14707 (issue: #14252)
  • Add listener mechanism for failures to send shard failed #14295 (issue: #14252)
Core
  • Add production warning for pre-release builds #20674
  • Add serial collector bootstrap check #20558
  • Rename Netty TCP transports thread factories from http_* to transport_* #20207
  • Do not log full bootstrap checks exception #19989
  • Mark halting the virtual machine as privileged #19923 (issues: #19272, #19806)
  • Makes index creation more friendly #19450 (issue: #9126)
  • Clearer error when handling fractional time values #19158 (issue: #19102)
  • Read Elasticsearch manifest via URL #18999 (issue: #18996)
  • Throw if the local node is not set #18963 (issue: #18962)
  • Bootstrap check for OnOutOfMemoryError and seccomp #18756 (issue: #18736)
  • Log OS and JVM on startup #18557
  • Add GC overhead logging #18419
  • Refactor JvmGcMonitorService for testing #18378
  • Default to server VM and add client VM check #18155
  • Add system bootstrap checks escape hatch #18088
  • Avoid sliced locked contention in internal engine #18060 (issue: #18053)
  • Add heap size bootstrap check #17728 (issue: #17490)
  • Remove hostname from NetworkAddress.format #17601 (issue: #17604)
  • Bootstrapping bootstrap checks #17595 (issues: #17474, #17570)
  • Add max map count check #16944
  • Remove PROTOTYPE from BulkItemResponse.Failure #17433 (issue: #17086)
  • Throw an exception if Writeable.Reader reads null #17332
  • Remove PROTOTYPE from RescorerBuilders #17330
  • Port Primary Terms to master #17044 (issues: #14062, #14651, #17038)
  • Use index UUID to lookup indices on IndicesService #17001
  • Add -XX+AlwaysPreTouch JVM flag #16937
  • Add max size virtual memory check #16935
  • Use and test relative time in TransportBulkAction #16916
  • Bump Elasticsearch version to 5.0.0-SNAPSHOT #16862
  • Assert that we can write in all data-path on startup #16745
  • Add G1GC check on startup #16737 (issue: #10740)
  • Shards with heavy indexing should get more of the indexing buffer #14121
  • Remove and ban ImmutableMap #13939 (issue: #13224)
  • Finish banning ImmutableSet #13820 (issue: #13224)
  • Removes and bans ImmutableSet #13754 (issue: #13224)
  • Remove and ban ImmutableMap#entrySet #13724
  • Forbid ForwardingSet #13720 (issue: #13224)
Dates
  • Improve TimeZoneRoundingTests error messages #18895
  • Support full range of Java Long for epoch DateTime #18509 (issue: #17936)
Discovery
  • Do not log cluster service errors at after joining a master #19705
  • Log warning if minimum_master_nodes set to less than quorum #15625
  • Add a dedicate queue for incoming ClusterStates #13303 (issue: #13062)
Engine
  • Only try to read new segments info if we really flushed the index #20474
  • Use _refresh instead of reading from Translog in the RT GET case #20102
  • Remove writeLockTimeout from InternalEngine #16930
  • Don’t guard IndexShard#refresh calls by a check to isRefreshNeeded #16118
  • Never call a listerner under lock in InternalEngine #15786
  • Use System.nanoTime() to initialize Engine.lastWriteNanos #14321
  • Flush big merges automatically if shard is inactive #14275
  • Remove Engine.Create #13955
  • Remove the disabled autogenerated id optimization from InternalEngine #13857
Exceptions
  • Improve startup exception #20083
  • Make NotMasterException a first class citizen #19385
  • Do not catch throwable #19231
  • Make the index-too-old exception more explicit #18438
  • Add index name in IndexAlreadyExistsException default message #18274
  • Fix typos in exception/assert/log messages in core module. #16649
  • Add field names to several mapping errors #16508 (issue: #16378)
  • Add serialization support for more important IOExceptions #15766
  • Adds exception objects to log messages. #14827 (issue: #10021)
  • Add stack traces to logged exceptions where missing #13825 (issue: #10021)
  • Remove reflection hacks from ElasticsearchException #13796
  • Rename QueryParsingException to a more generic ParsingException #13631
  • Add *Exception(Throwable cause) constructors/ call where appropriate #13544 (issue: #10021)
Expressions
  • improve date api for expressions/painless fields #18658
  • Support geo_point fields in lucene expressions #18096
  • Add support for .empty to expressions, and some docs improvements #18077
Geo
  • GeoBoundingBoxQueryBuilder should throw IAE when topLeft and bottomRight are the same coordinate #18668 (issues: #18458, #18631)
  • Enhanced lat/long error handling #16833 (issue: #16137)
  • Fix a potential parsing problem in GeoDistanceSortParser #17111
  • Geo: Add validation of shapes to ShapeBuilders #15551 (issue: #14416)
  • Make remaining ShapeBuilders implement Writeable #15010 (issue: #14416)
  • Geo: Remove internal translated flag from LineStringBuilder #14969
  • Make PointBuilder, CircleBuilder & EnvelopeBuilder implement Writable #14933 (issue: #14416)
  • Merging BaseLineString and BasePolygonBuilder with subclass #14887 (issue: #14482)
  • Moving static factory methods to ShapeBuilders #14529
  • Remove InternalLineStringBuilder and InternalPolygonBuilder #14482 (issue: #14416)
Highlighting
  • Switch Highlighting to ObjectParser #17363
  • Use HighlightBuilder in SearchSourceBuilder #15376 (issue: #15044)
  • Joint parsing of common global Hightlighter and subfield parameters #15368 (issue: #15285)
  • Enable HighlightBuilder to create SearchContextHighlight #15324
  • Add fromXContent method to HighlightBuilder #15157
Index APIs
  • Add date-math support to _rollover #20709
  • Add Shrink request source parser to parse create index request body #18802
  • Fail hot_threads in a better way if unsupported by JDK #15909
Index Templates
  • Add "version" field to Templates #20353 (issue: #20171)
  • Parse and validate mappings on index template creation #8802 (issue: #2415)
Ingest
  • Add "version" field to Pipelines #20343 (issue: #20171)
  • Make it possible for Ingest Processors to access AnalysisRegistry #20233
  • add ignore_missing option to convert,trim,lowercase,uppercase,grok,rename #20194 (issue: #19995)
  • Add support for parameters to the script ingest processor #20136
  • introduce the JSON Processor #20128 (issue: #20052)
  • Allow rename processor to turn leaf fields into branch fields #20053 (issue: #19892)
  • remove ability to set field value in script-processor configuration #19981
  • Add REST _ingest/pipeline to get all pipelines #19603 (issue: #19585)
  • Show ignored errors in verbose simulate result #19404 (issue: #19319)
  • update foreach processor to only support one applied processor. #19402 (issue: #19345)
  • Skip the execution of an empty pipeline #19200 (issue: #19192)
  • Add ignore_failure option to all ingest processors #18650 (issue: #18493)
  • new ScriptProcessor for Ingest #18193
  • Expose underlying processor to blame for thrown exception within CompoundProcessor #18342 (issue: #17823)
  • Avoid string concatentation in IngestDocument.FieldPath #18108
  • add ability to specify multiple grok patterns #18074 (issue: #17903)
  • add ability to disable ability to override values of existing fields in set processor #17902 (issue: #17659)
  • Streamline option naming for several processors #17892 (issue: #17835)
  • add automatic type conversion support to ConvertProcessor #17263 (issue: #17139)
  • Give the foreach processor access to the rest of the document #17172 (issue: #17147)
  • Added ingest statistics to node stats API #16915
  • Add ingest_took to bulk response #16876
  • Add ingest info to node info API, which contains a list of available processors #16865
  • Use diffs for ingest metadata in cluster state #16847
  • hide null-valued metadata fields from WriteableIngestDocument#toXContent #16557
  • Ingest: use bulk thread pool for bulk request processing (was index before) #16539 (issue: #16503)
  • Add foreach processor #16432
  • revert PipelineFactoryError handling with throwing ElasticsearchParseException in ingest pipeline creation #16355
  • Add processor tags to on_failure metadata in ingest pipeline #16324 (issue: #16202)
  • catch processor/pipeline factory exceptions and return structured error responses #16276 (issue: #16010)
  • Ingest: move get/put/delete pipeline methods to ClusterAdminClient #16242
  • Geoip processor: remove redundant latitude and longitude fields and make location an object with lat and lon subfields #16173
Inner Hits
  • Change scriptFields member in InnerHitBuilder to set #18092 (issue: #5831)
Internal
  • Remove poor-mans compression in InternalSearchHit and friends #20472
  • Don’t register SearchTransportService handlers more than once #20468
  • Unguice SearchModule #20456
  • Deguice SearchService and friends #20423
  • NodeStats classes to implement Writeable rather then Streamable #20327
  • More info classes to implement Writeable rather than Streamable #20288 (issue: #20255)
  • Internal: Split disk threshold monitoring from decider #20018
  • Switching LockObtainFailedException over to ShardLockObtainFailedException #19991 (issue: #19978)
  • update and delete by query requests to implement IndicesRequest.Replaceable #19961
  • VersionFetchSubPhase should not use Versions#loadDocIdAndVersion #19944
  • Remove useless PK lookup in IndicesTTLService #19945
  • ignore some docker craziness in seccomp environment checks #19754
  • Make Priority an enum #19448
  • Snapshot UUIDs in blob names #19421 (issues: #18156, #18815, #19002, #7540)
  • Add RestController method for deprecating in one step #19343
  • Tighten ensure atomic move cleanup #19309 (issue: #19036)
  • Enable checkstyle ModifierOrder #19214
  • Expose task information from NodeClient #19189
  • Changed rest handler interface to take NodeClient #19170
  • Deprecate ExceptionsHelper.detailedMessage #19160 (issue: #19069)
  • Factor out ChannelBuffer from BytesReference #19129
  • Cleanup Compressor interface #19125
  • Hot methods redux #19016 (issue: #16725)
  • Remove forked joda time BaseDateTime class #18953
  • Support optional ctor args in ConstructingObjectParser #18725
  • Remove thread pool from page cache recycler #18664 (issue: #18613)
  • Do not automatically close XContent objects/arrays #18549 (issue: #18433)
  • Remove use of a Fields class in snapshot responses #18497
  • Removes multiple toXContent entry points for SnapshotInfo #18494
  • Removes unused methods in the o/e/common/Strings class #18346
  • Determine content length eagerly in HttpServer #18203
  • Consolidate query generation in QueryShardContext #18129
  • Make reset in QueryShardContext private #18113
  • Remove Strings#splitStringToArray #18110
  • Add toString() to GetResponse #18102
  • ConstructingObjectParser adapts ObjectParser for ctor args #17596 (issue: #17352)
  • Makes Script type writeable #17908 (issue: #17753)
  • FiltersAggregatorBuilder: Don’t create new context for inner parsing #17851
  • Clean up serialization on some stats #17832 (issue: #17085)
  • Normalize registration for SignificanceHeuristics #17830 (issue: #17085)
  • Make (read|write)NamedWriteable public #17829 (issue: #17682)
  • Use try-with-resource when creating new parser instances where possible #17822
  • Don’t pass XContentParser to ParseFieldRegistry#lookup #17794
  • Internal: Remove threadlocal from document parser #17764
  • Cut range aggregations to registerAggregation #17757 (issue: #17085)
  • Remove ParseFieldMatcher from AbstractXContentParser #17756 (issue: #17417)
  • Remove parser argument from methods where we already pass in a parse context #17738
  • Switch SearchAfterBuilder to writeGenericValue #17735 (issue: #17085)
  • Remove StreamableReader #17729 (issue: #17085)
  • Cleanup nested, has_child & has_parent query builders for inner hits construction #17719 (issue: #11118)
  • Make AllocationCommands NamedWriteables #17661
  • Isolate StreamableReader #17656 (issue: #17085)
  • Create registration methods for aggregations similar to those for queries #17653 (issues: #17085, #17389)
  • Remove PROTOTYPEs from QueryBuilders #17632 (issue: #17085)
  • Remove registerQueryParser #17608
  • ParseField#getAllNamesIncludedDeprecated to not return duplicate names #17504
  • Rework a query parser and improve registration #17458
  • Clean up QueryParseContext and don’t hold it inside QueryRewrite/ShardContext #17417
  • Remove PROTOTYPE from MLT.Item #17481 (issue: #17085)
  • Remove PROTOTYPE from VersionType #17480 (issue: #17085)
  • Remove PROTOTYPEs from highlighting #17466 (issue: #17085)
  • Remove PROTOTYPEs from ingest #17434 (issue: #17085)
  • Start to rework query registration #17424
  • Factor out slow logs into Search and IndexingOperationListeners #17398
  • Remove PROTOTYPE from Suggesters #17370
  • Remove PROTOTYPE from SortBuilders #17337 (issue: #17085)
  • Remove PROTOTYPE from ShapeBuilders #17336 (issue: #17085)
  • Replace FieldStatsProvider with a method on MappedFieldType. #17334
  • Stop using PROTOTYPE in NamedWriteableRegistry #17284 (issue: #17085)
  • Support scheduled commands in current context #17077
  • Thread limits #17003
  • Remove leniency from segments info integrity checks #16985 (issue: #16973)
  • Rename SearchServiceTransportAction to SearchTransportService #16880
  • Decouple the TransportService and ClusterService #16872 (issue: #16788)
  • Refactor bootstrap checks #16844 (issues: #16733, #16835)
  • Add LifecycleRunnable #16752
  • Hot inlined methods in your area #16725
  • Move IndicesQueryCache and IndicesRequestCache into IndicesService #16603
  • Forbid use of java.security.MessageDigest#clone() #16543 (issue: #16479)
  • Make IndicesWarmer a private class of IndexService #16470
  • Simplify IndicesFieldDataCache and detach from guice #16469
  • Uppercase ells (L) in long literals #16329 (issue: #16279)
  • ShardId equality and hash code inconsistency #16319 (issue: #16217)
  • Ensure all resources are closed on Node#close() #16316 (issue: #13685)
  • Make index uuid available in Index, ShardRouting & ShardId #16217
  • Move RefreshTask into IndexService and use since task per index #15933
  • Make IndexingMemoryController private to IndicesService #15877
  • Cleanup IndexingOperationListeners infrastructure #15875
  • Remove and forbid use of j.u.c.ThreadLocalRandom #15862 (issue: #15294)
  • Fix IntelliJ query builder type inference issues #15429
  • Remove and forbid use of Collections#shuffle(List) and Random#<init>() #15299 (issue: #15287)
  • Remove and forbid use of the type-unsafe empty Collections fields #15187
  • Move IndicesService.canDeleteShardContent to use IndexSettings #15150 (issue: #15059)
  • Simplify MonitorService construction and detach from guice #15035
  • Use Supplier for StreamInput#readOptionalStreamable #14806
  • Add variable-length long encoding #14780
  • Extend usage of IndexSetting class #14731 (issue: #14251)
  • Fold SimilarityModule into IndexModule #14284
  • Move to lucene BoostQuery #14264
  • Use built-in method for computing hash code of longs #14213
  • Refactor ShardFailure listener infrastructure #14206
  • Add methods for variable-length encoding integral arrays #14087
  • Fold IndexAliasesService into IndexService #14044
  • Remove unneeded Module abstractions #13944
  • Query refactoring: simplify IndexQueryParserService parse methods #13938 (issue: #13859)
  • Remove and forbid use of com.google.common.collect.Iterators #13916 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.ImmutableCollection #13909 (issue: #13224)
  • Remove and forbid use of com.google.common.io.Resources #13908 (issue: #13224)
  • Remove and forbid use of com.google.common.hash.* #13907 (issue: #13224)
  • Remove and forbid use of com.google.common.net.InetAddresses #13905 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.EvictingQueue #13903 (issue: #13224)
  • Replace Guava cache with simple concurrent LRU cache #13879
  • Remove ClusterSerivce and IndexSettingsService dependency from IndexShard #13853
  • Start making RecoverySourceHandler unittestable #13840
  • Remove IndexService dep. from IndexShard #13797
  • Remove ES internal deletion policies in favour of Lucenes implementations #13794
  • Move ShardTermVectorService to be on indices level as TermVectorService #13786
  • Move ShardPercolateService creation into IndexShard #13777
  • Remove ExpressionScriptCompilationException and ExpressionScriptExecutionException #13742
  • Reduced the number of ClusterStateUpdateTask variants #13735
  • Add a BaseParser helper for stream parsing #13615
  • Remove and forbid use of com.google.common.primitives.Ints #13596 (issue: #13224)
  • Remove and forbid use of com.google.common.math.LongMath #13575 (issue: #13224)
  • Remove and forbid use of com.google.common.base.Joiner #13572 (issue: #13224)
  • Replace and ban next batch of Guava classes #13562 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.Iterables #13559 (issue: #13224)
  • Replace LoadingCache usage with a simple ConcurrentHashMap #13552 (issue: #13224)
  • Use Supplier instead of Reflection #13545
  • Remove and forbid use of com.google.common.base.Preconditions #13540 (issue: #13224)
  • Remove and forbid use of guava Function, Charsets, Collections2 #13533 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.ImmutableSortedMap #13525 (issue: #13224)
  • Remove and forbid use of several com.google.common.util. classes #13524 (issue: #13224)
  • Cleanup SearchRequest & SearchRequestBuilder #13518
  • Remove and forbid use of com.google.common.collect.Queues #13498 (issue: #13224)
  • Remove and forbid use of com.google.common.base.Preconditions#checkNotNull #13493 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.Sets #13463 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.Maps #13438 (issue: #13224)
  • Remove use of underscore as an identifier #13353
  • Remove and forbid the use of com.google.common.base.Predicate(s)? #13349 (issues: #13224, #13314)
  • This commit removes com.google.common.io #13302 (issue: #13224)
Java API
  • Ensure PutMappingRequest.buildFromSimplifiedDef input are pairs #19837 (issue: #19836)
  • Start from a random node number so that clients do not overload the first node configured #14143
  • Switch QueryBuilders to new MatchPhraseQueryBuilder #18753
  • Improve adding clauses to span_near and span_or query #18485 (issue: #18478)
  • QueryBuilder does not need generics. #18133
  • Remove copy constructors from request classes and TransportMessage type #16640 (issue: #15776)
Java REST Client
  • Add support for a RestClient path prefix #20190
  • Add "Async" to the end of each Async RestClient method #20172 (issue: #20168)
  • Allow RestClient to send array-based headers #20151
  • Add response body to ResponseException error message #19653 (issue: #19653)
  • Simplify Sniffer initialization and automatically create the default HostsSniffer #19599
  • Remove duplicate dependency declaration for http client #19580 (issue: #19281)
  • Add callback to customize http client settings #19373
  • Rest Client: add short performRequest method variants without params and/or body #19340 (issue: #19312)
Logging
  • Ensure logging is initialized in CLI tools #20575
  • Give useful error message if log config is missing #20493
  • Complete Elasticsearch logger names #20457 (issue: #20326)
  • Add node name to decider trace logging #20437 (issue: #20379)
  • Logging shutdown hack #20389 (issue: #20304)
  • Disable console logging #20387
  • Skip loading of jansi from log4j2 #20334
  • Configure AWS SDK logging configuration #20313 (issue: #20294)
  • Warn if unsupported logging configuration present #20309
  • Size limit deprecation logs #20287 (issues: #20235, #20254)
  • Increase visibility of deprecation logger #20254 (issue: #11033)
  • Add log message about enforcing bootstrap checks #19451
  • Improve logging for batched cluster state updates #19255
  • Send HTTP Warning Header(s) for any Deprecation Usage from a REST request #17804 (issue: #17687)
  • Throw IllegalStateException when handshake fails due to version or cluster mismatch #18676
Mapping
  • Automatically downgrade text and keyword to string on indexes imported from 2.x #20177
  • Do not parse numbers as both strings and numbers when not included in _all. #20167
  • Don’t index the _version field #20132
  • The root object mapper should support updating numeric_detection, date_detection and dynamic_date_formats. #20119 (issue: #20111)
  • Automatically upgrade analyzed string fields that have index_options or position_increment_gap set. #20002 (issue: #19974)
  • Mappings: Support dots in field names in mapping parsing #19899 (issue: #19443)
  • Save one utf8 conversion in KeywordFieldMapper. #19867
  • Do not parse the created version from the settings every time a field is parsed. #19824
  • Elasticsearch should reject dynamic templates with unknown match_mapping_type. #17285 (issue: #16945)
  • Upgrade string fields to text/keyword even if include_in_all is set. #19004 (issue: #18974)
  • Adds a methods to find (and dynamically create) the mappers for the parents of a field with dots in the field name #18106 (issue: #15951)
  • Automatically upgrade analyzed strings with an analyzer to text. #17861
  • Support dots in field names when mapping already exists #17759 (issue: #15951)
  • Use the new points API to index numeric fields. #17746 (issues: #11513, #16751, #17007, #17700)
  • Simplify AllEntries, AllField and AllFieldMapper: #17613
  • Make parseMultiField part of parseField. #17313
  • Automatically add a sub keyword field to string dynamic mappings. #17188
  • Remove friction from the mapping changes in 5.0. #16991
  • Rework norms parameters for 5.0. #16987
  • Moved dynamic field handling in doc parsing to end of parsing #16798
  • Remove the MapperBuilders utility class. #16609
  • Make the index property a boolean. #16161
  • Remove the ability to enable doc values with the fielddata.format setting. #16147
  • Be stricter about parsing boolean values in mappings. #16146
  • Fix default doc values to be enabled when a field is not indexed. #16141
  • Dynamically map floating-point numbers as floats instead of doubles. #15319 (issue: #13851)
  • Simplify MetaDataMappingService. #15217
  • Remove MergeMappingException. #15177
Network
  • Avoid early initializing Netty #19819 (issue: #5644)
  • Network: Allow to listen on virtual interfaces. #19568 (issues: #17473, #19537)
  • Explicitly tell Netty to not use unsafe #19786 (issues: #19562, #5624)
  • Enable Netty 4 extensions #19767 (issue: #19526)
  • Modularize netty #19392
  • Simplify TcpTransport interface by reducing send code to a single send method #19223
  • Do not start scheduled pings until transport start #18702
Packaging
  • Add quiet option to disable console logging #20422 (issues: #15315, #16159, #17220)
  • Explicitly disable Netty key set replacement #20249
  • Remove explicit parallel new GC flag #18767
  • Use JAVA_HOME or java.exe in PATH like the Linux scripts do #18685 (issue: #4913)
  • Don’t mkdir directly in deb init script #18503 (issue: #18307)
  • Increase default heap size to 2g #18311 (issues: #16334, #17686, #18309)
  • Switch init.d scripts to use bash #18308 (issue: #18259)
  • Switch scripts to use bash #18251 (issue: #14002)
  • Further simplifications of plugin script #18239 (issue: #18207)
  • Pass ES_JAVA_OPTS to JVM for plugins script #18140 (issue: #16790)
  • Remove unnecessary sleep from init script restart #17966
  • Explicitly set packaging permissions #17912 (issue: #17634)
  • rpm uses non-portable --system flag to useradd #14596 (issue: #14211)
  • Adding JAVA_HOME to documents and env config file #11338 (issue: #11291)
  • Added RPM metadata #17477
  • Elasticsearch ownership for data, logs, and configs #17197 (issue: #12688)
  • Fail early on JDK with compiler bug #16418 (issues: #16097, #16362)
  • Make security non-optional #16176
  • Remove RuntimePermission("accessDeclaredMembers") #15378
  • Remove Guava as a dependency #14055 (issue: #13224)
  • Remove Guava as a dependency #14054 (issue: #13224)
Percolator
  • Also support query term extract for queries wrapped inside a FunctionScoreQuery #19184
  • Add support for synonym query to percolator query term extraction #19066
  • Add percolator query extraction support for dismax query #18845
  • Improve percolate query performance by not verifying certain candidate matches #18696
  • Improve percolator query term extraction #18610
  • PercolatorQueryBuilder cleanup by using MemoryIndex#fromDocument(…​) helper #17669 (issue: #9386)
  • Add scoring support to the percolator query #17385 (issue: #13827)
  • Add query extract support for the blended term query and the common terms query #17347
  • Add support for several span queries in ExtractQueryTermsService #17323
  • Add support for TermsQuery in ExtractQueryTermsService #17316
  • Replace percolate APIs with a percolator query #16349 (issues: #10741, #11264, #13176, #13978, #4317, #7297)
Plugin Analysis Kuromoji
  • Add nbest options and NumberFilter #17173
Plugin Discovery EC2
  • Use DefaultAWSCredentialsProviderChain AWS SDK class for credentials #19561 (issue: #19556)
  • Support new Asia Pacific (Mumbai) ap-south-1 AWS region #19112 (issue: #19110)
  • Add support for proxy authentication for s3 and ec2 #15293 (issue: #15268)
Plugin Discovery GCE
  • Allow _gce_ network when not using discovery gce #15765 (issue: #15724)
Plugin Ingest Attachment
  • Minor attachment processor improvements #16574
Plugin Lang Painless
  • Disable regexes by default in painless #20427 (issue: #20397)
  • Catch OutOfMemory and StackOverflow errors in Painless #19936
  • Change Painless Tree Structure for Variable/Method Chains #19459
  • Add replaceAll and replaceFirst #19070
  • Painless Initializers #19012
  • Add augmentation #19003
  • Infer lambda arguments/return type #18983
  • Fix explicit casts and improve tests. #18958
  • Add lambda captures #18954
  • improve Debugger to print code even if it hits exception #18932 (issue: #1)
  • Move semicolon hack into lexer #18931
  • Add flag support to regexes #18927
  • improve lambda syntax (allow single expression) #18924
  • Remove useless dropArguments in megamorphic cache #18913
  • non-capturing lambda support #18911 (issue: #18824)
  • fix bugs in operators and more improvements for the dynamic case #18899
  • improve unary operators and cleanup tests #18867 (issue: #18849)
  • Add support for the find operator (=~) and the match operator (==~) #18858
  • Remove casts and boxing for dynamic math #18849 (issue: #18847)
  • Refactor def math #18847
  • Add support for /regex/ #18842
  • Array constructor references #18831
  • Method references to user functions #18828
  • Add } as a delimiter. #18827 (issue: #18821)
  • Add Lambda Stub Node #18824
  • Add capturing method references #18818 (issue: #18748)
  • Add Functions to Painless #18810
  • Add Method to Get New MethodWriters #18771
  • Static For Each #18757
  • Method reference support #18748 (issue: #18578)
  • Add support for the new Java 9 MethodHandles#arrayLength() factory #18734
  • Improve painless compile-time exceptions #18711 (issue: #18600)
  • add java.time packages to painless whitelist #18621
  • Add Function Reference Stub to Painless #18578
  • improve painless whitelist coverage of java api #18533
  • Definition cleanup #18463
  • Made def variable casting consistent with invokedynamic rules #18425
  • Use Java 9 Indy String Concats, if available #18400 (issue: #18398)
  • Add method overloading based on arity #18385
  • Refactor WriterUtils to extend ASM GeneratorAdapter #18382
  • Whitelist expansion #18372
  • Remove boxing when loading and storing values in "def" fields/arrays, remove boxing onsimple method calls of "def" methods #18359
  • Some cleanups #18352
  • Use isAssignableFrom instead of relying on ClassCastException #18350
  • Build descriptor of array and field load/store in code #18338
  • Rename the dynamic call site factory to DefBootstrap #18335
  • Cleanup of DynamicCallSite #18323
  • Improve exception stacktraces #18319
  • Make Line Number Available in Painless #18298
  • Remove input, support params instead #18287
  • Decouple ANTLR AST from Painless #18286
  • _value support in painess? #18284
  • Long priority over Float #18282
  • _score as double, not float #18277
  • Add ctx keyword to painless. #18264
  • Painless doc access #18262
  • Retrieve _score directly from Scorer #18258
  • Implement needsScore() correctly. #18247
  • Add synthetic length property as alias to Lists, so they can be used like arrays #18241
  • Use better typing for dynamic method calls #18234
  • Array load/store and length with invokedynamic #18232 (issue: #18201)
  • Switch painless dynamic calls to invokedynamic, remove perf hack/cheat #18201
  • Add fielddata accessors (.value/.values/.distance()/etc) #18169
  • painless: optimize/simplify dynamic field and method access #18151
  • Painless: Single-Quoted Strings #18150
  • Painless Clean Up #17428
  • Make Painless a Module #16755
  • Minor Clean up #16457
  • Remove Extra String Concat Token #16382
Plugin Mapper Attachment
  • minor attachments cleanups: IDE test support and EPUB format #14626
Plugin Mapper Size
  • Add doc values support to the _size field in the mapper-size plugin #19217 (issue: #18334)
Plugin Repository Azure
  • Support global repositories.azure. settings #15141 (issue: #13776)
  • Add timeout settings (default to 5 minutes) #15080 (issue: #14277)
  • Remove AbstractLegacyBlobContainer #14650 (issue: #13434)
Plugin Repository HDFS
  • merge current hdfs improvements to master #15588
Plugin Repository S3
  • Extract AWS Key from KeyChain instead of using potential null value #19560 (issues: #18703, #19557)
  • Check that S3 setting buffer_size is always lower than chunk_size #17274 (issue: #17244)
Plugins
  • Revert "Display plugins versions" #20807 (issues: #18683, #20668)
  • Provide error message when plugin id is missing #20660
  • Print message when removing plugin with config #20338
  • Plugins: Update official plugin location with unified release #19996
  • Allow plugins to upgrade global custom metadata on startup #19962
  • Switch aggregations from push to pull #19839
  • Display plugins versions #18683
  • Add ScriptService to dependencies available for plugin components #19770
  • Make NamedWriteableRegistry immutable and add extension point for named writeables #19764
  • Log one plugin info per line #19441
  • Make rest headers registration pull based #19440
  • Add resource watcher to services available for plugin components #19401
  • Add some basic services to createComponents for plugins #19380
  • Make plugins closeable #19137
  • Plugins: Add status bar on download #18695
  • Add did-you-mean for plugin cli #18942 (issue: #18896)
  • Plugins: Remove name() and description() from api #18906
  • Emit nicer error message when trying to install unknown plugin #18876 (issue: #17226)
  • Add plugin information for Verbose mode #18051 (issue: #16375)
  • Cli: Improve output for usage errors #17938
  • Cli: Add verbose output with zip url when installing plugin #17662 (issue: #17529)
  • PluginManager: Add xpack as official plugin #17227
  • CliTool: Cleanup and document Terminal #16443
  • Plugin cli: Improve maven coordinates detection #16384 (issue: #16376)
  • Enforce plugin zip does not contain zip entries outside of the plugin dir #16361
  • CliTool: Allow unexpected exceptions to propagate #16359
  • Reduce complexity of plugin cli #16336
  • Remove Plugin.onIndexService. #15029 (issue: #14896)
  • Open up QueryCache and SearcherWrapper extension points #14303
Query DSL
  • Throw exception when multiple field names are provided as part of query short syntax #19871 (issue: #19791)
  • Query parsers to throw exception when multiple field names are provided #19791 (issue: #19547)
  • Allow empty json object in request body in _count API #19595 (issue: #19422)
  • Treat zero token in common terms query as MatchNoDocsQuery #18656
  • Handle empty query bodies at parse time and remove EmptyQueryBuilder #17624 (issues: #17540, #17541)
  • Enforce MatchQueryBuilder#maxExpansions() to be strictly positive #18464
  • Don’t allow fuzziness for multi_match types cross_fields, phrase and phrase_prefix #18322 (issues: #6866, #7764)
  • Add MatchNoDocsQuery, a query that matches no documents and prints the reason why in the toString method. #17780
  • Adds ignore_unmapped option to geo queries #17751
  • Adds ignore_unmapped option to nested and P/C queries #17748
  • SimpleQueryParser should call MappedFieldType.termQuery when appropriate. #17678
  • An exists query on an object should query a single term. #17186 (issue: #17131)
  • Function Score Query: make parsing stricter #16617 (issue: #16583)
  • Parsers should throw exception on unknown objects #14255 (issue: #10974)
  • UNICODE_CHARACTER_CLASS fix #11598 (issue: #10146)
Query Refactoring
  • Add infrastructure to rewrite query builders #16599
  • Switch geo validation to enum #13672 (issue: #13608)
REST
  • Add a REST spec for the create API #20924
  • Add response params to REST params did you mean #20753 (issues: #20722, #20747)
  • Add did you mean to strict REST params #20747 (issue: #20722)
  • Add exclusion support to response filtering #19865
  • Only write forced_refresh if we forced a refresh #19669 (issue: #19629)
  • Add Location header to the index, update, and create APIs #19509 (issue: #19079)
  • Add support for wait_for_events to the _cluster/health REST endpoint #19432 (issue: #19419)
  • Rename Search Template REST spec names #19178
  • Adding status field in _msearch error request bodies #18586 (issue: #18013)
  • Add semicolon query string parameter delimiter #18186 (issue: #18175)
  • Enable HTTP compression by default with compression level 3 #18066 (issue: #7309)
  • Allow JSON with unquoted field names by enabling system property #17801 (issue: #17674)
  • More robust handling of CORS HTTP Access Control #16092
  • Add option to exclude based on paths in XContent #16017
Recovery
  • Pass on maxUnsafeAutoIdTimestamp on recovery / relocation #20300
  • Non-blocking primary relocation hand-off #19013 (issues: #15900, #18553)
  • index shard should be able to cancel check index on close. #18839 (issue: #12011)
  • TransportNodesListGatewayStartedShards should fall back to disk based index metadata if not found in cluster state #17663 (issue: #17630)
  • Recover broken IndexMetaData as closed #17187
  • Relocation source should be marked as relocating before starting recovery to primary relocation target #16500
  • Operation counter for IndexShard #15956 (issue: #15900)
  • Primary relocation handoff #15900 (issues: #15532, #16274, #19013)
  • Remove recovery threadpools and throttle outgoing recoveries on the master #15372
  • Refactor StoreRecoveryService to be a simple package private util class #13766
Reindex API
  • Only ask for _version we need it #19693 (issue: #19135)
  • Use fewer threads when reindexing-from-remote #19636
  • Support authentication with reindex-from-remote #19310
  • Support requests_per_second=-1 to mean no throttling in reindex #19101 (issue: #19089)
  • Implement ctx.op = "delete" on _update_by_query and _reindex #18614 (issue: #18043)
  • Make Reindex cancellation tests more uniform #18498
  • Makes DeleteByQueryRequest implements IndicesRequest #18466
  • Teach reindex to retry on search failures #18331 (issue: #18059)
  • Remove ReindexResponse in favor of BulkIndexByScrollResponse #18205
  • Stricter validation of Reindex’s requests_per_second #18028
  • Properly mark reindex’s child tasks as child tasks #17770
  • Make reindex throttling dynamic #17262
  • Throttling support for reindex #17039
  • Add ingest pipeline support to reindex #16932
Scripting
  • Parse script on storage instead of on retrieval #20356
  • Migrate elasticsearch native script examples to the main repo #19334 (issue: #14662)
  • Remove ClusterState from compile api #19136
  • Mustache: Render Map as JSON #18856 (issue: #18970)
  • Compile each Groovy script in its own classloader #18918 (issue: #18572)
  • Include script field even if it value is null #18384 (issue: #16408)
  • Skipping hidden files compilation for script service #16286 (issue: #15269)
  • Rename Plan A to Painless #16245
  • Add plumbing for script compile-time parameters #15464
  • Factor mustache → modules/lang-mustache #15328
Scroll
  • Add an index setting to limit the maximum number of slices allowed in a scroll request. #18782
Search
  • Limit batch size when scrolling #19367 (issue: #19249)
  • Record method counts while profiling query components #18302
  • Change default similarity to BM25 #18948 (issue: #18944)
  • Add a parameter to cap the number of searches the msearch api will concurrently execute #18721
  • Introduces GeoValidationMethod to GeoDistanceSortBuilder #18036
  • Switches from empty boolean query to matchNoDocs #18007 (issue: #17981)
  • Allow binary sort values. #17959 (issues: #17971, #6077)
  • Fail query if it contains very large rescores #17917 (issue: #17522)
  • Type filters should not have a performance impact when there is a single type. #17350
  • Store _all payloads on 1 byte instead of 4. #16899
  • Refuse to load fields from _source when using the fields option and support wildcards. #15017 (issues: #10783, #14489)
  • Add response into ClearScrollResponse #13835 (issue: #13817)
  • Shuffle shards for _only_nodes + support multiple specifications like cluster API #12575 (issues: #12546, #12700)
Search Refactoring
  • Removes the now obsolete SearchParseElement implementations #18233
  • Remove RescoreParseElement #17441
  • Remove HighlighterParseElement #17303
  • Move top level parsing of sort element to SortBuilder #17248
  • Switch to using refactored SortBuilder instead of using BytesReference in serialization #17205 (issues: #17146, #17257)
  • Add build() method to SortBuilder implementations #17146 (issue: #10217)
  • Refactoring of Suggestions #17096 (issue: #10217)
  • Move sort order field up into SortBuilder #17035
  • Moves SortParser:parse(…​) to only require QueryShardContext #16999 (issue: #15178)
  • Change internal representation of suggesters #16873
  • Make GeoDistanceSortBuilder serializable, 2nd try #16572 (issues: #15178, #16151)
  • Move missing() from SortBuilder interface to class #16225 (issues: #15178, #16151)
  • Remove deprecated parameters from ScriptSortBuilder #16153 (issue: #15178)
  • Refactor GeoSortBuilder #16151 (issue: #15178)
  • Refactor FieldSortBuilder #16127 (issue: #15178)
  • Make sort order enum writable. #16124 (issue: #15178)
  • Make DistanceUnit writable. #16122 (issue: #15178)
  • RescoreBuilder: Add parsing and creating of RescoreSearchContext #16014 (issue: #15559)
  • Make RescoreBuilder and nested QueryRescorer Writable #15953 (issue: #15559)
  • Explain api: move query parsing to the coordinating node #14270
  • Switch query parsers to use ParseField #14249 (issue: #8964)
  • Refactoring of Aggregations #14136
Sequence IDs
  • Persist sequence number checkpoints #18949 (issue: #10708)
  • Add sequence numbers to cat shards API #18772
Settings
  • Add precise logging on unknown or invalid settings #20951 (issue: #20946)
  • Make action.auto_create_index setting a dynamic cluster setting #20274 (issue: #7513)
  • Removes space between # and the setting in elasticsearch.yml #20094 (issue: #20090)
  • Validates new dynamic settings from the current state #19122 (issue: #19046)
  • Improve error message if a setting is not found #18920 (issue: #18663)
  • Cleanup placeholder replacement #17335
  • Switch to registered Settings for all IndexingMemoryController settings #17778 (issue: #17442)
  • Add guard against null-valued settings #17310 (issue: #17292)
  • Useful error message for null property placeholder #17293 (issue: #17292)
  • Archive cluster level settings if unknown or broken #17246
  • Improve error message if setting is not found #17230
  • Improve upgrade experience of node level index settings #17223 (issue: #17187)
  • Settings with complex matchers should not overlap #16754
  • Moves GCE settings to the new infra #16722 (issue: #16720)
  • Add filtering support within Setting class #16629 (issue: #16598)
  • Migrate AWS settings to new settings infrastructure #16602 (issue: #16293)
  • Remove gateway.initial_meta and always rely on min master nodes #16446
  • Rewrite SettingsFilter to be immutable #16425
  • Simplify azure settings #16363
  • Convert PageCacheRecycler settings #16341
  • Monitor settings #16313
  • Cut over tribe node settings to new settings infra #16311
  • Convert multcast plugin settings to the new infra #16295
  • Convert request.headers.* to the new settings infra #16292
  • Migrate Azure settings to new settings infrastructure #16291
  • Validate logger settings and allow them to be reset via API #16289
  • Switch NodeEnvironment’s settings to new settings #16273
  • Simplify AutoCreateIndex and add more tests #16270
  • Convert several pending settings #16269
  • Migrate query caching settings to the new settings infra. #16267
  • Convert action.auto_create_index and action.master.force_local to the new settings infra #16263
  • Convert cluster.routing.allocation.type and processors to the new settings infra. #16238
  • Validate tribe node settings on startup #16237
  • Move node.client, node.data, node.master, node.local and node.mode to new settings infra #16230
  • Moved http settings to the new settings infrastructure #16188
  • Migrate network service to the new infra #16187
  • Convert client.transport settings to new infra #16183
  • Move discovery.* settings to new Setting infrastructure #16182
  • Change over to o.e.common.settings.Setting for http settings #16181
  • Convert "path.*" and "pidfile" to new settings infra #16180
  • Migrate repository settings to the new settings API #16178
  • Convert "indices.*" settings to new infra. #16177
  • Migrate gateway settings to the new settings API. #16175
  • Convert several node and test level settings #16172
  • Run Metadata upgrade tool on every version #16168
  • Check for invalid index settings on metadata upgrade #16156
  • Validate the settings key if it’s simple chars separated by . #16120
  • Validate known global settings on startup #16091
  • Cut over all index scope settings to the new setting infrastrucuture #16054 (issues: #12790, #12854, #16032, #6732)
  • Remove updatability of index.flush_on_close #15964 (issue: #15955)
  • Move all dynamic settings and their config classes to the index level #15955 (issue: #6732)
  • Always require units for bytes and time settings #15948 (issue: #11437)
  • Make MetaData parsing less lenient. #15828
  • Move async translog sync logic into IndexService #15584
  • Remove index.merge.scheduler.notify_on_failure and default to true #15572 (issue: #15570)
  • Remove cache concurrency level settings that no longer apply #14210 (issues: #13224, #13717, #7836)
Similarities
Snapshot/Restore
  • Delete differing files in the store before restoring #20220 (issue: #20148)
  • Adds ignoreUnavailable option to the snapshot status API #20066 (issue: #18522)
  • Check restores in progress before deleting a snapshot #19853
  • Snapshot repository cleans up empty index folders #19751
  • BlobContainer#writeBlob no longer can overwrite a blob #19749 (issue: #15579)
  • More resilient blob handling in snapshot repositories #19706 (issues: #18156, #18815, #19421, #7540)
  • Adding repository index generational files #19002 (issue: #18156)
  • Raised IOException on deleteBlob #18815 (issue: #18530)
  • Adds UUIDs to snapshots #18228 (issue: #18156)
  • Clarify the semantics of the BlobContainer interface #18157 (issue: #15580)
  • Change BlobPath.buildAsString() method #18461
  • Remove the Snapshot class in favor of using SnapshotInfo #18167 (issue: #18156)
Stats
  • Add mem section back to cluster stats #20255 (issue: #17278)
  • Add network types to cluster stats #20144
  • Add missing field type in the FieldStats response. #19241 (issue: #17750)
  • Expose the ClusterInfo object in the allocation explain output #19106 (issue: #14405)
  • Add total_indexing_buffer/_in_bytes to nodes info API #18914 (issue: #18651)
  • Allow FieldStatsRequest to disable cache #18900
  • Remove index_writer_max_memory stat from segment stats #18651 (issues: #14121, #7440)
  • Move DocStats under Engine to get more accurate numbers #18587
  • Do not return fieldstats information for fields that exist in the mapping but not in the index. #18212 (issue: #17980)
  • Add whether the shard state fetch is pending to the allocation explain API #18119 (issue: #17372)
  • Add Failure Details to every NodesResponse #17964 (issue: #3740)
  • Add I/O statistics on Linux #15915 (issue: #15296)
  • Add points to SegmentStats. #17775 (issue: #16974)
  • Remove FieldStats.Float. #17749
  • Show configured and remaining delay for an unassigned shard. #17515 (issue: #17372)
  • indexing stats now contain indexing ops from recovery [ISSUE] #17412
  • Normalize unavailable load average #16061 (issues: #12049, #14741, #15907, #15932, #15934)
  • Add load averages to OS stats on FreeBSD #15934 (issue: #15917)
  • Expose pending cluster state queue size in node stats #14040 (issue: #13610)
Store
Suggesters
  • Move SuggestUtils methods to their respective caller classes #19914 (issue: #19906)
  • Remove payload option from completion suggester #19877 (issue: #19536)
  • Add bwc support for reading pre-5.0 completion index #17602
Task Manager
  • Rename Task Persistence into Storing Task Results #19982
  • Fetch result when wait_for_completion #18905
  • Create get task API that falls back to the .tasks index #18682
  • Add ability to store results for long running tasks #17928
  • Move parentTaskId into TransportRequest #17872
  • Shorten the serialization of the empty TaskId #17870
  • Expose whether a task is cancellable in the _tasks list API #17464 (issue: #17369)
  • Add ability to group tasks by common parent #17341
  • Add start time and duration to tasks #16829
  • Combine node name and task id into single string task id #16744
  • Add task status #16356 (issue: #16344)
  • Extend tracking of parent tasks to master node, replication and broadcast actions #15931
Translog
  • Fsync documents in an async fashion #20145
  • Add checksumming and versions to the Translog’s Checkpoint files #19797
  • Beef up Translog testing with random channel exceptions #18997
  • Do not replay into translog on local recovery #18547
  • FSync translog outside of the writers global lock #18360
  • Remove ChannelReference and simplify Views #15898
  • Simplify TranslogWriter to always write to a stream #15771
  • Remove TranslogService and fold it into synchronous IndexShard API #13707

Bug fixesedit

Aggregations
  • Fixed writeable name from range to geo_distance #20860
  • Fix date_range aggregation to not cache if now is used #20740
  • The top_hits aggregation should compile scripts only once. #20738
  • Fix agg profiling when using breadth_first collect mode #20156
  • Throw exception when maxBounds greater than minBounds #19855 (issue: #19833)
  • Undeprecates aggs in the search request #19674 (issue: #19504)
  • Change how nested and reverse_nested aggs know about their nested depth level #19550 (issues: #11749, #12410)
  • Make ExtendedBounds immutable #19490 (issue: #19481)
  • Aggregations fix: support include/exclude strings for IP and dates #18408 (issue: #17705)
  • Fix xcontent rendering of ip terms aggs. #18003 (issue: #17971)
  • Improving parsing of sigma param for Extended Stats Bucket Aggregation #17562 (issue: #17499)
  • Fixes NPE when no window is specified in moving average request #17556 (issue: #17516)
  • Fixes Filter and FiltersAggregation to work with empty query #17542 (issue: #17518)
  • Fixes the defaults for keyed in the percentiles aggregations #17217
  • Correct typo in class name of StatsAggregator #15264 (issue: #14730)
Allocation
  • Keep a shadow replicas' allocation id when it is promoted to primary #20863 (issue: #20650)
  • IndicesClusterStateService should clean local started when re-assigns an initializing shard with the same aid #20687
  • IndexRoutingTable.initializeEmpty shouldn’t override supplied primary RecoverySource #20638 (issue: #20637)
  • Update incoming recoveries stats when shadow replica is reinitialized #20612
  • index.routing.allocation.initial_recovery limits replica allocation #20589
  • Upon being elected as master, prefer joins' node info to existing cluster state #19743
  • Fix NPE when initializing replica shard has no UnassignedInfo #19491 (issue: #19488)
  • Make shard store fetch less dependent on the current cluster state, both on master and non data nodes #19044 (issue: #18938)
  • Fix recovery throttling to properly handle relocating non-primary shards #18701 (issue: #18640)
  • Replica shards must be failed before primary shards #15686
Analysis
  • Named analyzer should close the analyzer that it wraps #20197
  • Can load non-PreBuiltTokenFilter in Analyze API #20396
  • Fix analyzer alias processing #19506 (issue: #19163)
Bulk
  • Add not-null precondition check in BulkRequest #18347 (issue: #12038)
CAT API
  • Fixes cat tasks operation in detailed mode #19759 (issue: #19755)
  • Add index pattern wildcards support to _cat/shards #19655 (issue: #19634)
CRUD
  • GET operations should not extract fields from _source. #20158 (issues: #15017, #20102)
  • Squash a race condition in RefreshListeners #18806
  • Prevent TransportReplicationAction to route request based on stale local routing table #16274 (issues: #12573, #12574)
  • Resolves the conflict between alias routing and parent routing by applying the alias routing and ignoring the parent routing. #15371 (issue: #3068)
Cache
  • Prevent requests that use scripts or now() from being cached #20750 (issue: #20645)
  • Serialize index boost and phrase suggest collation keys in a consistent order #20081 (issue: #19986)
Circuit Breakers
  • Never trip circuit breaker in liveness request #18627 (issue: #17951)
  • Free bytes reserved on request breaker #18204 (issue: #18144)
Cluster
  • Fixes issue with dangling index being deleted instead of re-imported #19666
  • Allow routing table to be filtered by index pattern #19688
  • Use executor’s describeTasks method to log task information in cluster service #19531
  • Acknowledge index deletion requests based on standard cluster state acknowledgment #18602 (issues: #16442, #18558)
  • Dangling indices are not imported if a tombstone for the index exists #18250 (issue: #18249)
  • Fix issue with tombstones matching active indices in cluster state #18058 (issue: #18054)
  • Shard state action channel exceptions #16057 (issue: #15748)
Core
  • Makes m case sensitive in TimeValue #19649 (issue: #19619)
  • Guard against negative result from FileStore.getUsableSpace when picking data path for a new shard #19554
  • Handle rejected execution exception on reschedule #19505
  • Fix concurrency bug in IMC that could cause it to check too infrequently #18357
  • Iterables.flatten should not pre-cache the first iterator #18355 (issue: #18353)
  • Avoid race while retiring executors #18333
  • Refactor UUID-generating methods out of Strings #17837 (issue: #17819)
  • Node names cleanup #17723 (issue: #17718)
  • NullPointerException from IndexingMemoryController when a version conflict happens during recovery #17569
  • Handle RejectedExecution gracefully in TransportService during shutdown #16965
Discovery
  • Update discovery nodes after cluster state is published #20409
  • Add current cluster state version to zen pings and use them in master election #20384 (issue: #20348)
Engine
  • Take refresh IOExceptions into account when catching ACE in InternalEngine #20546 (issue: #19975)
  • Don’t suppress AlreadyClosedException #19975 (issue: #19861)
Expressions
  • replace ScriptException with a better one #18600
Geo
  • Incomplete results when using geo_distance for large distances [ISSUE] #17578
  • Fix multi-field support for GeoPoint types #15702 (issue: #15701)
  • Enforce distance in distance query is > 0 [ISSUE] #15135
Highlighting
  • Enable BoostingQuery with FVH highlighter #19984 (issue: #19985)
Index APIs
  • Fixes active shard count check in the case of all shards #19760
  • Add zero-padding to auto-generated rollover index name increment #19610 (issue: #19484)
Ingest
  • no null values in ingest configuration error messages #20616
  • JSON Processor was not properly added #20613
  • Don’t rebuild pipeline on every cluster state update #20189
  • Add dotexpander processor #20078
  • Fix NPE when simulating a pipeline with no id #19650
  • Change foreach processor to use ingest metadata for array element #19609 (issue: #19592)
  • No other processors should be executed after on_failure is called #19545
  • rethrow script compilation exceptions into ingest configuration exceptions #19318
  • Rename from ingest-useragent plugin to ingest-user-agent and its processor from useragent to user_agent #19261
  • Fix ignore_failure behavior in _simulate?verbose and more cleanup #18987
  • Pipeline Stats: Fix concurrent modification exception #18177 (issue: #18126)
  • Validate properties values according to database type #17940 (issue: #17683)
  • Ingest does not close its factories #17626 (issue: #17625)
  • Handle regex parsing errors in Gsub and Grok Processors #17260
  • add on_failure exception metadata to ingest document for verbose simulate #16562
  • The IngestDocument copy constructor should make a deep copy #16248 (issue: #16246)
Inner Hits
  • Ensure that that InnerHitBuilder uses rewritten queries #19360 (issue: #19353)
Internal
  • Prevent AbstractArrays from release bytes more than once #20819
  • IndicesAliasesRequest should not implement CompositeIndicesRequest #20726
  • Ensure elasticsearch doesn’t start with unuspported indices #20514 (issue: #20512)
  • Remove ListTasksResponse#setDiscoveryNodes() #19773 (issue: #19772)
  • Priority values should be unmodifiable #19447
  • Extract AbstractBytesReferenceTestCase #19141
  • Add XPointValues #18011 (issue: #18010)
  • Fix BulkItemResponse.Failure.toString #17871
  • Enable unmap hack for java 9 #16986 (issue: #1)
  • Fix issues with failed cache loads #14315
  • Allow parser to move on the START_OBJECT token when parsing search source #14145
  • Ensure searcher is release if wrapping fails #14107
  • Avoid deadlocks in Cache#computeIfAbsent #14091 (issue: #14090)
Java API
  • fix IndexResponse#toString to print out shards info #20562
  • Add NamedWriteables from plugins to TransportClient #19825 (issue: #19764)
  • Fix potential NPE in SearchSourceBuilder #16905 (issue: #16902)
Java REST Client
  • Rest Client: add slash to log line when missing between host and uri #19325 (issue: #19314)
  • Rest Client: HostsSniffer to set http as default scheme #19306
Logging
  • Fix logger when you can not create an azure storage client #20670 (issues: #20633, #20669)
  • Avoid unnecessary creation of prefix loggers #20571 (issue: #20570)
  • Fix logging hierarchy configs #20463
  • Fix prefix logging #20429
  • Hack around Log4j bug rendering exceptions #20306 (issue: #20304)
  • Avoid prematurely triggering logger initialization #20170
  • Only log running out of slots when out of slots #19637
Mapping
  • Allow position_gap_increment for fields in indices created prior to 5.0 #20806 (issues: #19510, #20413)
  • Validate blank field name #19860 (issue: #19251)
  • Better error message when mapping configures null #18809 (issue: #18803)
  • Make doc_values accessible for _type #18220
  • Fix and test handling of null_value. #18090 (issue: #18085)
  • Fail automatic string upgrade if the value of index is not recognized. #18082 (issue: #18062)
  • Fix dynamic check to properly handle parents #17864 (issues: #17644, #17854)
  • Fix array parsing to remove its context when finished parsing #17768
  • Disallow fielddata loading on text fields that are not indexed. #17747
  • Make dynamic template parsing less lenient. #17249
  • Fix dynamic mapper when its parent already has an update #17065
  • Fix copy_to when the target is a dynamic object field. #15216 (issues: #111237, #11237)
  • Preserve existing mappings on batch mapping updates #15130 (issues: #14899, #15129)
Network
  • Fix connection close header handling #20956 (issue: #20938)
  • Ensure port range is readable in the exception message #20893
  • Fix expect 100 continue header handling #19904 (issue: #19834)
  • Fixes netty4 module’s CORS config to use defaults #19874
  • Fix various concurrency issues in transport #19675
  • Verify lower level transport exceptions don’t bubble up on disconnects #19518 (issue: #19096)
Packaging
  • [Packaging] Do not remove scripts directory on upgrade #20452
  • [Package] Remove bin/lib/modules directories on RPM uninstall/upgrade #20448
  • Fix handling of spaces for jvm.options on Windows #19951 (issue: #19941)
  • Disable service in pre-uninstall #19328
  • Remove extra bin/ directory in bin folder #18630
  • Filter client/server VM options from jvm.options #18473
  • Preserve config files from RPM install #18188 (issue: #18158)
  • Fix typo in message for variable setup ES_MAX_MEM #18168
  • Don’t run mkdir when $DATA_DIR contains a comma-separated list #17419 (issue: #16992)
  • Fix exit code #17082
  • Set MAX_OPEN_FILES to 65536 #17431 (issue: #17430)
  • [windows] Service command still had positional start command #17391
  • Do not pass double-dash arguments on startup #17087 (issue: #17084)
Parent/Child
  • Make sure that no _parent#null gets introduces as default _parent mapping #19470 (issue: #19389)
Percolator
  • Fail indexing percolator queries containing either a has_child or has_parent query #20229 (issue: #2960)
  • Add support for MatchNoDocsQuery in percolator’s query terms extract service #18492
  • Let PercolatorQuery’s explain use the two phase iterator #17315 (issue: #17314)
Plugin Discovery Azure Classic
Plugin Discovery EC2
  • Fix EC2 discovery settings #18690 (issues: #18652, #18662)
  • Add TAG_SETTING to list of allowed tags for the ec2 discovery plugin. #18257
  • Fix EC2 Discovery settings #17651 (issue: #16602)
Plugin Discovery GCE
Plugin Ingest Attachment
Plugin Ingest GeoIp
  • [ingest-geoip] update geoip to not include null-valued results from #20455
Plugin Lang Painless
  • Fix String Concatenation Bug In Painless #20623
  • Fix break bug in for/foreach loops. #20146
  • Fix compound assignment with string concats #18933 (issue: #18929)
  • Fix horrible capture #18907 (issue: #18899)
  • Fix Casting Bug #18871
  • Remove Grammar Ambiguities #18531
  • Remove if/else ANTLR ambiguity. #18428
  • Fix insanely slow compilation #18410 (issue: #18398)
  • Fix Bug in Painless Assignment #18379
  • Fix bracket shortcuts #18263
Plugin Repository Azure
Plugin Repository S3
Plugin Store SMB
  • Fix calling ensureOpen() on the wrong directory (master forwardport) #16395 (issue: #16383)
Plugins
  • Use sysprop like with es.path.home to pass conf dir #18870 (issue: #18689)
  • Quote path to java binary #17496 (issue: #17495)
  • CliTool: Messages printed in Terminal should have percent char escaped #16367
Query DSL
  • Fixes MultiMatchQuery so that it doesn’t provide a null context #20882
  • Fix silently accepting malformed queries #20515 (issue: #20500)
  • query_string_query should take term length into consideration when fuzziness is auto #20299 (issue: #15972)
  • Throw ParsingException if a query is wrapped in an array #19750 (issue: #12887)
  • Restore parameter name auto_generate_phrase_queries #19514 (issue: #19512)
  • Resolve string dates and date math to millis before evaluating for rewrite in range query #17239
  • constant_score query should throw error on more than one filter #17135 (issue: #17126)
  • Single IPv4 addresses in IP field term queries #16068 (issue: #16058)
  • Make strategy optional in GeoShapeQueryBuilder readFrom and writeTo #13963
Query Refactoring
  • Query refactoring: set has_parent & has_child types context properly #13863
  • Make sure equivalent geohashCellQueries are equal after toQuery called #13792
REST
  • Remove lenient URL parameter parsing #20722 (issue: #14719)
  • Fixes CORS handling so that it uses the defaults #19522 (issue: #19520)
  • Get XContent params from request in Nodes rest actions #18860 (issue: #18794)
  • Fixes reading of CORS pre-flight headers and methods #17523 (issue: #17483)
Recovery
  • Fix concurrency issues between cancelling a relocation and marking shard as relocated #20443
  • Move reset recovery into RecoveriesCollection #19466 (issue: #19473)
  • Fix replica-primary inconsistencies when indexing during primary relocation with ongoing replica recoveries #19287 (issue: #19248)
  • Invoke IndexingOperationListeners also when recovering from store or remote #17406
  • Prevent interruption while store checks lucene files for consistency #16308
  • Mark shard as recovering on the cluster state thread #14276 (issues: #13766, #14115)
Reindex API
  • Fix reindex with transport client #19997 (issues: #19773, #19979)
  • Fix a race condition in reindex’s rethrottle #18731 (issue: #18744)
  • Reindex should never report negative throttled_until #17799 (issue: #17783)
  • Reindex should gracefully handle when _source is disabled #17667 (issue: #17666)
Scripting
  • Add support for booleans in scripts #20950 (issue: #20949)
  • Fix Javascript OOM build Failure #20307
  • Fix propagating the default value for script settings #20183 (issue: #20159)
  • Catch and wrap AssertionError and NoClassDefFoundError in groovy scripts #19958 (issues: #19806, #19923)
Search
  • Do not cache script queries. #20799 (issue: #20763)
  • Throw error when trying to fetch fields from source and source is disabled #20424 (issues: #20093, #20408)
  • Source filtering should keep working when the source contains numbers greater than Long.MAX_VALUE. #20278 (issue: #11508)
  • Fix NPE when running a range query on a scaled_float with no upper bound. #20253
  • Fix NPE during search with source filtering if the source is disabled. #20093 (issue: #7758)
  • Restore assignment of time value when deserializing a scroll instance #19977 (issue: #18820)
  • Fix explain output for dfs query #19972 (issue: #15369)
  • Don’t recursively count children profile timings #19397 (issue: #18693)
  • fix explain in function_score if no function filter matches #19185
  • Fix NPEs due to disabled source #18957
  • Require timeout units when parsing query body #19077 (issue: #19075)
  • Close SearchContext if query rewrite failed #18727
  • Fix parsing single rescore element in SearchSourceBuilder #18440 (issue: #18439)
  • Fail queries on not indexed fields. #18014
  • Fix for search after #16271
  • Do not be lenient when parsing CIDRs #14874 (issue: #14862)
Settings
  • Fix Setting.timeValue() method #20696 (issue: #20662)
  • Add a hard limit for index.number_of_shard #20682
  • Include complex settings in settings requests #20622
  • Fix filter cache setting to allow percentages #20335 (issue: #20330)
  • Move cluster.routing.allocation.same_shard.host setting to new settings infrastructure #20046 (issue: #20045)
  • Validate settings against dynamic updaters on the master #19088 (issue: #19046)
  • Register "cloud.node.auto_attributes" setting in EC2 discovery plugin #18678
  • Use object equality to compare versions in IndexSettings #18103
  • fix exists method for list settings when using numbered setting format #17949
  • convert settings for ResourceWatcherService to new infrastructure #17948
  • Register bootstrap settings #16513
  • Add settings filtering to node info requests #16445
  • Ban write access to system properties #14914
Snapshot/Restore
  • Better handling of an empty shard’s segments_N file #18784 (issue: #18707)
  • Fix race condition in snapshot initialization #18426 (issue: #18121)
  • Fix the semantics for the BlobContainer interface #17878 (issues: #15579, #15580)
Stats
  • Fix FieldStats deserialization of ip field #20522 (issue: #20516)
  • Fix serialization bug in allocation explain API. #19494
  • Allocation explain: Also serialize includeDiskInfo field #19492
  • Add missing builder.endObject() in FsInfo #18443 (issues: #15915, #18433)
Store
  • Tighten up concurrent store metadata listing and engine writes #19684 (issue: #19416)
  • Make static Store access shard lock aware #19416 (issue: #18938)
  • Catch assertion errors on commit and turn it into a real exception #19357 (issue: #19356)
Task Manager
  • Shard level tasks in Bulk Action lose reference to their parent tasks #17743
  • Take filterNodeIds into consideration while sending task requests to nodes #17081
Term Vectors
  • Fix calculation of took time of term vectors request #17817 (issue: #12565)
Translog
  • Fix RAM usage estimation of LiveVersionMap. #20123 (issue: #19787)
  • Fix translog replay multiple operations same doc #18611 (issues: #18547, #18623)
  • Snapshotting and sync could cause a dead lock TranslogWriter #18481 (issues: #1, #18360, #2)
  • Move translog recover outside of the engine #17422
  • Mark shard active during recovery; push settings after engine finally inits #16250 (issues: #14121, #16209)

Regressionsedit

Highlighting
  • Handle SynonymQuery extraction for the FastVectorHighlighter #20829 (issue: #20781)

Upgradesedit

Core
Ingest
Internal
  • Bump master (3.0-snapshot) to java 8 #13314
Network
Packaging
  • Upgrade JNA to 4.2.2 and remove optionality #19045 (issue: #13245)
Plugin Discovery EC2
  • Update aws sdk to 1.10.69 and add use_throttle_retries repository setting #17784 (issues: #538, #586, #589)
Scripting
  • Dependencies: Updates to mustache 0.9.3 #20337
Search Templates
  • Update mustache.java to version 0.9.1 #14053 (issue: #13224)