5.0.0-beta1 Release Notes

edit

Also see Breaking changes in 5.0.

This is a beta 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-beta1 to any other version is not supported.

Breaking changes

edit
Analysis
  • Remove token_filter in _analyze API #20285 (issue: #20283)
  • Removes support for adding aliases to analyzers #19994 (issue: #18244)
CRUD
  • Fixed naming inconsistency for fields/stored_fields in the APIs #20166 (issues: #18943, #20155)
  • Disallow creating indices starting with - or + #20033 (issue: #19800)
Core
  • Remove minimum master nodes bootstrap check #20082
Engine
  • Optimize indexing for the autogenerated ID append-only case #20211 (issue: #19813)
Geo
  • Deprecate GeoDistance enums and remove geo distance script helpers #19783
Logging
Packaging
Plugin Lang Painless
REST
  • Parameter improvements to Cluster Health API wait for shards #20223 (issue: #20216)
  • Switch indices.exists_type from {index}/{type} to {index}/_mapping/{type}. #20055 (issue: #15613)
  • Only use PUT for index creation, not POST. #20001 (issues: #15613, #18160)
Scripting
  • Hardcode painless as the default scripting lang and add legacy script default for stored scripts #20310 (issue: #20122)
Settings

Breaking Java changes

edit
Core
  • Remove ability to plug-in TransportService #20505
Internal
  • Remove TransportService#registerRequestHandler leniency #20469 (issue: #20468)
  • Consolidate search parser registries #20000
  • Move all FetchSubPhases to o.e.search.fetch.subphase #19702
  • Squash the rest of o.e.rest.action #19698
Plugins
  • Cleanup sub fetch phase extension point #20382
  • Remove IndexTemplateFilter #20072
  • Switch custom ShardsAllocators to pull based model #20071
  • Make custom allocation deciders use pull based extensions #20040
Search
  • Remove FetchSubPhaseParseElement #20350

Deprecations

edit
Geo
  • Deprecate optimize_bbox on geodistance queries #20032 (issue: #20014)
  • Deprecate geohash parameters for geo_point parser #20030 (issue: #20009)
Scripting
  • Deprecate Groovy, Python, and Javascript #20244 (issue: #20129)

New features

edit
Aliases
  • Add an alias action to delete an index #20184 (issue: #20064)
Analysis
  • Exposing lucene 6.x minhash filter. #20206 (issue: #20149)
Geo
  • Cut over geo_point field and queries to new LatLonPoint type #20315 (issue: #20314)
Plugin Discovery File
Search
  • Add the ability to disable the retrieval of the stored fields entirely #20026
Suggesters
  • Add support for returning documents with completion suggester #19536 (issue: #10746)

Enhancements

edit
Allocation
  • Change DiskThresholdDecider’s behavior when factoring in leaving shards #20349
  • Verify AllocationIDs in replication actions #20320
  • Mark shard as stale on non-replicated write, not on node shutdown #20023 (issue: #18919)
  • Add routing changes API to RoutingAllocation #19992
  • Primary shard allocator observes limits in forcing allocation #19811 (issue: #19446)
  • Use primary terms as authority to fail shards #19715
  • Add recovery source to ShardRouting #19516
Analysis
  • Stop using cached component in _analyze API #19929 (issue: #19827)
Benchmark
  • Add client-benchmark-noop-api-plugin to stress clients even more in benchmarks #20103
CAT API
  • Add health status parameter to cat indices API #20393
Circuit Breakers
  • Circuit break the number of inline scripts compiled per minute #19694 (issue: #19396)
Cluster
  • Add clusterUUID to RestMainAction output #20503
Core
  • Add serial collector bootstrap check #20558
  • Rename Netty TCP transports thread factories from http_* to transport_* #20207
  • Do not log full bootstrap checks exception #19989
  • Mark halting the virtual machine as privileged #19923 (issues: #19272, #19806)
Engine
  • Only try to read new segments info if we really flushed the index #20474
  • Use _refresh instead of reading from Translog in the RT GET case #20102
Exceptions
  • Improve startup exception #20083
Index Templates
Ingest
  • Add "version" field to Pipelines #20343 (issue: #20171)
  • Make it possible for Ingest Processors to access AnalysisRegistry #20233
  • add ignore_missing option to convert,trim,lowercase,uppercase,grok,rename #20194 (issue: #19995)
  • Add support for parameters to the script ingest processor #20136
  • introduce the JSON Processor #20128 (issue: #20052)
  • Allow rename processor to turn leaf fields into branch fields #20053 (issue: #19892)
  • remove ability to set field value in script-processor configuration #19981
