5.0.0-alpha3 Release Notes

Also see Breaking changes in 5.0.

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-alpha3 to any other version is not supported.

Breaking changes

CAT API
  • Row-centric output for _cat/fielddata #18068 (issue: #10249)
Inner Hits
  • Drop top level inner hits in favour of inner hits defined in the query dsl #17816 (issue: #11118)
Internal
  • Actually bound the generic thread pool #17017
Packaging
  • Require /bin/bash in packaging #18259 (issue: #18251)
  • Remove plugin script parsing of system properties #18207 (issue: #18140)
Plugin Delete By Query
Query DSL
  • Lessen leniency of the query dsl. #18276
Scripting
  • Allow only a single extension for a scripting engine #18332 (issue: #10598)
  • Remove sandbox option for script settings, allow only registering a single language. #18226 (issues: #10598, #17114)
Settings
  • Register indices.query.bool.max_clause_count setting #18341 (issue: #18336)
  • Remove settings and system properties entanglement #18198 (issue: #18197)

Breaking Java changes

Allocation
  • Move parsing of allocation commands into REST and remove support for plugins to register allocation commands #17802 (issue: #17894)
Discovery
Percolator
  • Move the percolator from core to its own module #18511
  • Remove percolator cache #18434
Scripting
  • Remove LeafSearchScript.runAsFloat(): Nothing calls it. #18364
Search
  • Refactor of query profile classes to make way for other profile implementations #18370 (issue: #10538)

New features

Ingest
Reindex API
  • Port Delete By Query to Reindex infrastructure #18329 (issue: #16883)
Snapshot/Restore
  • Add Google Cloud Storage repository plugin #13578 (issue: #12880)
Stats
  • Extend field stats to report searchable/aggregatable fields #17980 (issue: #17750)

Enhancements

Aggregations
  • Rename AggregatorBuilder to AggregationBuilder #18377 (issue: #18367)
  • Add the ability to use the breadth_first mode with nested aggregations (such as top_hits) which require access to score information. #18127 (issue: #9825)
  • Make significant terms work on fields that are indexed with points. #18031
Allocation
  • Limit retries of failed allocations per index #18467 (issue: #18417)
  • Immutable ShardRouting #17821
  • Add the shard’s store status to the explain API #17689 (issue: #17372)
Analysis
  • Core: better error message when analyzer created without tokenizer or… #18455 (issue: #15492)
  • Move AsciiFolding earlier in FingerprintAnalyzer filter chain #18281 (issue: #18266)
CAT API
  • Add node name to Cat Recovery #18187 (issue: #8041)
  • Add support for documented byte/size units and for micros as a time unit in _cat API #17779
Core
  • Log OS and JVM on startup #18557
  • Add GC overhead logging #18419
  • Refactor JvmGcMonitorService for testing #18378
  • Default to server VM and add client VM check #18155
  • Add system bootstrap checks escape hatch #18088
  • Avoid sliced locked contention in internal engine #18060 (issue: #18053)
Dates
  • Support full range of Java Long for epoch DateTime #18509 (issue: #17936)
Discovery
  • Log warning if minimum_master_nodes set to less than quorum #15625
Exceptions
  • Make the index-too-old exception more explicit #18438
  • Add index name in IndexAlreadyExistsException default message #18274
Expressions
  • Support geo_point fields in lucene expressions #18096
  • Add support for .empty to expressions, and some docs improvements #18077
Ingest
  • Expose underlying processor to blame for thrown exception within CompoundProcessor #18342 (issue: #17823)
  • Avoid string concatentation in IngestDocument.FieldPath #18108
  • add ability to specify multiple grok patterns #18074 (issue: #17903)
  • add ability to disable ability to override values of existing fields in set processor #17902 (issue: #17659)
Inner Hits
  • Change scriptFields member in InnerHitBuilder to set #18092 (issue: #5831)
