Elasticsearch version 8.1.0edit

Also see Breaking changes in 8.1.

Known issuesedit

  • Parsing a request when the last element in an array is filtered out (for instance using _source_includes) fails. This is due to a bug in Jackson parser. Fixed in Elasticsearch 8.6.1 (#91456)

Breaking changesedit

Geo

Bug fixesedit

Aggregations
  • Reenable BooleanTermsIT #83421 (issue: #83351)
  • backward compatibility with version 7.17.0 #83715
  • ip prefix bucket reduction #83637
  • reduce float and half-float values to their stored precision #83213
Allocation
  • Fix updateMinNode condition #80403 (issue: #41194)
  • Make *.routing.allocation.* list-based setting #80420 (issue: #77773)
  • Permit metadata updates on flood-stage-blocked indices #81781
  • Reroute after cluster recovery #82856 (issue: #82456)
Authorization
  • Capture anonymous roles when creating API keys #81427 (issue: #81024)
  • Extend fleet-server service account privileges #82600
Autoscaling
  • Fix autoscaling of follower data streams #83302 (issue: #82857)
Client
  • Fix for self-suppression in REST client #83568 (issue: #42223)
Distributed
  • [GCE Discovery] Correctly handle large zones with 500 or more instances #83785 (issue: #83783)
Engine
  • Fork to WRITE thread when failing shard #84606 (issue: #84602)
Geo
  • Handle bounds properly when grid tiles crosses the dateline #83348 (issue: #83299)
  • GeometryNormalizer should not fail if it cannot compute signed area #84051 (issue: #83946)
ILM+SLM
  • Fix PolicyStepsRegistry's cachedSteps null handling #84588
Indices APIs
  • Allow removing unreferenced composable data stream templates #84376 (issues: #84171, #84188)
  • Simplify and speed up ExecutorSelector #83514 (issue: #82450)
Infra/Core
  • Always re-run Feature migrations which have encountered errors #83918 (issue: #83917)
  • Copy trace.id in threadcontext stash #83218
  • Preserve context in ResultDeduplicator #84038 (issue: #84036)
  • Registration of SystemIndexMigrationTask named xcontent objects #84192 (issue: #84115)
  • Update system index mappings if _meta is null #83896 (issue: #83890)
Infra/REST API
  • Do not allow safelisted media types on Content-Type #83448
Infra/Scripting
  • Fix duplicated allow lists upon script engine creation #82820 (issue: #82778)
  • Fix plumbing in double and keyword runtime fields for the scripting fields API #83392
Ingest
  • Fix GeoIpDownloader startup during rolling upgrade #84000
  • Short circuit date patterns after first match #83764
Machine Learning
  • Allow autoscaling to work when vertical scaling is possible #84242 (issue: #84198)
  • Correctly capture min stats for inference.ingest_processors in ML usage #82352
  • Fail queued inference requests with cause if the process crashes #81584
  • Fix NLP tokenization never_split handling around punctuation #82982
  • Fix ZeroShotClassificationConfig update mixing fields #82848
  • Fix bug where initial scale from 0→1 could scale too high #84244
  • Fix submit after shutdown in process worker service #83645 (issue: #83633)
  • Fixes categorize_text parameter validation to be parse order independent #82628 (issue: #82629)
  • Record node shutdown start time for each node #84355
  • Register the named X-content parser for snapshot upgrade params #84420 (issue: #84419)
  • Retry anomaly detection job recovery during relocation #83456
  • Return zxx for lang_ident_model_1 if no valid text is found for language identification #82746 (issue: #81933)
  • Text structure finder caps exclude lines pattern at 1000 characters #84236 (issue: #83434)
  • Validate vocabulary on model deployment #81548 (issue: #81470)
  • Wait for model process to stop in stop deployment #83644
Mapping
  • Add support for sub-fields to search_as_you_type fields #82430 (issue: #56326)
  • Better exception message for MappingParser.parse #80696
  • Completion field to support multiple completion multi-fields #83595 (issue: #83534)
Network
  • Throw NoSeedNodeLeftException on proxy failure #80961 (issue: #80898)
Packaging
  • Add log4j-slf4j-impl to repository-azure #83661 (issue: #83652)
  • Restart ES after keystore upgrade in postinst #84224 (issue: #82433)
Recovery
  • Add missing indices.recovery.internal_action_retry_timeout to list of settings #83354
  • Add missing max overcommit factor to list of (dynamic) settings #83350
SQL
  • Fix txt format for empty result sets #83376
Search
  • Avoid eagerly loading StoredFieldsReader in fetch phase #83693 (issue: #82777)
  • Do not deserialise the document when not needed in the fields fetch phase #84184
  • Returns valid PIT when no index matched #83424
Security
  • Add validation for API key role descriptors #82049 (issue: #67311)
Snapshot/Restore
  • Adjust LinuxFileSystemNatives.allocatedSizeInBytes for aarch64 architectures #81376 (issues: #80437, #81362)
  • Distinguish "missing repository" from "missing repository plugin" #82457 (issue: #81758)
  • Fix DirectBlobContainerIndexInput cloning method #84341 (issue: #84238)
  • Move get snapshots serialization to management pool #83215
  • Preserve context in snapshotDeletionListeners #84089 (issue: #84036)
TSDB
  • Fix time series timestamp meta missing #80695
Transform
  • Fix NPE in transform version check #81756
  • Fix condition on which the transform stops processing buckets #82852
  • Prevent stopping of transforms due to threadpool limitation #81912 (issue: #81796)
Watcher
  • Tolerate empty types array in Watch definitions #83524 (issue: #83235)

Deprecationsedit

CRUD
  • Bulk actions JSON must be well-formed #78876 (issue: #43774)
Cluster Coordination
  • Remove last few mentions of Zen discovery #80410
Search
  • Deprecate the indices.query.bool.max_clause_count node setting #81525 (issue: #46433)
SQL
  • Deprecate index_include_frozen request parameter #83943 (issue: #81939)

Enhancementsedit

Aggregations
  • Add an aggregator for IPv4 and IPv6 subnets #82410
  • Fail shards early when we can detect a type missmatch #79869 (issue: #72276)
  • Optimize significant_text aggregation to only parse the field it requires from _source #79651
Allocation
  • Identify other node in SameShardAllocDec message #82890 (issue: #80767)
  • Make AllocationService#adaptAutoExpandReplicas Faster #83092
  • Speed up same host check #80767
Analysis
  • Expose Japanese completion filter to kuromoji analysis plugin #81858
Authentication
  • Enable run_as for all authentication schemes #79809
  • Return API key name in _authentication response #78946 (issue: #70306)
Authorization
  • Avoid loading authorized indices when requested indices are all concrete names #81237
  • Optimize DLS bitset building for matchAll query #81030 (issue: #80904)
Cluster Coordination
  • Add detail to slow cluster state warning message #83221
  • Batch Index Settings Update Requests #82896 (issue: #79866)
  • Improve node-join task descriptions #80090
  • Make PeerFinder log messages happier #83222
  • More compact serialization of metadata #82608 (issue: #77466)
  • Paginate persisted cluster state #78875
  • Reduce verbosity-increase timeout to 3 minutes #81118
  • Use network recycler for publications #80650 (issue: #80111)
Data streams
  • Defer reroute when autocreating datastream #82412 (issue: #82159)
ILM+SLM
  • Expose the index age in ILM explain output #81273 (issue: #64429)
Indices APIs
  • Batch auto create index cluster state updates #82159
  • Expose features option in Get Index API #83083 (issue: #82948)
  • Expose index health and status to the _stats API #81954 (issue: #80413)
  • Force merge REST API support wait_for_completion #80463 (issues: #80129, #80129)
Infra/Circuit Breakers
  • Allow dynamically changing the use_real_memory setting #78288 (issue: #77324)
Infra/Core
Infra/REST API
  • Allow for customised content-type validation #80906 (issue: #80482)
  • Update YAML REST tests to check for product header on all responses #83290
Infra/Scripting
  • Add $ syntax as a shortcut for field in Painless #80518
  • Add BinaryDocValuesField to replace BytesRef (ScriptDocValues) #79760
  • Add a geo point field for the scripting fields api #81395
  • Add date fields to the scripting fields api #81272
  • Add half float mapping to the scripting fields API #82294
  • Add scaled float to the scripting fields API #82275
  • Add support for GeoShape to the scripting fields API #81617
  • Fields API for IP mapped type #81396
  • Fields API for byte, double, float, integer, long, short #81126 (issue: #79105)
  • Fields API for flattened mapped type #82590
  • Fields API for x-pack constant_keyword #82292
  • Fields API for x-pack version, doc version, seq no, mumur3 #81476
  • Improve support for joda datetime to java datetime in Painless #83099
  • Keyword fields API support #81266
  • Make wildcard accessible from the scripting field API #82763
  • Ordinal field data plumbing #80970 (issue: #79105)
  • Support boolean fields in Fields API #80043 (issue: #79105)
  • Time series compile and cache evict metrics #79078 (issue: #62899)
Infra/Settings
  • Optimize duplicated code block in MetadataUpdateSettingsService #82048
Machine Learning
  • Add ability to update the truncation option at inference #80267
  • Add error counts to trained model stats #82705
  • Add latest search interval to datafeed stats #82620 (issue: #82405)
  • Adds new MPNet tokenization for NLP models #82234
  • Force delete trained models #80595
  • Improve error message on starting scrolling datafeed with no matching indices #81069 (issue: #81013)
  • Report thread settings per node for trained model deployments #81723 (issue: #81149)
  • Set default value of 30 days for model prune window #81377
  • Track token positions and use source string to tag NER entities #81275
  • Warn when creating job with an unusual bucket span #82145 (issue: #81645)
Mapping
  • Allow doc-values only search on geo_point fields #83395
  • Implement all queries on doc-values only keyword fields #83404
  • Optimize source filtering in SourceFieldMapper #81970 (issues: #77154, #81575)
Monitoring
  • Add Enterprise Search monitoring index templates #82743
  • Add beats_stats.metrics.apm-server.sampling.tail to Stack Monitoring templates #82401
Network
  • Report close connection exceptions at INFO #81768 (issues: #51612, #66473)
  • Serialize outbound messages on netty buffers #80111
  • Track histogram of transport handling times #80581 (issue: #80428)
Recovery
  • Adjust indices.recovery.max_bytes_per_sec according to external settings #82819
SQL
  • Compress Cursors #83591
  • Extend Tableau connector to reconnect with catalog #81321
Search
Security
  • Activate user profile API #82400
  • Add an initial ProfileService for user profiles #81899
  • Add new system index for user profile documents #81355
  • Add update user profile data API #82772
  • Add user profile API for get profile by UID #81910
  • Update Kibana system user privileges #82781
Snapshot/Restore
  • Add Linux x86-64bits native method to retrieve the number of allocated bytes on disk for a file #80437 (issue: #79698)
Stats
  • Add index pressure stats in cluster stats #80303 (issue: #79788)
  • Optimize getIndices in IndicesSegmentResponse #80064
  • Speed up MappingStats Computation on Coordinating Node #82830
TSDB
  • Add _tsid field to time_series indices #80276
  • Make time boundaries settings required in TSDB indices #81146
Transform
  • Introduce deduce_mappings transform setting #82256 (issue: #82559)
  • Make it possible to clear retention policy on an existing transform #82703 (issue: #82560)
  • Report transforms without config as erroneous #81141 (issue: #80955)

New featuresedit

Authentication
  • Initial version of JWT Realm #82175
  • Introduce domain setting to associate realms #81968
Distributed
  • Add desired nodes API #82975
Geo
  • New GeoHexGrid aggregation #82924
Health
  • Model for the new health reporting api #83398
TSDB
  • Handle fields.with.dots in routing_path #83148
Transform

Upgradesedit

Geo
  • Update vector tiles google protobuf to 3.16.1 #83402
Network
  • Upgrade to Netty 4.1.73 #82844
Packaging
Security
  • Upgrade jANSI dependency to 2.4.0 #83566