Internal
  • Remove poor-mans compression in InternalSearchHit and friends #20472
  • Don’t register SearchTransportService handlers more than once #20468
  • Unguice SearchModule #20456
  • Deguice SearchService and friends #20423
  • NodeStats classes to implement Writeable rather then Streamable #20327
  • More info classes to implement Writeable rather than Streamable #20288 (issue: #20255)
  • Internal: Split disk threshold monitoring from decider #20018
  • Switching LockObtainFailedException over to ShardLockObtainFailedException #19991 (issue: #19978)
  • update and delete by query requests to implement IndicesRequest.Replaceable #19961
  • VersionFetchSubPhase should not use Versions#loadDocIdAndVersion #19944
Java API
  • Ensure PutMappingRequest.buildFromSimplifiedDef input are pairs #19837 (issue: #19836)
Java REST Client
  • Add support for a RestClient path prefix #20190
  • Add "Async" to the end of each Async RestClient method #20172 (issue: #20168)
  • Allow RestClient to send array-based headers #20151
Logging
  • Ensure logging is initialized in CLI tools #20575
  • Give useful error message if log config is missing #20493
  • Complete Elasticsearch logger names #20457 (issue: #20326)
  • Add node name to decider trace logging #20437 (issue: #20379)
  • Logging shutdown hack #20389 (issue: #20304)
  • Disable console logging #20387
  • Skip loading of jansi from log4j2 #20334
  • Configure AWS SDK logging configuration #20313 (issue: #20294)
  • Warn if unsupported logging configuration present #20309
  • Size limit deprecation logs #20287 (issues: #20235, #20254)
  • Increase visibility of deprecation logger #20254 (issue: #11033)
  • Add shardId and node name in search slow log #19949 (issue: #19735)
Mapping
  • Automatically downgrade text and keyword to string on indexes imported from 2.x #20177
  • Do not parse numbers as both strings and numbers when not included in _all. #20167
  • Don’t index the _version field #20132
  • The root object mapper should support updating numeric_detection, date_detection and dynamic_date_formats. #20119 (issue: #20111)
  • Automatically upgrade analyzed string fields that have index_options or position_increment_gap set. #20002 (issue: #19974)
  • Mappings: Support dots in field names in mapping parsing #19899 (issue: #19443)
  • Save one utf8 conversion in KeywordFieldMapper. #19867
  • Do not parse the created version from the settings every time a field is parsed. #19824
Network
Packaging
Plugin Lang Painless
  • Disable regexes by default in painless #20427 (issue: #20397)
  • Catch OutOfMemory and StackOverflow errors in Painless #19936
Plugin Repository S3
  • Extract AWS Key from KeyChain instead of using potential null value #19560 (issues: #18703, #19557)
Plugins
  • Print message when removing plugin with config #20338
  • Plugins: Update official plugin location with unified release #19996
  • Allow plugins to upgrade global custom metadata on startup #19962
  • Switch aggregations from push to pull #19839
  • Display plugins versions #18683
Query DSL
  • Throw exception when multiple field names are provided as part of query short syntax #19871 (issue: #19791)
  • Query parsers to throw exception when multiple field names are provided #19791 (issue: #19547)
REST
  • Add exclusion support to response filtering #19865
Recovery
  • Pass on maxUnsafeAutoIdTimestamp on recovery / relocation #20300
Scripting
  • Parse script on storage instead of on retrieval #20356
  • Migrate elasticsearch native script examples to the main repo #19334 (issue: #14662)
Settings
  • Make action.auto_create_index setting a dynamic cluster setting #20274 (issue: #7513)
  • Removes space between # and the setting in elasticsearch.yml #20094 (issue: #20090)
Snapshot/Restore
  • Delete differing files in the store before restoring #20220 (issue: #20148)
  • Adds ignoreUnavailable option to the snapshot status API #20066 (issue: #18522)
  • Check restores in progress before deleting a snapshot #19853
  • Snapshot repository cleans up empty index folders #19751
Stats
  • Add mem section back to cluster stats #20255 (issue: #17278)
  • Add network types to cluster stats #20144
Suggesters
  • Move SuggestUtils methods to their respective caller classes #19914 (issue: #19906)
  • Remove payload option from completion suggester #19877 (issue: #19536)
Task Manager
  • Rename Task Persistence into Storing Task Results #19982
Translog
  • Fsync documents in an async fashion #20145
  • Add checksumming and versions to the Translog’s Checkpoint files #19797

Bug fixes

edit
Aggregations
  • Fix agg profiling when using breadth_first collect mode #20156
  • Throw exception when maxBounds greater than minBounds #19855 (issue: #19833)
Allocation
  • Upon being elected as master, prefer joins' node info to existing cluster state #19743