Internal
  • Do not automatically close XContent objects/arrays #18549 (issue: #18433)
  • Remove use of a Fields class in snapshot responses #18497
  • Removes multiple toXContent entry points for SnapshotInfo #18494
  • Removes unused methods in the o/e/common/Strings class #18346
  • Determine content length eagerly in HttpServer #18203
  • Consolidate query generation in QueryShardContext #18129
  • Make reset in QueryShardContext private #18113
  • Remove Strings#splitStringToArray #18110
  • Add toString() to GetResponse #18102
  • ConstructingObjectParser adapts ObjectParser for ctor args #17596 (issue: #17352)
Java API
  • Improve adding clauses to span_near and span_or query #18485 (issue: #18478)
  • QueryBuilder does not need generics. #18133
Mapping
  • Adds a methods to find (and dynamically create) the mappers for the parents of a field with dots in the field name #18106 (issue: #15951)
Network
  • Netty request/response tracer should wait for send #18500
  • Exclude specific transport actions from request size limit check #17951
Packaging
Parent/Child
  • Allow adding additional child types that point to an existing parent type #18446 (issue: #17956)
Plugin Lang Painless
  • improve painless whitelist coverage of java api #18533
  • Definition cleanup #18463
  • Made def variable casting consistent with invokedynamic rules #18425
  • Use Java 9 Indy String Concats, if available #18400 (issue: #18398)
  • Add method overloading based on arity #18385
  • Refactor WriterUtils to extend ASM GeneratorAdapter #18382
  • Whitelist expansion #18372
  • Remove boxing when loading and storing values in "def" fields/arrays, remove boxing onsimple method calls of "def" methods #18359
  • Some cleanups #18352
  • Use isAssignableFrom instead of relying on ClassCastException #18350
  • Build descriptor of array and field load/store in code #18338
  • Rename the dynamic call site factory to DefBootstrap #18335
  • Cleanup of DynamicCallSite #18323
  • Improve exception stacktraces #18319
  • Make Line Number Available in Painless #18298
  • Remove input, support params instead #18287
  • Decouple ANTLR AST from Painless #18286
  • _value support in painess? #18284
  • Long priority over Float #18282
  • _score as double, not float #18277
  • Add ctx keyword to painless. #18264
  • Painless doc access #18262
  • Retrieve _score directly from Scorer #18258
  • Implement needsScore() correctly. #18247
  • Add synthetic length property as alias to Lists, so they can be used like arrays #18241
  • Use better typing for dynamic method calls #18234
  • Array load/store and length with invokedynamic #18232 (issue: #18201)
  • Switch painless dynamic calls to invokedynamic, remove perf hack/cheat #18201
  • Add fielddata accessors (.value/.values/.distance()/etc) #18169
  • painless: optimize/simplify dynamic field and method access #18151
  • Painless: Single-Quoted Strings #18150
Plugins
  • Add plugin information for Verbose mode #18051 (issue: #16375)
Query DSL
  • Enforce MatchQueryBuilder#maxExpansions() to be strictly positive #18464
  • Don’t allow fuzziness for multi_match types cross_fields, phrase and phrase_prefix #18322 (issues: #6866, #7764)
REST
  • CORS handling triggered whether User-Agent is a browser or not #18283
  • Add semicolon query string parameter delimiter #18186 (issue: #18175)
  • Enable HTTP compression by default with compression level 3 #18066 (issue: #7309)
Reindex API
  • Make Reindex cancellation tests more uniform #18498
  • Makes DeleteByQueryRequest implements IndicesRequest #18466
  • Switch default batch size for reindex to 1000 #18340
  • Teach reindex to retry on search failures #18331 (issue: #18059)
  • Remove ReindexResponse in favor of BulkIndexByScrollResponse #18205
  • Stricter validation of Reindex’s requests_per_second #18028
Search
  • Introduces GeoValidationMethod to GeoDistanceSortBuilder #18036
  • Switches from empty boolean query to matchNoDocs #18007 (issue: #17981)
  • Allow binary sort values. #17959 (issue: #6077)
Search Refactoring
  • Removes the now obsolete SearchParseElement implementations #18233
