Elasticsearch version 7.3.0
Also see Breaking changes in 7.3.
Known issues
- Applying deletes or updates on an index after it has been shrunk may corrupt the index. In order to prevent this issue, it is recommended to stop shrinking read-write indices. For read-only indices, it is recommended to force-merge indices after shrinking, which significantly reduces the likeliness of this corruption in the case that deletes/updates would be applied by mistake. This bug is fixed in Elasticsearch 7.7 and later versions. More details can be found on the corresponding issue.
- Indices created in 6.x with
date
anddate_nanos
fields using formats that are incompatible with java.time patterns will cause parsing errors, incorrect date calculations or wrong search results. https://github.com/elastic/elasticsearch/pull/52555 This is fixed in Elasticsearch 7.7 and later versions.
Breaking changes
CCR
Data Frame
- Removing format support in date_histogram group_by #43659
Breaking Java changes
Mapping
Search
- Refactor IndexSearcherWrapper to disallow the wrapping of IndexSearcher #43645
Deprecations
Features/Java High Level REST Client
- Deprecate native code info in xpack info api #43297
Mapping
Network
- Deprecate transport profile security type setting #43237
Search
New features
Aggregations
- Adds a minimum interval to
auto_date_histogram
. #42814 (issue: #41757) - Add RareTerms aggregation #35718 (issue: #20586)
Audit
Data Frame
- Add sync api #41800
Infra/Settings
- Consistent Secure Settings #40416
Machine Learning
- Machine learning data frame analytics #43544
Mapping
Ranking
- Move dense_vector and sparse_vector to module #43280
SQL
Search
Enhancements
Aggregations
- Allocate memory lazily in BestBucketsDeferringCollector #43339 (issue: #43091)
- Reduce the number of docvalues iterator created in the global ordinals fielddata #43091
Analysis
- Return reloaded analyzers in _reload_search_ananlyzer response #43813 (issue: #43804)
- Allow reloading of search time analyzers #43313 (issue: #29051)
- Allow reloading of search time analyzers #42888 (issue: #29051)
- Allow reloading of search time analyzers #42669 (issue: #29051)
Authentication
- Always attach system user to internal actions #43468 (issue: #42215)
- Add kerberos grant_type to get token in exchange for Kerberos ticket #42847 (issue: #41943)
- Permit API Keys on Basic License #42787
Authorization
- Add “manage_api_key” cluster privilege #43728 (issue: #42020)
- Use separate BitSet cache in Doc Level Security #43669 (issue: #30974)
- Support builtin privileges in get privileges API #42134 (issue: #29771)
CCR
Cluster Coordination
- Ignore unknown fields if overriding node metadata #44689
- Add voting-only master node #43410 (issue: #14340)
- Defer reroute when nodes join #42855
- Stop SeedHostsResolver on shutdown #42844
- Log leader and handshake failures by default #42342 (issue: #42153)
Data Frame
- Add a frequency option to transform config, default 1m #44120
- Add node attr to GET _stats #43842 (issue: #43743)
- Add deduced mappings to _preview response payload #43742 (issue: #39250)
- Add support for allow_no_match for endpoints #43490 (issue: #42766)
- Add version and create_time to transform config #43384 (issue: #43037)
- Have sum map to a double to prevent overflows #43213
- Add new pipeline field to dest config #43124 (issue: #43061)
- Write a warning audit on bulk index failures #43106
- Add support for weighted_avg agg #42646
Distributed
Engine
- Use reader attributes to control term dict memory useage #42838 (issue: #38390)
- Remove sort by primary term when reading soft-deletes #43845
- Refresh translog stats after translog trimming in NoOpEngine #43825 (issue: #43156)
- Expose translog stats in ReadOnlyEngine #43752
- Do not use soft-deletes to resolve indexing strategy #43336 (issues: #35230, #42979, #43202)
- Rebuild version map when opening internal engine #43202 (issues: #40741, #42979)
- Only load FST off heap if we are actually using mmaps for the term dictionary #43158 (issue: #43150)
- Trim translog for closed indices #43156 (issue: #42445)
- Also mmap terms index (
.tip
) files for hybridfs #43150 (issue: #42838) - Add a merge policy that prunes ID postings for soft-deleted but retained documents #40741
Features/Indices APIs
Features/Ingest
- Avoid HashMap construction on Grok non-match #42444
- Improve how internal representation of pipelines are updated #42257
Features/Java High Level REST Client
- Add _reload_search_analyzers endpoint to HLRC #43733 (issue: #43313)
- Bulk processor concurrent requests #41451
Features/Java Low Level REST Client
Features/Monitoring
- Expand beats_system role privileges #40876
Features/Watcher
- Improve CryptoService error message on missing secure file #43623 (issue: #43619)
- Watcher: Allow to execute actions for each element in array #41997 (issue: #34546)
Infra/Core
- Shortcut simple patterns ending in
*
#43904 - Prevent merging nodes’ data paths #42665 (issue: #42489)
- Deprecation info for joda-java migration on 7.x #42659 (issue: #42010)
- Implement XContentParser.genericMap and XContentParser.genericMapOrdered methods #42059
Infra/Packaging
- Omit JDK sources archive from bundled JDK #42821
Infra/Plugins
- Enable node roles to be pluggable #43175
Infra/Scripting
- Add annotations to Painless whitelist #43239
- Add painless method getByPath, get value from nested collections with dotted path #43170 (issue: #42769)
- Add painless method getByPath, get value from nested collections with dotted path #43129 (issue: #42769)
Machine Learning
- Add version and create_time to data frame analytics config #43683
- Improve message when native controller cannot connect #43565 (issue: #42341)
- Report exponential_avg_bucket_processing_time which gives more weight to recent buckets #43189 (issue: #29857)
- Adding support for geo_shape, geo_centroid, geo_point in datafeeds #42969 (issue: #42820)
- Report timing stats as part of the Job stats response #42709 (issue: #29857)
- Increase maximum forecast interval to 10 years. #41082 (issue: #41103)
- Upgrade to a newer version of the Apache Portable Runtime library. #495
- Improve stability of modelling around change points. #496
- Restrict detection of epoch timestamps in find_file_structure #43188
- Better detection of binary input in find_file_structure #42707
- Add a limit on line merging in find_file_structure #42501 (issue: #38086)
- Improve file structure finder timestamp format determination #41948 (issues: #35132, #35137, #38086)
- Add earliest and latest timestamps to field stats in find_file_structure response #42890
- Change dots in CSV column names to underscores in find_file_structure response #42839 (issue: #26800)
Mapping
- Add dims parameter to dense_vector mapping #43444
- Added parsing of erroneous field value #42321 (issue: #41372)
Network
- Do not hang on unsupported HTTP methods #43362
Ranking
- Fix parameter value for calling data.advanceExact #44205
- Distance measures for dense and sparse vectors #37947 (issue: #31615)
Recovery
- Make peer recovery send file info step async #43792 (issue: #36195)
- Make peer recovery clean files step async #43787 (issue: #36195)
Reindex
Search
- Split search in two when made against read-only and write indices #42510 (issue: #40900)
- Rename SearchRequest#crossClusterSearch #42363
- Allow
fields
to be set to*
#42301 (issue: #39577) - Search - enable low_level_cancellation by default. #42291 (issue: #26258)
- Cut over ClusterSearchShardsGroup to Writeable #41788
- Disable max score optimization for queries with unbounded max scores #41361
Snapshot/Restore
- Recursive Delete on BlobContainer #43281 (issue: #42189)
- Add SAS Token Authentication Support to Azure Repo Plugin #42982 (issue: #42117)
- Enable Parallel Deletes in Azure Repository #42783
- Add Ability to List Child Containers to BlobContainer #42653 (issue: #42189)
- Add custom metadata to snapshots #41281 (issue: #40638)
Store
Bug fixes
Aggregations
- Fix incorrect calculation of how many buckets will result from a merge #44461 (issue: #43577)
- Set document on script when using Bytes.WithScript #43390
- Bug fix to allow access to top level params in reduce script #42096 (issue: #42046)
Allocation
- Do not copy initial recovery filter during split #44053 (issue: #43955)
- Avoid parallel reroutes in DiskThresholdMonitor #43381 (issue: #40174)
- Reset failed allocation counter before executing routing commands #42658 (issue: #39546)
- Validate routing commands using updated routing state #42066 (issue: #41050)
Analysis
- Fix AnalyzeAction response serialization #44284 (issue: #44078)
- Actually close IndexAnalyzers contents #43914
- Issue deprecation warnings for preconfigured delimited_payload_filter #43684 (issues: #26625, #43568)
- Use preconfigured filters correctly in Analyze API #43568 (issue: #43002)
- Require [articles] setting in elision filter #43083 (issue: #43002)
Authentication
CCR
- Skip update if leader and follower settings identical #44535 (issue: #44521)
- Avoid stack overflow in auto-follow coordinator #44421 (issue: #43251)
- Avoid NPE when checking for CCR index privileges #44397 (issue: #44172)
- CCR should not replicate private/internal settings #43067 (issue: #41268)
CRUD
- Fix NPE when rejecting bulk updates #42923
- Fix “size” field in the body of AbstractBulkByScrollRequest #35742 (issue: #35636)
Cluster Coordination
- Local node is discovered when cluster fails #43316
- Reset state recovery after successful recovery #42576 (issue: #39172)
- Cluster state from API should always have a master #42454 (issues: #38331, #38432)
- Omit non-masters in ClusterFormationFailureHelper #41344
Data Frame
- Treat bulk index failures as an indexing failure #44351 (issue: #44101)
- Responding with 409 status code when failing _stop #44231 (issue: #44103)
- Adds index validations to _start data frame transform #44191 (issue: #44104)
- Data frame task failure do not make a 500 response #44058 (issue: #44011)
- Audit message missing for autostop #43984 (issue: #43977)
- Add data frame transform cluster privileges to HLRC #43879
- Improve pivot nested field validations #43548
- Adjusting error message #43455
- Size the GET stats search by number of Ids requested #43206 (issue: #43203)
- Rewrite start and stop to answer with acknowledged #42589 (issue: #42450)
- Set data frame transform task state to stopped when stopping #42516 (issue: #42441)
Distributed
- Fix DefaultShardOperationFailedException subclass xcontent serialization #43435 (issue: #43423)
- Advance checkpoints only after persisting ops #43205
- Avoid loading retention leases while writing them #42620 (issue: #41430)
- Do not use ifSeqNo for update requests on mixed cluster #42596 (issue: #42561)
- Ensure relocation target still tracked when start handoff #42201
Engine
- AsyncIOProcessor preserve thread context #43729
- Account soft deletes for committed segments #43126 (issue: #43103)
- Prune _id of only docs below local checkpoint of safe commit #43051 (issues: #40741, #42979)
- Improve translog corruption detection #42744 (issue: #42661)
Features/CAT APIs
Features/ILM
- Fix swapped variables in error message #44300
- Account for node versions during allocation in ILM Shrink #43300 (issue: #41879)
- Narrow period of Shrink action in which ILM prevents stopping #43254 (issue: #43253)
- Make ILM force merging best effort #43246 (issues: #42824, #43245)
Features/Indices APIs
- Check shard limit after applying index templates #44619 (issues: #34021, #44567, #44619)
- Validate index settings after applying templates #44612 (issues: #34021, #44567)
- Prevent NullPointerException in TransportRolloverAction #43353 (issue: #43296)
Features/Ingest
- Read the default pipeline for bulk upsert through an alias #41963
Features/Java High Level REST Client
Features/Stats
Features/Watcher
- NullPointerException when creating a watch with Jira action (#41922) #42081
- fix unlikely bug that can prevent Watcher from restarting #42030
Infra/Core
- Add default CLI JVM options #44545 (issues: #219, #42021)
- scheduleAtFixedRate would hang #42993 (issue: #38441)
- Only ignore IOException when fsyncing on dirs #42972 (issue: #42950)
- Fix alpha build error message when generate version object from version string #40406
- Bat scripts to work with JAVA_HOME with parantheses #39712 (issues: #30606, #33405, #38578, #38624)
- Change licence expiration date pattern #39681 (issue: #39136)
Infra/Packaging
- Restore setting up temp dir for windows service #44541
- Fix the bundled jdk flag to be passed through windows startup #43502
Infra/Plugins
Infra/REST API
- Remove deprecated _source_exclude and _source_include from get API spec #42188
Infra/Scripting
- Allow aggregations using expressions to use _score #42652
Machine Learning
- Update .ml-config mappings before indexing job, datafeed or df analytics config #44216 (issue: #44263)
- Wait for .ml-config primary before assigning persistent tasks #44170 (issue: #44156)
- Fix ML memory tracker lockup when inner step fails #44158 (issue: #44156)
- Reduce false positives associated with the multi-bucket feature. #491
- Reduce false positives for sum and count functions on sparse data. #492
- Fix an edge case causing spurious anomalies (false positives) if the variance in the count of events changed significantly throughout the period of a seasonal quantity. (See #489.)
Mapping
- Ensure field caps doesn’t error on rank feature fields. #44370 (issue: #44330)
- Prevent types deprecation warning for indices.exists requests #43963 (issue: #43905)
- Fix index_prefix sub field name on nested text fields #43862 (issue: #43741)
- Fix possible NPE in put mapping validators #43000 (issue: #37675)
- Allow big integers and decimals to be mapped dynamically. #42827 (issue: #37846)
Network
- Reconnect remote cluster when seeds are changed #43379 (issue: #37799)
- Don’t require TLS for single node clusters #42826
- Fix Class Load Order in Netty4Plugin #42591 (issue: #42532)
Recovery
- Ensure to access RecoveryState#fileDetails under lock #43839
- Make Recovery API support
detailed
params #29076 (issue: #28910)
Reindex
- Properly serialize remote query in ReindexRequest #43457 (issues: #43406, #43456)
- Fixing handling of auto slices in bulk scroll requests #43050
- Remote reindex failure parse fix #42928
- Fix concurrent search and index delete #42621 (issue: #28053)
- Propogate version in reindex from remote search #42412 (issue: #31908)
SQL
- SQL: change the size of the list of concrete indices when resolving multiple indices #43878 (issue: #43876)
- SQL: handle double quotes escaping #43829 (issue: #43810)
- SQL: add pretty printing to JSON format #43756
- SQL: handle SQL not being available in a more graceful way #43665 (issue: #41279)
- SQL: fix NPE in case of subsequent scrolled requests for a CSV/TSV formatted response #43365 (issue: #43327)
- Geo: Add coerce support to libs/geo WKT parser #43273 (issue: #43173)
- SQL: Increase hard limit for sorting on aggregates #43220 (issue: #43168)
- SQL: Fix wrong results when sorting on aggregate #43154 (issue: #42851)
- SQL: cover the Integer type when extracting values from _source #42859 (issue: #42858)
Search
- Don’t use index_phrases on graph queries #44340 (issue: #43976)
- Fix wrong logic in
match_phrase
query with multi-word synonyms #43941 (issue: #43308) - Fix UOE on search requests that match a sparse role query #43668 (issue: #42857)
- Fix propagation of enablePositionIncrements in QueryStringQueryBuilder #43578 (issue: #43574)
- Fix score mode of the MinimumScoreCollector #43527 (issue: #43497)
- Fix round up of date range without rounding #43303 (issue: #43277)
- SearchRequest#allowPartialSearchResults does not handle successful retries #43095 (issue: #40743)
- Wire query cache into sorting nested-filter computation #42906 (issue: #42813)
- Fix auto fuzziness in query_string query #42897
- Fix IntervalBuilder#analyzeText to never return
null
#42750 (issue: #42587) - Fix sorting on nested field with unmapped #42451 (issue: #33644)
- Deduplicate alias and concrete fields in query field expansion #42328
Security
- Do not swallow I/O exception getting authentication #44398 (issues: #44172, #44397)
- Use system context for looking up connected nodes #43991 (issue: #43974)
- SecurityIndexSearcherWrapper doesn’t always carry over caches and similarity #43436
- Detect when security index is closed #42191
Snapshot/Restore
- Check again on-going snapshots/restores of indices before closing #43873
- Fix Azure List by Prefix Bug #42713
Store
- Remove usage of FileSwitchDirectory #42937 (issue: #37111)
- Fix Infinite Loops in ExceptionsHelper#unwrap #42716 (issue: #42340)
Suggesters
- Fix suggestions for empty indices #42927 (issue: #42473)
- Skip explain phase when only suggestions are requested #41739 (issue: #31260)
Regressions
Infra/Core
Upgrades
Discovery-Plugins
- Upgrade AWS SDK to Latest Version #42708
Engine
- Upgrade to Lucene 8.1.0 #42214
Infra/Core
- Upgrade HPPC to version 0.8.1 #43025
Network
Snapshot/Restore
- Upgrade GCS Repository Dependencies #43142