Analysis
  • Can load non-PreBuiltTokenFilter in Analyze API #20396
CRUD
Cache
  • Serialize index boost and phrase suggest collation keys in a consistent order #20081 (issue: #19986)
Cluster
  • Fixes issue with dangling index being deleted instead of re-imported #19666
Discovery
  • Update discovery nodes after cluster state is published #20409
  • Add current cluster state version to zen pings and use them in master election #20384 (issue: #20348)
Engine
  • Take refresh IOExceptions into account when catching ACE in InternalEngine #20546 (issue: #19975)
  • Don’t suppress AlreadyClosedException #19975 (issue: #19861)
Highlighting
  • Fix highlighting of MultiTermQuery within a FunctionScoreQuery #20400 (issue: #20392)
  • Enable BoostingQuery with FVH highlighter #19984 (issue: #19985)
Index APIs
  • Fix IndexNotFoundException in multi index search request. #20188 (issue: #3839)
Ingest
  • Don’t rebuild pipeline on every cluster state update #20189
  • Add dotexpander processor #20078
Internal
  • Ensure elasticsearch doesn’t start with unuspported indices #20514 (issue: #20512)
  • Remove ListTasksResponse#setDiscoveryNodes() #19773 (issue: #19772)
Java API
  • fix IndexResponse#toString to print out shards info #20562
  • Add NamedWriteables from plugins to TransportClient #19825 (issue: #19764)
Logging
  • Avoid unnecessary creation of prefix loggers #20571 (issue: #20570)
  • Fix logging hierarchy configs #20463
  • Fix prefix logging #20429
  • Hack around Log4j bug rendering exceptions #20306 (issue: #20304)
  • Avoid prematurely triggering logger initialization #20170
Mapping
  • Mapping updates on objects should propagate include_an_all. #20051
  • Validate blank field name #19860 (issue: #19251)
Network
  • Fix expect 100 continue header handling #19904 (issue: #19834)
  • Fixes netty4 module’s CORS config to use defaults #19874
  • Fix various concurrency issues in transport #19675
Packaging
  • [Packaging] Do not remove scripts directory on upgrade #20452
  • [Package] Remove bin/lib/modules directories on RPM uninstall/upgrade #20448
  • RESTART_ON_UPGRADE incorrectly named ES_RESTART_ON_UPGRADE in sysconfig #19976 (issue: #19950)
  • Fix handling of spaces for jvm.options on Windows #19951 (issue: #19941)
Percolator
  • Fail indexing percolator queries containing either a has_child or has_parent query #20229 (issue: #2960)
Plugin Ingest Attachment
Plugin Ingest GeoIp
  • [ingest-geoip] update geoip to not include null-valued results from #20455
Plugin Lang Painless
  • Fix break bug in for/foreach loops. #20146
Plugins
  • Use sysprop like with es.path.home to pass conf dir #18870 (issue: #18689)
Query DSL
  • Fix silently accepting malformed queries #20515 (issue: #20500)
  • query_string_query should take term length into consideration when fuzziness is auto #20299 (issue: #15972)
Recovery
  • Fix concurrency issues between cancelling a relocation and marking shard as relocated #20443
Reindex API
Scripting
  • Fix Javascript OOM build Failure #20307
  • Fix propagating the default value for script settings #20183 (issue: #20159)
  • Catch and wrap AssertionError and NoClassDefFoundError in groovy scripts #19958 (issues: #19806, #19923)
Search
  • Throw error when trying to fetch fields from source and source is disabled #20424 (issues: #20093, #20408)
  • Source filtering should keep working when the source contains numbers greater than Long.MAX_VALUE. #20278 (issue: #11508)
  • Fix NPE when running a range query on a scaled_float with no upper bound. #20253
  • Add ref-counting to SearchContext to prevent accessing already closed readers #20095 (issue: #20008)
  • Fix NPE during search with source filtering if the source is disabled. #20093 (issue: #7758)
  • Restore assignment of time value when deserializing a scroll instance #19977 (issue: #18820)
  • Fix explain output for dfs query #19972 (issue: #15369)
Settings
  • Validate max thread/merge settings #20383 (issue: #20380)
  • Fix filter cache setting to allow percentages #20335 (issue: #20330)
  • Move cluster.routing.allocation.same_shard.host setting to new settings infrastructure #20046 (issue: #20045)
Stats
  • Fix FieldStats deserialization of ip field #20522 (issue: #20516)
Translog
  • Fix RAM usage estimation of LiveVersionMap. #20123 (issue: #19787)

Upgrades

edit
Core
Network
Scripting
  • Dependencies: Updates to mustache 0.9.3 #20337