Snapshot/Restore
  • Change BlobPath.buildAsString() method #18461
  • Remove the Snapshot class in favor of using SnapshotInfo #18167 (issue: #18156)
Stats
  • Do not return fieldstats information for fields that exist in the mapping but not in the index. #18212 (issue: #17980)
  • Add whether the shard state fetch is pending to the allocation explain API #18119 (issue: #17372)
  • Add Failure Details to every NodesResponse #17964 (issue: #3740)
  • Add I/O statistics on Linux #15915 (issue: #15296)
Translog
  • FSync translog outside of the writers global lock #18360

Bug fixes

Aggregations
  • Fix TimeUnitRounding for hour, minute and second units #18415 (issue: #18326)
  • Aggregations fix: support include/exclude strings for IP and dates #18408 (issue: #17705)
  • Fix xcontent rendering of ip terms aggs. #18003 (issue: #17971)
  • Improving parsing of sigma param for Extended Stats Bucket Aggregation #17562 (issue: #17499)
Analysis
  • Add Character.MODIFIER_SYMBOL to the list of symbol categories. #18402 (issue: #18388)
Bulk
  • Add not-null precondition check in BulkRequest #18347 (issue: #12038)
CAT API
Circuit Breakers
  • Free bytes reserved on request breaker #18204 (issue: #18144)
Cluster
  • Dangling indices are not imported if a tombstone for the index exists #18250 (issue: #18249)
  • Fix issue with tombstones matching active indices in cluster state #18058 (issue: #18054)
Core
  • Fix concurrency bug in IMC that could cause it to check too infrequently #18357
  • Iterables.flatten should not pre-cache the first iterator #18355 (issue: #18353)
  • Avoid race while retiring executors #18333
  • Don’t try to compute completion stats on a reader after we already closed it #18094
Highlighting
  • Skip all geo point queries in plain highlighter #18495 (issue: #17537)
  • Exclude all but string fields from highlighting if wildcards are used… #18183 (issue: #17537)
Ingest
  • Pipeline Stats: Fix concurrent modification exception #18177 (issue: #18126)
  • Validate properties values according to database type #17940 (issue: #17683)
Internal
Mapping
  • Make doc_values accessible for _type #18220
  • Fix and test handling of null_value. #18090 (issue: #18085)
  • Fail automatic string upgrade if the value of index is not recognized. #18082 (issue: #18062)
Packaging
  • Filter client/server VM options from jvm.options #18473
  • Preserve config files from RPM install #18188 (issue: #18158)
  • Fix typo in message for variable setup ES_MAX_MEM #18168
  • Don’t run mkdir when $DATA_DIR contains a comma-separated list #17419 (issue: #16992)
Percolator
  • Add support for MatchNoDocsQuery in percolator’s query terms extract service #18492
Plugin Discovery EC2
  • Add TAG_SETTING to list of allowed tags for the ec2 discovery plugin. #18257
Plugin Lang Painless
  • Remove Grammar Ambiguities #18531
  • Remove if/else ANTLR ambiguity. #18428
  • Fix insanely slow compilation #18410 (issue: #18398)
  • Fix Bug in Painless Assignment #18379
  • Fix bracket shortcuts #18263
Plugin Repository Azure
REST
  • Do not decode path when sending error #18477 (issue: #18476)
  • CORS should permit same origin requests #18278 (issue: #18256)
Search
  • Fix _only_nodes preferences #18483 (issues: #12546, #12700)
  • Speed up named queries. #18470
  • Fix parsing single rescore element in SearchSourceBuilder #18440 (issue: #18439)
  • Fail queries on not indexed fields. #18014
Settings
  • Use object equality to compare versions in IndexSettings #18103
  • fix exists method for list settings when using numbered setting format #17949
Snapshot/Restore
  • Fix race condition in snapshot initialization #18426 (issue: #18121)
  • Handle indices=["_all"] when restoring a snapshot #18025
Stats
Translog
  • Snapshotting and sync could cause a dead lock TranslogWriter #18481 (issues: #1, #18360, #2)