WARNING: Version 5.4 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
5.0.0-alpha1 Release Notes (Changes previously released in 2.x)
edit5.0.0-alpha1 Release Notes (Changes previously released in 2.x)
editThe changes listed below were first released in the 2.x series. Changes released for the first time in Elasticsearch 5.0.0-alpha1 are listed in 5.0.0-alpha1 Release Notes.
Breaking changes
edit- Index APIs
- Internal
- Logging
- Mapping
- Nested Docs
- Scripting
- Search
Breaking Java changes
edit- Allocation
-
- Speed up shard balancer by reusing shard model while moving shards that can no longer be allocated to a node #16926
New features
editEnhancements
edit- Aliases
- Allocation
-
- Skip capturing least/most FS info for an FS with no total #16001 (issue: #15919)
- Speed improvements for BalancedShardsAllocator #15678 (issue: #6372)
- Simplify delayed shard allocation #14808
- Add cluster-wide setting for total shard limit #14563 (issue: #14456)
- Early terminate high disk watermark checks on single data node cluster #13882 (issue: #9391)
- Also use PriorityComparator in shard balancer #13256 (issue: #13249)
- Add support for filtering by publish IP address #8801
- Analysis
- CAT API
- Cluster
-
- Shard state action request logging #16396
- Safe cluster state task notifications #15777
- Reroute once per batch of shard failures #15510
- Add callback for publication of new cluster state #15494 (issue: #15482)
- Use general cluster state batching mechanism for shard started #15023 (issues: #14725, #14899)
- Use general cluster state batching mechanism for shard failures #15016 (issues: #14725, #14899)
- Set an newly created IndexShard’s ShardRouting before exposing it to operations #14918 (issue: #10708)
- Uniform exceptions for TransportMasterNodeAction #14737
- Core
-
- Remove log4j exception hiding #16834
- Avoid cloning MessageDigest instances #16479
- Add a hard check to ensure we are running with the expected lucene version #16305 (issue: #16301)
- If we can’t get a MAC address for the node, use a dummy one #15266 (issue: #10099)
- Simplify shard inactive logging #15259 (issue: #15252)
- Simplify IndexingMemoryController#checkIdle #15252 (issue: #15251)
- IndexingMemoryController should not track shard index states #15251 (issues: #13918, #15225)
- Verify Checksum once it has been fully written to fail as soon as possible #13896
- Discovery
- Exceptions
-
- Added file name to exceptions when failing to read index state #16850 (issue: #16713)
-
Add Exception class name to message in
NotSerializableExceptionWrapper
#16325 - Deduplicate cause if already contained in shard failures #14432
- Give a better exception when running from freebsd jail without enforce_statfs=1 #14135 (issue: #12018)
- Make root_cause of field conflicts more obvious #13976 (issue: #12839)
- Use a dedicated id to serialize EsExceptions instead of it’s class name. #13629
- Fielddata
-
- Update GeoPoint FieldData for GeoPointV2 #14345
- Geo
- Index APIs
- Index Templates
- Internal
-
- Implement available for all StreamInput classes #17218
- Cleanup search sub transport actions and collapse o.e.action.search.type package into o.e.action.search #16758 (issue: #11710)
- Simplify the Text API. #15511
- Simpler using compressed oops flag representation #15509 (issue: #15489)
- Info on compressed ordinary object pointers #15489 (issues: #13187, #455)
- Explicitly log cluster state update failures #15428 (issues: #14899, #15016, #15023)
- Use transport service to handle RetryOnReplicaException to execute replica action on the current node #15363
- Make IndexShard operation be more explicit about whether they are expected to run on a primary or replica #15282
- Avoid trace logging allocations in TransportBroadcastByNodeAction #15221
- Only trace log shard not available exceptions #14950 (issue: #14927)
- Transport options should be immutable #14760
- Fix dangling comma in ClusterBlock#toString #14483
- Improve some logging around master election and cluster state #14481
- Add System#exit(), Runtime#exit() and Runtime#halt() to forbidden APIs #14473 (issue: #12596)
- Simplify XContent detection. #14472
- Add threadgroup isolation. #14353
- Cleanup plugin security #14311
- Add workaround for JDK-8014008 #14274
- Refactor retry logic for TransportMasterNodeAction #14222
- Remove MetaDataSerivce and it’s semaphores #14159 (issue: #1296)
- Cleanup IndexMetaData #14119
- Add SpecialPermission to guard exceptions to security policy. #13854
- Clean up scripting permissions. #13844
- Factor groovy out of core into lang-groovy #13834 (issue: #13725)
- More helpful error message on parameter order #13737
- Factor expressions scripts out to lang-expression plugin #13726 (issue: #13725)
- Cleanup InternalClusterInfoService #13543
- Remove and forbid use of com.google.common.base.Throwables #13409 (issue: #13224)
- Remove cyclic dependencies between IndexService and FieldData / BitSet caches #13381
- Remove and forbid use of com.google.common.base.Objects #13355 (issue: #13224)
- Enable indy (invokedynamic) compile flag for Groovy scripts by default #8201 (issue: #8184)
- Java API
-
- Add created flag to IndexingOperationListener#postIndex #17340 (issue: #17333)
- Align handling of interrupts in BulkProcessor #15527 (issue: #14833)
- BulkProcessor backs off exponentially by default #15513 (issue: #14829)
- Reject refresh usage in bulk items when using and fix NPE when no source #15082 (issue: #7361)
- BulkProcessor retries after request handling has been rejected due to a full thread pool #14829 (issue: #14620)
- Logging
- Mapping
-
- Expose the reason why a mapping merge is issued. #16059 (issue: #15989)
-
Add sub-fields support to
bool
fields. #15636 (issue: #6587) - Improve cross-type dynamic mapping updates. #15633 (issue: #15568)
- Make mapping updates more robust. #15539
- Make mapping serialization more robust. #15480
- Make mappings immutable. #15313 (issue: #9365)
- Make MappedFieldType.checkTypeName part of MappedFieldType.checkCompatibility. #15245
- Register field mappers at the node level. #14896 (issue: #14828)
- Network
-
- Provide better error message when an incompatible node connects to a node #17182 (issue: #17090)
- Add additional fallback to http.publish_port and restrict fallback to transport.publish_port #16626 (issue: #14535)
- only allow code to bind to the user’s configured port numbers/ranges #14549
- Port of publishAddress should match port of corresponding boundAddress #14535 (issues: #14503, #14513, #14514)
- Packaging
-
- Windows service: Use JAVA_HOME environment variable in registry #16552 (issue: #13521)
- Default standard output to the journal in systemd #16159 (issues: #15315, #16134)
- Use egrep instead of grep -E for Solaris #15755 (issue: #15628)
- punch thru symlinks when loading plugins/modules #15311
- set ActiveProcessLimit=1 on windows #15055
- set RLIMIT_NPROC = 0 on bsd/os X systems. #15039
- Drop ability to execute on Solaris #14200
- Nuke ES_CLASSPATH appending, JarHell fail on empty classpath elements #13880 (issues: #13812, #13864)
- improve seccomp syscall filtering #13829
- Block process execution with seccomp on linux/amd64 #13753
- Get lang-javascript, lang-python, securemock ready for script refactoring #13695
- Remove some bogus permissions only needed for tests. #13620
- Remove java.lang.reflect.ReflectPermission "suppressAccessChecks" #13603
- Remove JAVA_HOME detection from the debian init script #13514 (issues: #13403, #9774)
- Plugin Cloud AWS
- Plugin Cloud Azure
- Plugin Cloud GCE
- Plugin Discovery EC2
-
- Adding US-Gov-West #14358
- Plugin Ingest Attachment
- Plugins
-
- Expose http.type setting, and collapse al(most all) modules relating to transport/http #15434 (issue: #14148)
- Ban RuntimePermission("getClassLoader") #15253
- Add nicer error message when a plugin descriptor is missing #15200 (issue: #15197)
- Don’t be lenient in PluginService#processModule(Module) #14306
- Adds a validation for plugins script to check if java is set #13633 (issue: #13613)
- Output plugin info only in verbose mode #12908 (issue: #12907)
- Query DSL
- REST
- Recovery
- Reindex API
- Scripting
-
- Remove suppressAccessChecks permission for Groovy script plugin #16839 (issue: #16527)
- Class permission for Groovy references #16660 (issue: #16657)
- Scripting: Allow to get size of array in mustache #16193
- Enhancements to the mustache script engine #15661
- Add property permissions so groovy scripts can serialize json #14500 (issue: #14488)
- Remove ScriptEngineService.unwrap. #13958
- Remove ScriptEngineService.execute. #13956
- Search
- Settings
-
- Log warning if max file descriptors too low #16506
- Snapshot/Restore
- Stats
- Top Hits
- Translog
-
- Check for tragic event on all kinds of exceptions not only ACE and IOException #15535
- Tribe Node
Bug fixes
edit- Aggregations
-
- Prevents exception being raised when ordering by an aggregation which wasn’t collected #17379 (issue: #17225)
- Setting other bucket on empty aggregation #17264 (issue: #16546)
- Build empty extended stats aggregation if no docs collected for bucket #16972 (issues: #16812, #9544)
- Set meta data for pipeline aggregations #16516 (issue: #16484)
- Filter(s) aggregation should create weights only once. #15998
-
Make
missing
on terms aggs work with all execution modes. #15746 (issue: #14882) - Run pipeline aggregations for empty buckets added in the Range Aggregation #15519 (issue: #15471)
- [Children agg] fix bug that prevented all child docs from being evaluated #15457
- Correct typo in class name of StatsAggregator #15321 (issue: #14730)
- Fix significant terms reduce for long terms #14948 (issue: #13522)
- Fix NPE in Derivative Pipeline when current bucket value is null #14745
- Pass extended bounds into HistogramAggregator when creating an unmapped aggregator #14742 (issue: #14735)
- Added correct generic type parameter on ScriptedMetricBuilder #14018 (issue: #13986)
- Pipeline Aggregations at the root of the agg tree are now validated #13475 (issue: #13179)
- Aliases
- Allocation
-
-
IndicesStore checks for
allocated elsewhere
for every shard not alocated on the local node #17106 - Prevent peer recovery from node with older version #15775
- Fix calculation of next delay for delayed shard allocation #14765
- Take ignored unallocated shards into account when making allocation decision #14678 (issue: #14670)
- Only allow rebalance operations to run if all shard store data is available #14591 (issue: #14387)
- Delayed allocation can miss a reroute #14494 (issues: #14010, #14011, #14445)
- Check rebalancing constraints when shards are moved from a node they can no longer remain on #14259 (issue: #14057)
-
IndicesStore checks for
- Analysis
- Bulk
- CAT API
- CRUD
- Cache
-
- Handle closed readers in ShardCoreKeyMap #16027
- Cluster
-
- Index deletes not applied when cluster UUID has changed #16825 (issue: #11665)
- Only fail the relocation target when a replication request on it fails #15791 (issue: #15790)
- Handle shards assigned to nodes that are not in the cluster state #14586 (issue: #14584)
- Bulk cluster state updates on index deletion #11258 (issue: #7295)
- Core
-
- BitSetFilterCache duplicates its content. #15836 (issue: #15820)
- Limit the max size of bulk and index thread pools to bounded number of processors #15585 (issue: #15582)
- AllTermQuery’s scorer should skip segments that never saw the requested term #15506
- Include root-cause exception when we fail to change shard’s index buffer #14867
- Restore thread interrupt flag after an InterruptedException #14799 (issue: #14798)
- Record all bytes of the checksum in VerifyingIndexOutput #13923 (issues: #13848, #13896)
- When shard becomes active again, immediately increase its indexing buffer #13918 (issue: #13802)
- Close TokenStream in finally clause #13870 (issue: #11947)
- LoggingRunnable.run should catch and log all errors, not just Exception? #13718 (issue: #13487)
- Exceptions
- Expressions
- Fielddata
-
- Don’t cache top level field data for fields that don’t exist #14693
- Geo
-
- Remove .geohash suffix from GeoDistanceQuery and GeoDistanceRangeQuery #15871 (issue: #15179)
- Geo: Allow numeric parameters enclosed in quotes for geohash_grid aggregation #14440 (issue: #13132)
- Resync Geopoint hashCode/equals method #14124 (issue: #14083)
- Fix GeoPointFieldMapper to index geohash at correct precision. #13649 (issue: #12467)
- Highlighting
- Index APIs
-
- Field stats: Index constraints should remove indices in the response if the field to evaluate is empty #14868
- Field stats: Fix NPE for index constraint on empty index #14841
-
Field stats: Added
format
option for index constraints #14823 (issue: #14804) -
Forbid index name
.
and..
#13862 (issue: #13858)
- Inner Hits
- Internal
-
- Log uncaught exceptions from scheduled once tasks #15824 (issue: #15814)
- FunctionScoreQuery should implement two-phase iteration. #15602
- Make sure the remaining delay of unassigned shard is updated with every reroute #14890 (issue: #14808)
- Throw a meaningful error when loading metadata and an alias and index have the same name #14842 (issue: #14706)
- fixup issues with 32-bit jvm #14609
- Failure to update the cluster state with the recovered state should make sure it will be recovered later #14485
- Gateway: a race condition can prevent the initial cluster state from being recovered #13997
- Verify actually written checksum in VerifyingIndexOutput #13848
- An inactive shard is activated by triggered synced flush #13802
- Remove all setAccessible in tests and forbid #13539
- Remove easy uses of setAccessible in tests. #13537
- Ban setAccessible from core code, restore monitoring stats under java 9 #13531 (issue: #13527)
- Logging
- Mapping
-
- Put mapping operations must update metadata of all types. #16264 (issue: #16239)
-
Fix serialization of
search_analyzer
. #16255 - Reuse metadata mappers for dynamic updates. #16023 (issue: #15997)
- Fix MapperService#searchFilter(…) #15923 (issue: #15757)
- Fix initial sizing of BytesStreamOutput. #15864 (issue: #15789)
- MetaDataMappingService should call MapperService.merge with the original mapping update. #15508
- MapperService: check index.mapper.dynamic during index creation #15424 (issue: #15381)
- Only text fields should accept analyzer and term vector settings. #15308
-
Mapper parsers should not check for a
tokenized
property. #15289 - Validate that fields are defined only once. #15243 (issue: #15057)
- Check mapping compatibility up-front. #15175 (issue: #15049)
- Don’t treat default as a regular type. #15156 (issue: #15049)
- Don’t ignore mapping merge failures. #15144 (issue: #15049)
- Treat mappings at an index-level feature. #15142
- Make _type use doc values #14783 (issue: #14781)
- Network
- Packaging
-
- Fix waiting for pidfile #16718 (issue: #16717)
- Fix Windows service installation failure #15549 (issue: #15349)
- Enable es_include at init #15173
- Handle system policy correctly #14704 (issue: #14690)
- Startup script exit status should catch daemonized startup failures #14170 (issue: #14163)
- Don’t let ubuntu try to install its crazy jayatana agent. #13813 (issue: #13785)
- Parent/Child
- Percolator
- Plugin Delete By Query
- Plugin Discovery GCE
- Plugin Mapper Attachment
-
- Fix toXContent() for mapper attachments field #15110
- Plugin Repository S3
- Plugins
- Query DSL
- REST
-
- Remove detect_noop from REST spec #16386
- Make text parsing less lenient. #15679
- Throw exception when trying to write map with null keys #15479 (issue: #14346)
- Fix OOM in AbstractXContentParser #15350 (issue: #15338)
- XContentFactory.xContentType: allow for possible UTF-8 BOM for JSON XContentType #14611 (issue: #14442)
- RestUtils.decodeQueryString ignores the URI fragment when parsing a query string #13365 (issue: #13320)
- Recovery
- Reindex API
- Scripting
- Search
-
- Do not apply minimum_should_match on auto generated boolean query if the coordination factor is disabled. #16155
- Do not apply minimum-should-match on a boolean query if the coords are disabled #16078 (issue: #15858)
- Fix blended terms take 2 #15894 (issue: #15860)
- Fix NPE when a segment with an empty cache gets closed. #15202 (issue: #15043)
- Fix the quotes in the explain message for a script score function without parameters #11398
- Settings
- Snapshot/Restore
-
- Prevent closing index during snapshot restore #16933 (issue: #16321)
- Add node version check to shard allocation during restore #16520 (issue: #16519)
- Snapshot restore and index creates should keep index settings and cluster blocks in sync #13931 (issue: #13213)
- Fix blob size in writeBlob() method #13574 (issue: #13434)
- Stats
- Task Manager
- Translog
-
- Never delete translog-N.tlog file when creation fails #15788
- Close recovered translog readers if createWriter fails #15762 (issue: #15754)
- Fail and close translog hard if writing to disk fails #15420 (issue: #15333)
- Prevent writing to closed channel if translog is already closed #15012 (issue: #14866)
- Don’t delete temp recovered checkpoint file if it was renamed #14872 (issue: #14695)
- Translog recovery can repeatedly fail if we run out of disk #14695
- Pending operations in the translog prevent shard from being marked as inactive #13759 (issue: #13707)
- Tribe Node
Regressions
edit- Analysis
- Internal
- Plugin Cloud Azure
- REST
Upgrades
edit- Core
-
- Upgrade to Lucene 5.5.0 official release #16742
- Upgrade to lucene 5.5.0-snapshot-850c6c2 #16615
- Upgrade to lucene 5.5.0-snapshot-4de5f1d #16400 (issues: #16373, #16399)
- Update lucene to r1725675 #16114
- Upgrade to lucene-5.5.0-snapshot-1721183. #15575
- Upgrade Lucene to 5.4.0-snapshot-1715952 #14951
- Upgrade Lucene to 5.4.0-snapshot-1714615 #14784
- Upgrade to lucene-5.4.0-snapshot-1712973. #14619
- update to lucene-5.4.x-snapshot-1711508 #14398
- Upgrade to lucene-5.4-snapshot-1710880. #14320
- Upgrade to lucene-5.4-snapshot-1708254. #14074
- upgrade lucene to r1702265 #13439
- Upgrade master to lucene 5.4-snapshot r1701068 #13324
- Geo
- Internal
- Plugin Cloud AWS
- Plugin Cloud Azure
- Plugin Discovery Azure
- Plugin Discovery EC2
-
- Upgrade to aws 1.10.33 #14672
- Plugin Lang JS
-
- upgrade rhino for plugins/lang-javascript #14466
- Scripting