5.3.0 Release Notesedit

See Multi data path bug in Elasticsearch 5.3.0.

Also see Breaking changes in 5.3.

Breaking changesedit

Query DSL
  • Fix name of enabled_position_increments #22895
Search
  • Remove DFS_QUERY_AND_FETCH as a search type #22787

Breaking Java changesedit

CRUD
  • Make index and delete operation execute as single bulk item (backport of #21964) #22812 (issue: #21964)
Internal
  • Replace SearchExtRegistry with namedObject #22492
  • Replace Suggesters with namedObject #22491
Network
  • Remove HttpServer and HttpServerAdapter in favor of a simple dispatch method #22636 (issue: #18482)
Plugins
  • Deguice rest handlers #22575
Search
  • Remove QUERY_AND_FETCH search type #22996

Deprecationsedit

Core
Geo
  • Geo distance range deprecation #22835
Java API
  • Add BulkProcessor methods with XContentType parameter #23078 (issue: #22691)
Mapping
  • Deprecate the include_in_all mapping parameter #22972 (issue: #22970)
Network
Plugin Repository Azure
  • Deprecate auto creation of container for azure repository #22857 (issues: #22843, #22856)
Plugin Repository S3
  • S3 Repository: Deprecate specifying region #22848 (issue: #22758)
  • S3 Repository: Deprecate auto creation of s3 bucket for repository #22843 (issue: #22761)
  • Deprecate specifying credentials through env vars, sys props, and remove profile files #22567 (issues: #21041, #22479)
REST
  • Deprecate ldjson support and document ndjson for bulk/msearch #23051 (issues: #23025, #23049)
  • Optionally require a valid content type for all rest requests with content #22691 (issue: #19388)
Scripting
  • Change Namespace for Stored Script to Only Use Id #22206

New featuresedit

Aggregations
  • Initial version of an adjacency matrix using the Filters aggregation #22239 (issue: #22169)
CRUD
  • Allow an index to be partitioned with custom routing #22274 (issue: #21585)
Highlighting
Search
  • Add federated cross-cluster search capabilities #22502 (issue: #21473)
  • Add field collapsing for search request #22337 (issue: #21833)
Settings
  • Add infrastructure for elasticsearch keystore #22335

Enhancementsedit

Allocation
  • Include stale replica shard info when explaining an unassigned primary #22826
Analysis
  • Analyze API Position Length Support #22574
CRUD
  • Make index and delete operation execute as a single bulk item #21964
Circuit Breakers
  • Add used memory amount to CircuitBreakingException message (#22521) #22693 (issue: #22521)
Cluster
Core
  • Simplify write failure handling (backport of #19105) #22778 (issue: #19105)
  • Simplify ElasticsearchException rendering as a XContent #22611
  • Remove setLocalNode from ClusterService and TransportService #22608
Engine
  • Replace EngineClosedException with AlreadyClosedExcpetion #22631
Index APIs
  • Indexing: Add shard id to indexing operation listener #22606
  • Better error when can’t auto create index #22488 (issues: #21448, #22435)
Ingest
  • Lazy load the geoip databases #23337
Internal
  • Improve connection closing in RemoteClusterConnection #22804 (issue: #22803)
  • Remove some more usages of ParseFieldMatcher #22437 (issues: #19552, #22130)
  • Introduce ToXContentObject interface #22387 (issue: #16347)
Java API
  • prevent NPE when trying to uncompress a null BytesReference #22386
Java High Level REST Client
  • Add parsing from xContent to MainResponse #22934
  • Parse elasticsearch exception’s root causes #22924
  • Add parsing method to BytesRestResponse’s error #22873
  • Add parsing method for ElasticsearchException.generateThrowableXContent() #22783
  • Add fromxcontent methods to delete response #22712 (issue: #22680)
  • Add parsing methods for UpdateResponse #22586
  • Add parsing from xContent to InternalSearchHit and InternalSearchHits #22429
  • Add fromxcontent methods to index response #22229
Java REST Client
  • move ignore parameter support from yaml test client to low level rest client #22637
  • Support Preemptive Authentication with RestClient #21336
Logging
  • Expose logs base path #22625
Mapping
  • Improve error message for ipv6 on legacy ip fields #23136 (issue: #23126)
Network
  • Keep the pipeline handler queue small initially #23335
Packaging
Plugin Discovery EC2
Plugin Lang Painless
  • Generate reference links for painless API #22775
  • Painless: Add augmentation to String for base 64 #22665 (issue: #22648)
Plugin Repository S3
Plugins
  • Add the ability to define search response listeners in search plugin #22682
Query DSL
  • QueryString and SimpleQueryString Graph Support #22541
  • Additional Graph Support in Match Query #22503 (issue: #22490)
  • RangeQuery WITHIN case now normalises query #22431 (issue: #22412)
Reindex API
  • Increase visibility of doExecute so it can be used directly #22614
  • Improve error message when reindex-from-remote gets bad json #22536 (issue: #22330)
Scripting
  • Expose multi-valued dates to scripts and document painless’s date functions #22875 (issue: #22162)
Search
  • Add a setting to disable remote cluster connections on a node #23005
  • First step towards separating individual search phases #22802
  • Add parsing from xContent to SearchProfileShardResults and nested classes #22649
  • ProfileResult and CollectorResult should print machine readable timing information #22638
Settings
  • Improve setting deprecation message #23156 (issue: #22849)
  • Add secure settings validation on startup #22894
  • Allow comma delimited array settings to have a space after each entry #22591 (issue: #22297)
  • Allow affix settings to be dynamic / updatable #22526
  • Allow affix settings to delegate to actual settings #22523
  • Make s3 repository sensitive settings use secure settings #22479
Snapshot/Restore
  • Duplicate snapshot name throws InvalidSnapshotNameException #22921 (issue: #18228)
  • Use general cluster state batching mechanism for snapshot state updates #22528 (issue: #14899)
Stats

Bug fixesedit

CRUD
Cache
  • Invalidate cached query results if query timed out #22807 (issue: #22789)
Cluster
  • Don’t set local node on cluster state used for node join validation #23311 (issues: #21830, #3, #4, #6, #9)
  • Allow a cluster state applier to create an observer and wait for a better state #23132 (issue: #21817)
  • Cluster allocation explain to never return empty response body #23054
Exceptions
  • Stop returning "es." internal exception headers as http response headers #22703 (issue: #17593)
Ingest
  • Improve missing ingest processor error #23379 (issue: #23392)
  • fix date-processor to a new default year for every new pipeline execution #22601 (issue: #22547)
Internal
  • Always restore the ThreadContext for operations delayed due to a block #23349
  • Fix handling of document failure exception in InternalEngine (backport #22718) #22910
Java REST Client
  • RestClient asynchronous execution should not throw exceptions #23307
Mapping
  • Switch include_in_all in multifield to warning #23656 (issues: #21971, #23654)
  • Fix MapperService StackOverflowError #23605 (issue: #23604)
  • Range types causing GetFieldMappingsIndexRequest to fail due to NullPointerException in RangeFieldMapper.doXContentBody when include_defaults=true is on the query string #22925
  • Disallow introducing illegal object mappings (double ..) #22891 (issue: #22794)
Network
  • Respect promises on pipelined responses #23317 (issues: #23310, #23322)
  • Ensure that releasing listener is called #23310
Packaging
  • Fall back to non-atomic move when removing plugins #23548 (issue: #35)
Parent/Child
  • Add null check in case of orphan child document #22772 (issue: #22770)
Plugin Ingest Attachment
Plugin Lang Painless
  • Fix Bad Casts In Painless #23282 (issue: #23238)
  • Don’t allow casting from void to def in painless #22969 (issue: #22908)
  • Fix def invoked qualified method refs #22918
Plugins
  • Add check for null pluginName in remove command #22930 (issue: #22922)
Query DSL
  • Fix parsing for max_determinized_states #22749 (issue: #22722)
REST
  • [API] change wait_for_completion default according to docs #23672
  • HTTP transport stashes the ThreadContext instead of the RestController #23456
  • Ensure we try to autodetect content type for handlers that support plain text #23452
  • Fix date format in warning headers #23418 (issue: #23275)
  • Correct warning header to be compliant #23275 (issue: #22986)
  • Fix search scroll request with a plain text body #23183 (issue: #22691)
  • Handle bad HTTP requests #23153 (issue: #23034)
  • Properly encode location header #23133 (issues: #21057, #23115)
Reindex API
  • Reindex: do not log when can’t clear old scroll #22942 (issue: #22937)
  • Fix reindex-from-remote from <2.0 #22931 (issue: #22893)
Scripting
  • Remove unnecessary Groovy deprecation logging #23410 (issue: #23401)
  • Script: Fix value of ctx._now to be current epoch time in milliseconds #23175 (issue: #23169)
Search
  • Honor max concurrent searches in multi-search #23538 (issue: #23527)
  • Avoid stack overflow in multi-search #23527 (issue: #23523)
  • Replace blocking calls in ExpandCollapseSearchResponseListener by asynchronous requests #23053 (issue: #23048)
  • Ensure fixed serialization order of InnerHitBuilder #22820 (issue: #22808)
Settings
  • Fix merge scheduler config settings #23391
  • Settings: Fix keystore cli prompting for yes/no to handle console returning null #23320
  • Expose search.highlight.term_vector_multi_value as a node level setting #22999
  • NPE when no setting name passed to elasticsearch-keystore #22609
Similarities
  • Fix similarity upgrade when "default" similarity is overridden #23163
Stats
  • Avoid overflow when computing total FS stats #23641
  • Handle long overflow when adding paths' totals #23293 (issue: #23093)
  • Fix control group pattern #23219 (issue: #23218)
  • Fix total disk bytes returning negative value #23093
Task Manager
  • Fix hanging cancelling task with no children #22796
  • Fix broken TaskInfo.toString() #22698 (issue: #22387)

Regressionsedit

Core
  • Source filtering: only accept array items if the previous include pattern matches #22593 (issue: #22557)

Upgradesedit

Internal
  • Upgrade to Lucene 6.4.1. #22978