[[release-notes-5.0.0-alpha5]]
== 5.0.0-alpha5 Release Notes

Also see <<breaking-changes-5.0>>.

IMPORTANT: This is an alpha release and is intended for _testing purposes only_. Indices created in this version will *not be compatible with Elasticsearch 5.0.0 GA*. Upgrading 5.0.0-alpha5 to any other version is not supported.

[[breaking-5.0.0-alpha5]]
[float]
=== Breaking changes

Cluster::
* Persistent Node Ids {pull}19140[#19140] (issue: {issue}17811[#17811])

Core::
* Keep input time unit when parsing TimeValues {pull}19102[#19102]

Exceptions::
* Die with dignity {pull}19272[#19272] (issue: {issue}19231[#19231])

Scripting::
* Remove deprecated 1.x script and template syntax {pull}19387[#19387] (issue: {issue}13729[#13729])

Search::
* Rename `fields` to `stored_fields` and add `docvalue_fields` {pull}18992[#18992] (issue: {issue}18943[#18943])

Settings::
* Persistent Node Names {pull}19456[#19456] (issue: {issue}19140[#19140])
* Remove support for properties {pull}19398[#19398] (issues: {issue}19388[#19388], {issue}19391[#19391])



[[breaking java-5.0.0-alpha5]]
[float]
=== Breaking Java changes

Internal::
* Clean up BytesReference {pull}19196[#19196]

Java API::
* Add a dedicated client/transport project for transport-client {pull}19435[#19435] (issue: {issue}19412[#19412])

Network::
* Factor out abstract TCPTransport* classes to reduce the netty footprint {pull}19096[#19096]

Plugins::
* Migrate query registration from push to pull {pull}19376[#19376]
* Add components getter as bridge between guice and new plugin init world {pull}19371[#19371]
* Remove CustomNodeAttributes extension point {pull}19348[#19348]
* Add RepositoryPlugin interface for registering snapshot repositories {pull}19324[#19324]
* Simplified repository api for snapshot/restore {pull}19292[#19292]
* Switch most search extensions from push to pull {pull}19238[#19238]
* Move RestHandler registration to ActionModule and ActionPlugin {pull}19165[#19165]
* Pull actions from plugins {pull}19108[#19108]
* Switch analysis from push to pull {pull}19073[#19073]
* Remove guice from Mapper plugins {pull}19018[#19018]

Scripting::
* Remove o.e.script.Template class and move template query to lang-mustache module {pull}19425[#19425] (issue: {issue}16314[#16314])

Settings::
* Remove `node.mode` and `node.local` settings {pull}19428[#19428]



[[deprecation-5.0.0-alpha5]]
[float]
=== Deprecations

CRUD::
* Deprecate found and created in delete and index rest responses {pull}19633[#19633]

Plugin Discovery Azure Classic::
* Deprecate discovery-azure and rename it to discovery-azure-classic {pull}19186[#19186] (issue: {issue}19144[#19144])

Templates::
* Deprecate template query {pull}19607[#19607] (issue: {issue}19390[#19390])



[[feature-5.0.0-alpha5]]
[float]
=== New features

Circuit Breakers::
* Circuit break on aggregation bucket numbers with request breaker {pull}19394[#19394] (issue: {issue}14046[#14046])

Ingest::
* ingest-useragent plugin {pull}19074[#19074]

Java REST Client::
* Introduce async performRequest method {pull}19400[#19400]

Mapping::
* Add `scaled_float`. {pull}19264[#19264] (issues: {issue}15939[#15939], {issue}1941[#1941])

Plugin Repository S3::
* Add support for path_style_access {pull}15114[#15114]

Reindex API::
* Reindex from remote {pull}18585[#18585] (issue: {issue}17447[#17447])

Translog::
* Add `elasticsearch-translog` CLI tool with `truncate` command {pull}19342[#19342] (issue: {issue}19123[#19123])



[[enhancement-5.0.0-alpha5]]
[float]
=== Enhancements

Aggregations::
* Add _bucket_count option to buckets_path {pull}19571[#19571] (issue: {issue}19553[#19553])
* Remove AggregationStreams {pull}19507[#19507]
* Migrate serial_diff aggregation to NamedWriteable {pull}19483[#19483]
* Migrate most remaining pipeline aggregations to NamedWriteable {pull}19480[#19480]
* Migrate moving_avg pipeline aggregation to NamedWriteable {pull}19420[#19420]
* Migrate matrix_stats to NamedWriteable {pull}19418[#19418]
* Migrate derivative pipeline aggregation to NamedWriteable {pull}19407[#19407]
* Migrate top_hits, histogram, and ip_range aggregations to NamedWriteable {pull}19375[#19375]
* Migrate nested, reverse_nested, and children aggregations to NamedWriteable {pull}19374[#19374]
* Migrate geohash_grid and geo_bounds aggregations to NamedWriteable {pull}19372[#19372]
* Clean up significant terms aggregation results {pull}19365[#19365]
* Migrate range, date_range, and geo_distance aggregations to NamedWriteable {pull}19321[#19321]
* Migrate terms aggregation to NamedWriteable {pull}19277[#19277]
* Migrate sampler and missing aggregations to NamedWriteable {pull}19259[#19259]
* Migrate global, filter, and filters aggregation to NamedWriteable {pull}19220[#19220]
* Migrate the cardinality, scripted_metric, and geo_centroid aggregations to NamedWriteable {pull}19219[#19219]
* Use a static default precision for the cardinality aggregation. {pull}19215[#19215]
* Migrate more aggregations to NamedWriteable {pull}19199[#19199]
* Migrate stats and extended stats to NamedWriteable {pull}19198[#19198]
* Migrate sum, min, and max aggregations over to NamedWriteable {pull}19194[#19194]
* Start migration away from aggregation streams {pull}19097[#19097]

Analysis::
* Specify custom char_filters/tokenizer/token_filters in the analyze API {pull}15671[#15671] (issue: {issue}8878[#8878])

CAT API::
* Includes the index UUID in the _cat/indices API {pull}19204[#19204] (issue: {issue}19132[#19132])

CRUD::
* Adding _operation field to index, update, delete response. {pull}19566[#19566] (issues: {issue}19267[#19267], {issue}9642[#9642], {issue}9736[#9736])

Cache::
* Enable option to use request cache for size > 0 {pull}19472[#19472]

Cluster::
* Batch process node left and node failure {pull}19289[#19289] (issue: {issue}19282[#19282])
* Index creation waits for write consistency shards {pull}18985[#18985]
* Inline reroute with process of node join/master election {pull}18938[#18938] (issue: {issue}17270[#17270])

Core::
* Makes index creation more friendly {pull}19450[#19450] (issue: {issue}9126[#9126])
* Clearer error when handling fractional time values {pull}19158[#19158] (issue: {issue}19102[#19102])

Exceptions::
* Make NotMasterException a first class citizen {pull}19385[#19385]
* Do not catch throwable {pull}19231[#19231]

Geo::
* GeoBoundingBoxQueryBuilder should throw IAE when topLeft and bottomRight are the same coordinate {pull}18668[#18668] (issues: {issue}18458[#18458], {issue}18631[#18631])

Ingest::
* Add REST _ingest/pipeline to get all pipelines {pull}19603[#19603] (issue: {issue}19585[#19585])
* Show ignored errors in verbose simulate result {pull}19404[#19404] (issue: {issue}19319[#19319])
* update foreach processor to only support one applied processor. {pull}19402[#19402] (issue: {issue}19345[#19345])
* Skip the execution of an empty pipeline {pull}19200[#19200] (issue: {issue}19192[#19192])

Internal::
* Make Priority an enum {pull}19448[#19448]
* Add RestController method for deprecating in one step {pull}19343[#19343]
* Tighten ensure atomic move cleanup {pull}19309[#19309] (issue: {issue}19036[#19036])
* Enable checkstyle ModifierOrder {pull}19214[#19214]
* Expose task information from NodeClient {pull}19189[#19189]
* Changed rest handler interface to take NodeClient {pull}19170[#19170]
* Deprecate ExceptionsHelper.detailedMessage {pull}19160[#19160] (issue: {issue}19069[#19069])
* Factor out ChannelBuffer from BytesReference {pull}19129[#19129]
* Cleanup Compressor interface {pull}19125[#19125]
* Require executor name when calling scheduleWithFixedDelay {pull}17538[#17538]

Java API::
* Start from a random node number so that clients do not overload the first node configured {pull}14143[#14143]

Java REST Client::
* Add response body to ResponseException error message {pull}19653[#19653] (issue: {issue}19653[#19653])
* Simplify Sniffer initialization and automatically create the default HostsSniffer {pull}19599[#19599]
* Remove duplicate dependency declaration for http client {pull}19580[#19580] (issue: {issue}19281[#19281])
* Add callback to customize http client settings {pull}19373[#19373]
* Rest Client: add short performRequest method variants without params and/or body {pull}19340[#19340] (issue: {issue}19312[#19312])

Logging::
* Add log message about enforcing bootstrap checks {pull}19451[#19451]
* Improve logging for batched cluster state updates {pull}19255[#19255]
* Send HTTP Warning Header(s) for any Deprecation Usage from a REST request {pull}17804[#17804] (issue: {issue}17687[#17687])

Mapping::
* Elasticsearch should reject dynamic templates with unknown `match_mapping_type`. {pull}17285[#17285] (issue: {issue}16945[#16945])

Network::
* Modularize netty {pull}19392[#19392]
* Simplify TcpTransport interface by reducing send code to a single send method {pull}19223[#19223]

Percolator::
* Also support query term extract for queries wrapped inside a FunctionScoreQuery {pull}19184[#19184]
* Add support for synonym query to percolator query term extraction {pull}19066[#19066]

Plugin Discovery EC2::
* Use `DefaultAWSCredentialsProviderChain` AWS SDK class for credentials {pull}19561[#19561] (issue: {issue}19556[#19556])
* Support new Asia Pacific (Mumbai) ap-south-1 AWS region {pull}19112[#19112] (issue: {issue}19110[#19110])

Plugin Discovery GCE::
* Allow `_gce_` network when not using discovery gce {pull}15765[#15765] (issue: {issue}15724[#15724])

Plugin Lang Painless::
* Change Painless Tree Structure for Variable/Method Chains {pull}19459[#19459]
* Add replaceAll and replaceFirst {pull}19070[#19070]

Plugin Mapper Size::
* Add doc values support to the _size field in the mapper-size plugin {pull}19217[#19217] (issue: {issue}18334[#18334])

Plugins::
* Log one plugin info per line {pull}19441[#19441]
* Make rest headers registration pull based {pull}19440[#19440]
* Add resource watcher to services available for plugin components {pull}19401[#19401]
* Add some basic services to createComponents for plugins {pull}19380[#19380]
* Make plugins closeable {pull}19137[#19137]
* Plugins: Add status bar on download {pull}18695[#18695]

Query DSL::
* Allow empty json object in request body in `_count` API {pull}19595[#19595] (issue: {issue}19422[#19422])

REST::
* Add Location header to the index, update, and create APIs {pull}19509[#19509] (issue: {issue}19079[#19079])
* Add support for `wait_for_events` to the `_cluster/health` REST endpoint {pull}19432[#19432] (issue: {issue}19419[#19419])
* Rename Search Template REST spec names {pull}19178[#19178]

Recovery::
* Non-blocking primary relocation hand-off {pull}19013[#19013] (issues: {issue}15900[#15900], {issue}18553[#18553])

Reindex API::
* Support authentication with reindex-from-remote {pull}19310[#19310]
* Support requests_per_second=-1 to mean no throttling in reindex {pull}19101[#19101] (issue: {issue}19089[#19089])

Scripting::
* Remove ClusterState from compile api {pull}19136[#19136]
* Mustache: Render Map as JSON {pull}18856[#18856] (issue: {issue}18970[#18970])

Search::
* Limit batch size when scrolling {pull}19367[#19367] (issue: {issue}19249[#19249])
* Record method counts while profiling query components {pull}18302[#18302]

Settings::
* Validates new dynamic settings from the current state {pull}19122[#19122] (issue: {issue}19046[#19046])

Snapshot/Restore::
* Adding repository index generational files {pull}19002[#19002] (issue: {issue}18156[#18156])

Stats::
* Add missing field type in the FieldStats response. {pull}19241[#19241] (issue: {issue}17750[#17750])
* Expose the ClusterInfo object in the allocation explain output {pull}19106[#19106] (issue: {issue}14405[#14405])



[[bug-5.0.0-alpha5]]
[float]
=== Bug fixes

Aggregations::
* Change how `nested` and `reverse_nested` aggs know about their nested depth level {pull}19550[#19550] (issues: {issue}11749[#11749], {issue}12410[#12410])
* Make ExtendedBounds immutable {pull}19490[#19490] (issue: {issue}19481[#19481])
* Fix potential AssertionError with include/exclude on terms aggregations. {pull}19252[#19252] (issue: {issue}18575[#18575])
* Pass resolved extended bounds to unmapped histogram aggregator {pull}19085[#19085] (issue: {issue}19009[#19009])
* Fix "key_as_string" for date histogram and epoch_millis/epoch_second format with time zone {pull}19043[#19043] (issue: {issue}19038[#19038])

Allocation::
* Fix NPE when initializing replica shard has no UnassignedInfo {pull}19491[#19491] (issue: {issue}19488[#19488])
* Make shard store fetch less dependent on the current cluster state, both on master and non data nodes {pull}19044[#19044] (issue: {issue}18938[#18938])

Analysis::
* Fix analyzer alias processing {pull}19506[#19506] (issue: {issue}19163[#19163])

Cluster::
* Use executor's describeTasks method to log task information in cluster service {pull}19531[#19531]

Core::
* Makes `m` case sensitive in TimeValue {pull}19649[#19649] (issue: {issue}19619[#19619])
* Handle rejected execution exception on reschedule {pull}19505[#19505]

Dates::
* Make sure TimeIntervalRounding is monotonic for increasing dates {pull}19020[#19020]

Geo::
* Incomplete results when using geo_distance for large distances [ISSUE] {pull}17578[#17578]

Highlighting::
* Let fast vector highlighter also extract terms from the nested query's inner query. {pull}19337[#19337] (issue: {issue}19265[#19265])

Index APIs::
* Add zero-padding to auto-generated rollover index name increment {pull}19610[#19610] (issue: {issue}19484[#19484])

Ingest::
* Fix NPE when simulating a pipeline with no id {pull}19650[#19650]
* Change foreach processor to use ingest metadata for array element {pull}19609[#19609] (issue: {issue}19592[#19592])
* No other processors should be executed after on_failure is called {pull}19545[#19545]
* rethrow script compilation exceptions into ingest configuration exceptions {pull}19318[#19318]
* Rename from `ingest-useragent` plugin to `ingest-user-agent` and its processor from `useragent` to `user_agent` {pull}19261[#19261]

Inner Hits::
* Ensure that that InnerHitBuilder uses rewritten queries {pull}19360[#19360] (issue: {issue}19353[#19353])

Internal::
* Priority values should be unmodifiable {pull}19447[#19447]
* Extract AbstractBytesReferenceTestCase {pull}19141[#19141]

Java REST Client::
* Rest Client: add slash to log line when missing between host and uri {pull}19325[#19325] (issue: {issue}19314[#19314])
* Rest Client: HostsSniffer to set http as default scheme {pull}19306[#19306]

Logging::
* Only log running out of slots when out of slots {pull}19637[#19637]

Mapping::
* Fix not_analyzed string fields to error when position_increment_gap is set {pull}19510[#19510]
* Automatically created indices should honor `index.mapper.dynamic`. {pull}19478[#19478] (issue: {issue}17592[#17592])

Network::
* Verify lower level transport exceptions don't bubble up on disconnects {pull}19518[#19518] (issue: {issue}19096[#19096])

Packaging::
* Disable service in pre-uninstall {pull}19328[#19328]

Parent/Child::
*  Make sure that no `_parent#null` gets introduces as default _parent mapping {pull}19470[#19470] (issue: {issue}19389[#19389])

Plugin Discovery Azure Classic::
* Make discovery-azure plugin work again {pull}19062[#19062] (issues: {issue}15630[#15630], {issue}18637[#18637])

Plugin Discovery EC2::
* Fix EC2 discovery settings {pull}18690[#18690] (issues: {issue}18652[#18652], {issue}18662[#18662])

Plugin Discovery GCE::
* Fix NPE when GCE region is empty {pull}19176[#19176] (issue: {issue}16967[#16967])

Plugin Repository Azure::
* Register group setting for repository-azure accounts {pull}19086[#19086]

Plugin Repository S3::
* Add missing permission to repository-s3 {pull}19128[#19128] (issues: {issue}18539[#18539], {issue}19121[#19121])
* Fix repository S3 Settings and add more tests {pull}18703[#18703] (issues: {issue}18662[#18662], {issue}18690[#18690])

Query DSL::
* Restore parameter name auto_generate_phrase_queries {pull}19514[#19514] (issue: {issue}19512[#19512])

REST::
* Fixes CORS handling so that it uses the defaults {pull}19522[#19522] (issue: {issue}19520[#19520])

Recovery::
* Move `reset recovery` into RecoveriesCollection {pull}19466[#19466] (issue: {issue}19473[#19473])
* Fix replica-primary inconsistencies when indexing during primary relocation with ongoing replica recoveries {pull}19287[#19287] (issue: {issue}19248[#19248])

Search::
* Don't recursively count children profile timings {pull}19397[#19397] (issue: {issue}18693[#18693])
* fix explain in function_score if no function filter matches {pull}19185[#19185]
* Fix NPEs due to disabled source {pull}18957[#18957]

Settings::
* Validate settings against dynamic updaters on the master {pull}19088[#19088] (issue: {issue}19046[#19046])

Stats::
* Fix serialization bug in allocation explain API. {pull}19494[#19494]
* Allocation explain: Also serialize `includeDiskInfo` field {pull}19492[#19492]

Store::
* Make static Store access shard lock aware {pull}19416[#19416] (issue: {issue}18938[#18938])
* Catch assertion errors on commit and turn it into a real exception {pull}19357[#19357] (issue: {issue}19356[#19356])



[[upgrade-5.0.0-alpha5]]
[float]
=== Upgrades

Network::
* Introduce Netty 4 {pull}19526[#19526] (issue: {issue}3226[#3226])
* Upgrade to netty 3.10.6.Final {pull}19235[#19235]

