WARNING: Version 2.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.
2.2.0 Release Notes
edit2.2.0 Release Notes
editAlso see Breaking changes in 2.2.
Breaking changes
edit- Index APIs
- Scripting
Deprecations
edit- Java API
- Plugin Discovery Multicast
- Query DSL
- Search
New features
editEnhancements
edit- Aliases
- Allocation
- Analysis
- CAT API
- Cluster
-
- 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)
- Split cluster state update tasks into roles #15159
- 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
-
- 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)
- Make PerThreadIDAndVersionLookup per-segment #14070
- Verify Checksum once it has been fully written to fail as soon as possible #13896
- Discovery
- Exceptions
- Fielddata
-
- Update GeoPoint FieldData for GeoPointV2 #14345
- Geo
- Index APIs
- Index Templates
- Internal
-
- 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
- TransportNodesAction shouldn’t hold on to cluster state #13948
- 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)
- Factor expressions scripts out to lang-expression plugin #13726 (issue: #13725)
- Java API
-
- TransportClient: Add exception when using plugin.types, to help migration to addPlugin #15943 (issue: #15693)
- Align handling of interrupts in BulkProcessor #15527 (issue: #14833)
- BulkProcessor backs off exponentially by default #15513 (issue: #14829)
- Add java API for synced flush #15396 (issue: #12812)
- Allow to get and set ttl as a time value/string #15239 (issue: #15047)
- 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
-
- Make mapping serialization more robust. #15480
- Make mappings immutable. #15313 (issue: #9365)
- Make MappedFieldType.checkTypeName part of MappedFieldType.checkCompatibility. #15245
- throw exception if a copy_to is within a multi field #15213 (issues: #10802, #14946)
- Register field mappers at the node level. #14896 (issue: #14828)
- Network
- Packaging
-
- 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
- Packaging: change permissions/ownership of config dir #14017 (issue: #11016)
- Release: Fix package repo path to only consist of major version #13971 (issue: #12493)
- Nuke ES_CLASSPATH appending, JarHell fail on empty classpath elements #13880 (issues: #13812, #13864)
- 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
- Plugin Cloud AWS
- Plugin Cloud Azure
- Plugin Cloud GCE
- Plugin Discovery EC2
- Plugin Mapper Attachment
-
- Backport mapper-attachments plugin to 2.x #14902
- Plugin Repository S3
- 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
- Check "plugin already installed" before jar hell check. #14207 (issue: #14205)
- Plugin script to set proper plugin bin dir attributes #14088 (issue: #11016)
- Plugin script to set proper plugin config dir attributes #14048 (issue: #11016)
- Query DSL
- REST
- Recovery
- Scripting
- Search
- 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
-
- 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)
- Pass extended bounds into HistogramAggregator when creating an unmapped aggregator #14742 (issue: #14735)
- Added correct generic type parameter on ScriptedMetricBuilder #14018 (issue: #13986)
- Aliases
- Allocation
-
- 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)
- Bulk
- CAT API
-
- Properly set indices and indicesOptions on subrequest made by /_cat/indices #14360
- CRUD
- Cluster
- 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)
- Use fresh index settings instead of relying on @IndexSettings #14578 (issue: #14319)
- 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)
- Engine
-
- Never wrap searcher for internal engine operations #14071
- Exceptions
- Fielddata
-
- Don’t cache top level field data for fields that don’t exist #14693
- Geo
- 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) - Restore previous optimize transport action name for bw comp #14221 (issue: #13778)
-
Forbid index name
.
and..
#13862 (issue: #13858)
- Internal
-
- Log uncaught exceptions from scheduled once tasks #15824 (issue: #15814)
- 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
- Properly bind ClassSet extensions as singletons #14232 (issue: #14194)
- Streamline top level reader close listeners and forbid general usage #14084
- Gateway: a race condition can prevent the initial cluster state from being recovered #13997
- Verify actually written checksum in VerifyingIndexOutput #13848
- 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
-
- 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
- Fix copy_to when the target is a dynamic object field. #15385 (issue: #11237)
- 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
- Multi field names may not contain dots #15118 (issue: #14957)
- Mapping: Allows upgrade of indexes with only search_analyzer specified #14677 (issue: #14383)
- Packaging
- Plugin Cloud AWS
- Plugin Delete By Query
- Plugin Mapper Attachment
-
- Fix toXContent() for mapper attachments field #15110
- Plugin Repository S3
- Plugins
- Query DSL
- REST
-
- Throw exception when trying to write map with null keys #15479 (issue: #14346)
- XContentFactory.xContentType: allow for possible UTF-8 BOM for JSON XContentType #14611 (issue: #14442)
- Restore support for escaped / as part of document id #14216 (issues: #13665, #13691, #14177)
-
Add missing REST spec for
detect_noop
#14004 - Expose nodes operation timeout in REST API #13981
- Ensure XContent is consistent across platforms #13816
- Recovery
- Scripting
- Search
- Settings
-
- TransportClient should use updated setting for initialization of modules and service #16095
- Shadow Replicas
- Snapshot/Restore
- Stats
- Translog
-
- Make sure IndexShard is active during recovery so it gets its fair share of the indexing buffer #16209 (issue: #16206)
- Avoid circular reference in exception #15952 (issue: #15941)
- Initialize translog before scheduling the sync to disk #15881
- Translog base flushes can be disabled after replication relocation or slow recovery #15830 (issues: #10624, #15814)
- Catch tragic even inside the checkpoint method rather than on the caller side #15825
- 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
- Tribe Node
Regressions
edit- Analysis
- Internal
- Plugin Cloud Azure
- Query DSL
Upgrades
edit- Core
-
- Upgrade to lucene-5.4.1. #16160
- Upgrade to lucene-5.4.0. #15477
- 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
- Network
-
- Upgrade Netty to 3.10.5.final #14105
- Plugin Discovery Azure
- Plugin Discovery EC2
-
- Upgrade to aws 1.10.33 #14672
- Plugin Lang JS
-
- upgrade rhino for plugins/lang-javascript #14466