2.1.0 Release Notesedit

Also see Breaking changes in 2.1 for important changes in this release.

Breaking changesedit

CRUD
Fielddata
  • Remove the experimental indices.fielddata.cache.expire #13173 (issue: #10781)
Index APIs
  • Add Force Merge API, deprecate Optimize API #13778
Internal
Java API
  • Deprecates defaultRescoreWindowSize #13995
Nested Docs
  • If sorting by nested field then the nested_path should always be specified #13429 (issue: #13420)
Search
  • Limit the size of the result window to a dynamic property #13188 (issue: #9311)
Stats
  • The queue_size value should be shown as an integer. #13063 (issue: #10404)

Deprecationsedit

Java API
  • Deprecate the count api in favour of search with size 0 #14165 (issue: #13928)
Parent/Child
  • Deprecate score_type option in favour of the score_mode option #13478
Query DSL
Search
  • Deprecate _search/exists in favour of regular _search with size 0 and terminate_after 1 #13910 (issue: #13682)
  • Deprecate the scan search type. #12994 (issue: #12983)

New featuresedit

Aggregations
  • Add percentiles_bucket pipeline aggregation #13186
  • Add stats_bucket / extended_stats_bucket pipeline aggs #13128
Analysis
Geo
  • Adds geo_centroid metric aggregator #13846 (issue: #13621)

Enhancementsedit

Allocation
  • 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
CAT API
  • Add duration field to /_cat/snapshots #14385
  • Add cat API for repositories and snapshots #14247 (issue: #13919)
  • Adds disk used by indices to _cat/allocation #13783 (issue: #13529)
Core
  • Verify Checksum once it has been fully written to fail as soon as possible #13896
Exceptions
  • 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
  • Validate class before cast. #12913 (issue: #12842)
  • Improve error message of ClassCastExceptions #12821 (issue: #12135)
Geo
Index APIs
Index Templates
  • Accumulate validation errors when validating index templates #12901 (issue: #12900)
Internal
  • Fix dangling comma in ClusterBlock#toString #14483
  • Improve some logging around master election and cluster state #14481
  • Add workaround for JDK-8014008 #14274
  • Cleanup IndexMetaData #14119
  • More helpful error message on parameter order #13737
  • 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)
  • Remove and forbid use of com.google.common.collect.ImmutableList #13227 (issue: #13224)
  • Remove and forbid use of com.google.common.collect.Lists #13170
  • Remove unused code from query_string parser and settings #13098
  • Consolidate duplicate logic in RoutingTable all*ShardsGrouped #13082 (issue: #13081)
  • Turn DestructiveOperations.java into a Guice module. #13046 (issue: #4665)
  • Remove CachedDfSource #12973 (issue: #12864)
  • Enable indy (invokedynamic) compile flag for Groovy scripts by default #8201 (issue: #8184)
Java API
  • Prevents users from building a BulkProcessor with a null client #12497
Logging
  • Move logging for the amount of free disk to TRACE #14403 (issue: #12843)
Packaging
  • 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
  • Remove JAVA_HOME detection from the debian init script #13514 (issues: #13403, #9774)
Plugin Cloud AWS
Plugin Cloud GCE
  • cloud-gce plugin should check discovery.type #13809 (issue: #13614)
Plugin Discovery EC2
  • Adding US-Gov-West #14358
  • Improved building of disco nodes #14155
Plugin Repository S3
Plugins
  • Don’t be lenient in PluginService#processModule(Module) #14306
  • Adds a validation for plugins script to check if java is set #13633 (issue: #13613)
  • Plugins: Removed plugin.types #13055
  • Improve java version comparison and explicitly enforce a version format #13010 (issues: #12441, #13009)
  • Output plugin info only in verbose mode #12908 (issue: #12907)
Query DSL
  • Internal: simplify filtered query conversion to lucene query #13312 (issue: #13272)
  • Remove unsupported rewrite from multi_match query builder #13073 (issue: #13069)
  • Remove unsupported rewrite option from match query builder #13069
  • Make FunctionScore work on unmapped field with missing parameter #13060 (issue: #10948)
Scripting
  • Add property permissions so groovy scripts can serialize json #14500 (issue: #14488)
Scroll
  • Optimize sorted scroll when sorting by _doc. #12983
Search
  • fix numerical issue in function score query #14085
  • Optimize scrolls for constant-score queries. #13311
  • Optimize counts on simple queries. #13037
Search Templates
  • Adds template support to _msearch resource #12414 (issue: #10885)
Snapshot/Restore
  • Simplify the BlobContainer blob writing interface #13434
  • Add readonly option for repositories #13144 (issues: #11753, #7831)
Stats
  • Add os.allocated_processors stats #14409 (issue: #13917)
  • Adds stats counter for failed indexing requests #13130 (issue: #8938)

Bug fixesedit

Aggregations
  • 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)
  • Estimate HyperLogLog bias via k-NN regression #13243
Allocation
  • 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)
CAT API
  • Properly set indices and indicesOptions on subrequest made by /_cat/indices #14360
CRUD
  • Index name expressions should not be broken up #13691 (issue: #13665)
Cluster
  • Handle shards assigned to nodes that are not in the cluster state #14586 (issue: #14584)
Core
  • Use fresh index settings instead of relying on @IndexSettings #14578 (issue: #14319)
  • Fork Lucene PatternTokenizer to apply LUCENE-6814 (closes #13721) #14571 (issue: #13721)
  • 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
  • Fix ensureNodesAreAvailable’s error message #14007 (issue: #13957)
Fielddata
  • Don’t cache top level field data for fields that don’t exist #14693
Geo
  • 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)
Index APIs
  • 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)
Index Templates
  • Validate settings specified in index templates at template creation time #12892 (issue: #12865)
Internal
  • fix mvn verify on jigsaw with 2.1 #14750
  • 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
Logging
  • Don’t log multi-megabyte guice exceptions. #13782
  • Moving system property setting to before it can be used #13660 (issue: #13658)
Mapping
  • Make _type use doc values #14783 (issue: #14781)
  • Mapping: Allows upgrade of indexes with only search_analyzer specified #14677 (issue: #14383)
Packaging
  • 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
  • Remove unnecessary usage of extra index searchers #12864
Plugin Delete By Query
  • Fix Delete-by-Query with Shield #14658 (issue: #14527)
  • Delete by query to not wrap the inner query into an additional query element #14302 (issue: #13326)
Plugins
  • Fix plugin list command error message #14288 (issue: #14287)
  • Fix HTML response during redirection #11374 (issue: #11370)
REST
  • 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)
Search
  • Fix the quotes in the explain message for a script score function without parameters #11398
Settings
  • ByteSizeValue.equals should normalize units #13784
Snapshot/Restore
  • 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
  • Add extra validation into cluster/stats #14699 (issue: #7390)
  • Omit current* stats for OldShardStats #13801 (issue: #13386)
Translog
  • 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)

Regressionsedit

Internal

Upgradesedit

Core
  • Upgrade Lucene to 5.3.1 #14669
  • Upgrade to lucene-5.3.0. #13239
Geo
  • Update to spatial4j 0.5 for correct Multi-Geometry #14269 (issue: #9904)
Internal
Plugin Cloud AWS
Plugin Discovery EC2
  • Upgrade to aws 1.10.33 #14672