5.2.0 Release Notesedit

Also see Breaking changes in 5.2.

Breaking changesedit

Core
  • Add system call filter bootstrap check #21940

Breaking Java changesedit

Allocation
Cluster
  • Remove PROTO-based custom cluster state components #22336 (issue: #21868)
Ingest
  • Change type of ingest doc meta-data field TIMESTAMP to Date #22234 (issue: #22074)
Internal
  • Consolidate the last easy parser construction #22095
  • Introduce XContentParser#namedObject #22003
Plugins
  • Plugins: Replace Rest filters with RestHandler wrapper #21905
Query DSL
  • Resolve index names in indices_boost #21393 (issue: #4756)
Search
  • Cluster search shards improvements: expose ShardId, adjust visibility of some members #21752

Deprecationsedit

Java API
  • Deprecate and remove "minimumNumberShouldMatch" in BoolQueryBuilder #22403
Shadow Replicas
  • Add a deprecation notice to shadow replicas #22647 (issue: #22024)

New featuresedit

Analysis
  • Synonym Graph Support (LUCENE-6664) #21517
Ingest
  • introduce KV Processor in Ingest Node #22272 (issue: #22222)
Mapping
  • Add the ability to set a normalizer on keyword fields. #21919 (issue: #18064)
  • Add RangeFieldMapper for numeric and date range types #21002 (issue: #20999)

Enhancementsedit

Aggregations
  • value_type is useful regardless of scripting. #22160 (issue: #20163)
  • Support for partitioning set of terms #21626 (issue: #21487)
Allocation
  • Adds setting level to allocation decider explanations #22268 (issue: #21771)
  • Improves allocation decider decision explanation messages #21771
  • Prepares allocator decision objects for use with the allocation explain API #21691
Analysis
  • Expose FlattenGraphTokenFilter #22643
CRUD
  • Use correct block levels for TRA subclasses #22224
Cluster
  • Keep NodeConnectionsService in sync with current nodes in the cluster state #22509
  • Add a generic way of checking version before serializing custom cluster object #22376 (issue: #22313)
  • Add validation for supported index version on node join, restore, upgrade & open index #21830 (issue: #21670)
  • Let ClusterStateObserver only hold onto state that’s needed for change detection #21631 (issue: #21568)
  • Remove mutable status field from cluster state #21379
Core
  • Rename bootstrap.seccomp to bootstrap.system_call_filter #22226 (issue: #21940)
  • Cleanup random stats serialization code #22223
  • Avoid corruption when deserializing booleans #22152
  • Reduce memory pressure when sending large terms queries. #21776
