2.3.0 Release Notesedit

Also see Breaking changes in 2.3.

Breaking changesedit

Allocation
  • Speed up shard balancer by reusing shard model while moving shards that can no longer be allocated to a node #16926
Mapping
  • Add per-index setting to limit number of nested fields #15989 (issue: #14983)

Deprecationsedit

Geo
Plugin Discovery Multicast
  • Deprecate Discovery Multicast Plugin #16949 (issue: #16910)
Query DSL
  • Add deprecation logging for deprecated queries. #16901 (issue: #16885)

New featuresedit

Reindex API
  • Backport reindex to 2.x #17060
Task Manager
  • Backport of task management api to 2x #16959

Enhancementsedit

Allocation
  • Skip capturing least/most FS info for an FS with no total #16001 (issue: #15919)
  • Speed improvements for BalancedShardsAllocator #15678 (issue: #6372)
Cache
  • Make TermsQuery considered costly. #16851
Cluster
  • Shard state action request logging #16396
  • Safe cluster state task notifications #15777
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)
Exceptions
  • Added file name to exceptions when failing to read index state #16850 (issue: #16713)
  • Add Exception class name to message in NotSerializableExceptionWrapper #16325
Geo
  • Upgrade GeoPointField to use Lucene 5.5 PrefixEncoding #16482
Internal
  • Cleanup search sub transport actions and collapse o.e.action.search.type package into o.e.action.search #16758 (issue: #11710)
Java API
  • TransportClient: Add exception when using plugin.types, to help migration to addPlugin #15943 (issue: #15693)
Logging
Mapping
  • Add deprecation logging for mapping transform #16952 (issue: #16910)
  • 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
Network
  • Add additional fallback to http.publish_port and restrict fallback to transport.publish_port #16626 (issue: #14535)
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)
Plugin Cloud Azure
Plugin Discovery EC2
  • Add ap-northeast-2 (seoul) endpoints for EC2 discovery and S3 snapshots #16167 (issue: #16166)
Plugin Mapper Attachment
REST
  • More robust handling of CORS HTTP Access Control #16436
Reindex API
  • Implement helpful interfaces in reindex requests #17032
  • Reindex should timeout if sub-requests timeout #16962
  • Teach reindex to retry on rejection #16556 (issue: #16093)
Scripting
  • Logs old script params use to the Deprecation Logger #16950 (issue: #16910)
  • 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
  • Added plumbing for compile time script parameters #16163 (issue: #15464)
  • Enhancements to the mustache script engine #15661
Search
  • Add deprecation logging for ignore_unmapped parameter #17002 (issues: #16573, #16910)
  • Add deprecation logging when users use the SCAN search type. #16980 (issue: #16910)
Settings
  • Log warning if max file descriptors too low #16506

Bug fixesedit

Aggregations
  • 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)
  • Fix NPE in Derivative Pipeline when current bucket value is null #14745
Aliases
  • Fix _aliases filter and null parameters #16553 (issues: #16547, #16549)
  • Check lenient_expand_open after aliases have been resolved #15882 (issue: #13278)
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
Analysis
  • Analysis : Allow string explain param in JSON #16977 (issue: #16925)
  • Analysis : Fix no response from Analyze API without specified index #15447 (issue: #15148)
Bulk
  • Bulk api: fail deletes when routing is required but not specified #16675 (issues: #10136, #16645)
CAT API
  • Fix column aliases in _cat/indices, _cat/nodes and _cat/shards APIs #17145 (issue: #17101)
CRUD
  • fixed propagation of autoGeneratedId on document creation #16767
  • Throw exception if content type could not be determined in Update API #15904 (issue: #15822)
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)
Core
  • Migrate template settings (add missing byte & time units) #17095 (issue: #17093)
Fielddata
  • Make disabled fielddata loading fail earlier. #16179 (issue: #16135)
Geo
  • Remove .geohash suffix from GeoDistanceQuery and GeoDistanceRangeQuery #15871 (issue: #15179)
Highlighting
  • Don’t override originalQuery with request filters #15793 (issue: #15689)
Inner Hits
  • Query and top level inner hit definitions shouldn’t overwrite each other #16222 (issue: #16218)
Internal
  • Log uncaught exceptions from scheduled once tasks #15824 (issue: #15814)
  • FunctionScoreQuery should implement two-phase iteration. #15602
Java API
Logging
  • Add missing index name to indexing slow log #17026 (issue: #17025)
  • ParseFieldMatcher should log when using deprecated settings. #16988
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)
  • MapperService: check index.mapper.dynamic during index creation #15424 (issue: #15381)
Network
  • Only accept transport requests after node is fully initialized #16746 (issue: #16723)
Packaging
Parent/Child
  • Check that parent_type in Has Parent Query has child types #16923 (issue: #16692)
  • Has child query forces default similarity #16611 (issues: #16550, #4977)
Percolator
  • Don’t replace found fields if map unmapped fields as string is enabled #16043 (issue: #10500)
  • mpercolate api should serialise start time #15938 (issue: #15908)
Plugin Cloud Azure
  • Fix calling ensureOpen() on the wrong directory #16383
Plugin Discovery GCE
  • Add setFactory permission to GceDiscoveryPlugin #16860 (issue: #16485)
Query DSL
  • Fix FunctionScore equals/hashCode to include minScore and friends #15676
REST
  • Remove detect_noop from REST spec #16386
  • Make text parsing less lenient. #15679
Recovery
  • Try to renew sync ID if flush=true on forceMerge #17108 (issue: #17019)
  • sync translog to disk after recovery from primary #15832
Reindex API
  • Properly register reindex status #17125
  • Be much much much careful about context #17122
  • Make search failure cause rest failure #16889 (issue: #16037)
Scripting
  • Check that _value is used in aggregations script before setting value to specialValue #17091 (issue: #14262)
  • Add permission to access sun.reflect.MethodAccessorImpl from Groovy scripts #16540 (issue: #16536)
  • Fixes json generation for scriptsort w/ deprecated params #16261 (issue: #16260)
  • Security permissions for Groovy closures #16196 (issues: #16194, #248)
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)
Settings
  • TransportClient should use updated setting for initialization of modules and service #16095
Snapshot/Restore
  • Prevent closing index during snapshot restore #16933 (issue: #16321)
  • Add node version check to shard allocation during restore #16520 (issue: #16519)
Stats
  • Fix recovery translog stats totals when recovering from store #16493 (issue: #15974)
  • Fix calculation of age of pending tasks #15995 (issue: #15988)
Task Manager
  • Fix TaskId#isSet to return true when id is set and not other way around #17307
  • Don’t wait for completion of list tasks tasks when wait_for_completion flag is set #17231
Translog
  • Call ensureOpen on Translog#newView() to prevent IllegalStateException #17191
  • 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
  • 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)
Tribe Node
  • Passthrough environment and network settings to tribe client nodes #16893
  • Tribe node: pass path.conf to inner tribe clients #16258 (issue: #16253)

Regressionsedit

Analysis
  • Add PathHierarchy type back to path_hierarchy tokenizer for backward compatibility with 1.x #15785 (issue: #15756)
Plugin Cloud Azure
REST
  • Don’t return all indices immediately if count of expressions >1 and first expression is * #17033 (issue: #17027)

Upgradesedit

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
Plugin Cloud Azure
Plugin Discovery Azure
Scripting
  • Upgrade groovy dependency in lang-groovy module to version 2.4.6 #16830 (issue: #16527)