New

The executive guide to generative AI

Read more

5.3.0 Release Notes

edit

See Multi data path bug in Elasticsearch 5.3.0.

Also see Breaking changes in 5.3.

Breaking changes

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

Breaking Java changes

edit
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

Deprecations

edit
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 features

edit
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

Enhancements

edit
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 fixes

edit
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)

Regressions

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

Upgrades

edit
Internal
  • Upgrade to Lucene 6.4.1. #22978