Discovery
Ingest
  • add ignore_missing flag to ingest plugins #22273
  • Added ability to remove pipelines via wildcards (#22149) #22191 (issue: #22149)
  • Enables the ability to inject serialized json fields into root of document #22179 (issue: #21898)
  • compile ScriptProcessor inline scripts when creating ingest pipelines #21858 (issue: #21842)
Internal
  • Remove some more usages of ParseFieldMatcher #22398 (issues: #19552, #22130)
  • Remove some more usages of ParseFieldMatcher #22395 (issues: #19552, #22130)
  • Remove some ParseFieldMatcher usages #22389 (issues: #19552, #22130)
  • Add infrastructure to manage network connections outside of Transport/TransportService #22194
  • Replace strict parsing mode with response headers assertions #22130 (issues: #11859, #19552, #20993)
  • Start using ObjectParser for aggs. #22048 (issue: #22009)
  • Don’t output null source node in RecoveryFailedException #21963
  • ClusterService should expose "applied" cluster states (i.e., remove ClusterStateStatus) #21817
Java High Level REST Client
  • Add fromxcontent methods to index response #22229
  • Add fromXContent() methods for ReplicationResponse #22196 (issue: #22082)
  • Add parsing method for ElasticsearchException #22143
  • Add fromXContent method to GetResponse #22082
Java REST Client
  • Warn log deprecation warnings received from server #21895
Logging
  • Log deleting indices at info level #22627 (issue: #22605)
  • Log failure to connect to node at info instead of debug #21809 (issue: #6468)
Mapping
  • Atomic mapping updates across types #22220
  • Only update DocumentMapper if field type changes #22165
  • Better error message when _parent isn’t an object #21987
Network
  • Disable the Netty recycler #22452 (issues: #22189, #22360, #22406, #5904)
  • Tell Netty not to be unsafe in transport client #22284
  • Introduce a low level protocol handshake #22094
  • Detach handshake from connect to node #22037
  • Reduce number of connections per node depending on the nodes role #21849
  • Add a connect timeout to the ConnectionProfile to allow per node connect timeouts #21847 (issue: #19719)
  • Grant Netty permission to read system somaxconn #21840
  • Remove connectToNodeLight and replace it with a connection profile #21799
Packaging
Plugin Discovery EC2
  • Add support for ca-central-1 region to EC2 and S3 plugins #22458 (issue: #22454)
  • Support for eu-west-2 (London) cloud-aws plugin #22308 (issue: #22306)
  • Add us-east-2 AWS region #21961 (issue: #21881)
  • Add setting to set read timeout for EC2 discovery and S3 repository plugins #21956 (issue: #19078)
Plugin Ingest GeoIp
Plugin Lang Painless
  • Improve painless’s ScriptException generation #21762 (issue: #21733)
Plugins
  • Pass ThreadContext to transport interceptors to allow header modification #22618 (issue: #22585)
  • Provide helpful error message if a plugin exists #22305 (issue: #22084)
  • Add shutdown hook for closing CLI commands #22126 (issue: #22111)
  • Allow plugins to install bootstrap checks #22110
Query DSL
  • Un-deprecate fuzzy query #22088 (issue: #15760)
  • support numeric bounds with decimal parts for long/integer/short/byte datatypes #21972 (issue: #21600)
Reindex API
  • Reindex: Better error message for pipeline in wrong place #21985
  • Timeout improvements for rest client and reindex #21741 (issue: #21707)
Scripting
  • Wrap VerifyError in ScriptException #21769
  • Log ScriptException’s xcontent if file script compilation fails #21767 (issue: #21733)
Search
  • Move SearchTransportService and SearchPhaseController creation outside of TransportSearchAction constructor #21754
  • Don’t carry ShardRouting around when not needed in AbstractSearchAsyncAction #21753
  • ShardSearchRequest to take ShardId constructor argument rather than the whole ShardRouting #21750
  • Use index uuid as key in the alias filter map rather than the index name #21749
Settings
  • Speed up filter and prefix settings operations #22249
Snapshot/Restore
  • Fixes retrieval of the latest snapshot index blob #22700
  • Synchronize snapshot deletions on the cluster state #22313 (issue: #19957)
Stats
  • Include unindexed field in FieldStats response #21821 (issue: #21952)
Task Manager
  • Improve the error message if task and node isn’t found #22062 (issue: #22027)
  • Add descriptions to create snapshot and restore snapshot tasks. #21901 (issue: #21768)
  • Add proper descriptions to reindex, update-by-query and delete-by-query tasks. #21841 (issue: #21768)

Bug fixesedit

Aggregations
  • Fix scaled_float numeric type in aggregations #22351 (issue: #22350)
  • Allow terms aggregations on pure boolean scripts. #22201 (issue: #20941)
  • Fix numeric terms aggregations with includes/excludes and minDocCount=0 #22141 (issue: #22140)
  • Fix missing on aggs on boolean fields. #22135 (issue: #22009)
  • IP range masks exclude the maximum address of the range. #22018 (issue: #22005)
  • Fix other_bucket on the filters agg to be enabled if a key is set. #21994 (issue: #21951)
Allocation
  • Cannot force allocate primary to a node where the shard already exists #22031 (issue: #22021)
  • Promote shadow replica to primary when initializing primary fails #22021
  • Trim in-sync allocations set only when it grows #21976 (issue: #21719)
Analysis
  • AsciiFoldingFilter’s multi-term component should never preserve the original token. #21982
  • Pre-built analysis factories do not implement MultiTermAware correctly. #21981
CRUD
  • Reject external versioning and explicit version numbers on create #21998
Cluster
  • IndicesService handles all exceptions during index deletion #22433
Core
  • Streamline foreign stored context restore and allow to perserve response headers #22677 (issue: #22647)
  • Support negative numbers in readVLong #22314
Discovery
  • Close InputStream when receiving cluster state in PublishClusterStateAction #22711
  • Do not reply to pings from another cluster #21894 (issue: #21874)
Engine
  • Close and flush refresh listeners on shard close #22342
Exceptions
  • Fixing shard recovery error message to report the number of docs correctly for each node #22515 (issue: #21893)
Highlighting
  • Fix FiltersFunctionScoreQuery highlighting #21827
Index APIs
  • Ensure shrunk indices carry over version information from its source #22469 (issue: #22373)
Ingest
  • fix index out of bounds error in KV Processor #22288 (issue: #22272)
  • Fixes GrokProcessor’s ignorance of named-captures with same name. #22131 (issue: #22117)
Inner Hits
Internal
  • Index creation and setting update may not return deprecation logging #22702
Java API
  • Don’t output empty ext object in SearchSourceBuilder#toXContent #22093 (issue: #20969)
Java REST Client
  • Don’t use null charset in RequestLogger #22197 (issue: #22190)
Mapping
  • The _all default mapper is not completely configured. #22236
  • Fix MapperService.allEnabled(). #22227
  • Dynamic date fields should use the format that was used to detect it is a date. #22174 (issue: #9410)
  • Sub-fields should not accept include_in_all parameter #21971 (issue: #21710)
  • Mappings: Fix get mapping when no indexes exist to not fail in response generation #21924 (issue: #21916)
Nested Docs
  • Fix bug in query builder rewrite that ignores the ignore_unmapped option #22456
Network
  • Pass forceExecution flag to transport interceptor #22739
  • Ensure new connections won’t be opened if transport is closed or closing #22589 (issue: #22554)
  • Prevent open channel leaks if handshake times out or is interrupted #22554
  • Execute low level handshake in #openConnection #22440
  • Properly configure Netty 3 ClientBootstrap when using custom connection profile #22363 (issue: #22277)
  • Handle connection close / reset events gracefully during handshake #22178
  • Do not lose host information when pinging #21939 (issue: #21828)
  • DiscoveryNode and TransportAddress should preserve host information #21828
Packaging
Percolator
  • Fix NPE in percolator’s now range check for percolator queries with range queries #22356 (issue: #22355)
Plugin Analysis Stempel
  • Fix thread safety of Stempel’s token filter factory #22610 (issue: #21911)
Plugin Lang Painless
  • Whitelist some ScriptDocValues in painless #22600 (issue: #22584)
  • Update Painless Loop Counter to be Higher #22560 (issue: #22508)
  • Fix some issues with painless’s strings #22393 (issue: #22372)
  • Test fix for def equals in Painless #21945 (issue: #21801)
  • Fix a VerifyError bug in Painless #21765
Plugin Mapper Attachment
  • NPE is raised when defining a non existing type within attachments type #21848
Plugin Repository Azure
  • Fixes default chunk size for Azure repositories #22577 (issue: #22513)
  • readonly on azure repository must be taken into account #22055 (issues: #22007, #22053)
Query DSL
  • Fix script score function that combines _score and weight #22713 (issue: #21483)
REST
  • Adds percent-encoding for Location headers #21057 (issue: #21016)
Recovery
  • Fix primary relocation for shadow replicas #22474 (issue: #20300)
  • Don’t close store under CancellableThreads #22434 (issue: #22325)
  • Use a fresh recovery id when retrying recoveries #22325 (issue: #22043)
  • Allow flush/force_merge/upgrade on shard marked as relocated #22078 (issue: #22043)
Reindex API
  • Fix reindex from remote clearing scroll #22525 (issue: #22514)
  • Fix source filtering in reindex-from-remote #22514 (issue: #22507)
  • Remove content type detection from reindex-from-remote #22504 (issue: #22329)
  • Don’t close rest client from its callback #22061 (issue: #22027)
  • Keep context during reindex’s retries #21941
Scripting
  • Expose ip fields as strings in scripts. #21997 (issue: #21977)
Search
  • Improve concurrency of ShardCoreKeyMap. #22316
  • Make -0 compare less than +0 consistently. #22173 (issue: #22167)
  • Fix boost_mode propagation when the function score query builder is rewritten #22172 (issue: #22138)
  • FiltersAggregationBuilder: rewriting filter queries, the same way as in FilterAggregationBuilder #22076
  • Fix cross_fields type on multi_match query with synonyms #21638 (issue: #21633)
Search Templates
  • SearchTemplateRequest to implement CompositeIndicesRequest #21865 (issue: #21747)
Settings
  • Handle spaces in action.auto_create_index gracefully #21790 (issue: #21449)
  • Fix settings diff generation for affix and group settings #21788
Snapshot/Restore
  • Gracefully handles pre 2.x compressed snapshots #22267
  • URLRepository should throw NoSuchFileException to correctly adhere to readBlob contract #22069 (issue: #22004)
  • Fixes shard level snapshot metadata loading when index-N file is missing #21813
Stats
  • Implement stats for geo_point and geo_shape field #22391 (issue: #22384)
  • Use reader for doc stats #22317 (issue: #22285)
  • Avoid NPE in NodeService#stats if HTTP is disabled #22060 (issue: #22058)
  • Add support for "include_segment_file_sizes" in indices stats REST handler #21879 (issue: #21878)
Term Vectors
  • Fix _termvectors with preference to not hit NPE #21959
  • Return correct term statistics when a field is not found in a shard #21922 (issue: #21906)

Regressionsedit

Core
  • Source filtering: only accept array items if the previous include pattern matches #22593 (issue: #22557)
Logging
  • Restores the original default format of search slow log #21770 (issue: #21711)
Search
  • Handle specialized term queries in MappedFieldType.extractTerm(Query) #21889 (issue: #21882)

Upgradesedit

Core
  • Upgrade to Lucene 6.4.0 #22724
  • Update Jackson to 2.8.6 #22596 (issue: #22266)
  • Upgrade to lucene-6.4.0-snapshot-084f7a0. #22413
  • Upgrade to lucene-6.4.0-snapshot-ec38570 #21853
Network