See issues on GitHub

Release Notes

Breaking changes:

You should also check this list of breaking changes when migrating towards elasticsearch 1.0.

  • Index API: Don't accept type wrapper in index request #4484
  • Query/Index API: Single shards APIs should fail if routing is required. #4506
  • Query API: Make doc lookups in queries/filters consistent #4486
  • Query API: The fields option should always return an array #4542
  • Query API: Remove the text and field queries #4033
  • Query API: Improve query/filter parsing strictness #4508
  • Query API: Make search APIs consistently accept a query param #4074
  • Query API: Make len parameters consistent across requests #4083
  • Query API: Change ignore_malformed to malformed across requests #4117
  • Delete API: Make index name required in DELETE index API #4481
  • Boosting: Deprecate document boost #4664
  • Returning _source data: Filtering shouldn't remove objects unless explicitly excluded #4715
  • Percolate API: Change the sort boolean option to the sort DSL available in search API #4625
  • Percolato API: Rename score to track_scores #4624
  • Analyze API: Support YAML as output format #4311
  • REST API: Move RestRequest to be an abstract class #4683
  • REST API: Change returned exists, found, not_found fields to always return found #4480
  • REST API: Remove hard-coded "ok" : true from successful REST responses #4310
  • REST API: Replace ignore_indices option with ignore_unavailable, expand_wildcards and allow_no_indices to be more flexible #4436
  • Settings: Remove engine.robin.refresh_interval #4706
  • Analyzers: Default stopwords list should be _none_ for all but language-specific analyzers #4699
  • Cluster Stats API: Expose min/max open file descriptors #4681
  • JVM Stats: Create standard gc and memory_pool names #4661
  • Stats API cleanups, removed clear and all flags, made parameters part of the URL
    • Nodes Stats API #4347
    • Cluster State API #4065
    • Nodes Stats API #4057
    • Nodes Info API #4055
    • Indices Stats API: Also supporting level parameter and translog stats #4054
  • Settings: Allow to disable destructive operations on all indices #4549
  • Mapping: Improve multi_field syntax #4521
  • Geo cleanup: The default unit for measuring distances now is meters everywhere #4515
  • Date handling: Dates without year are always set to 1970 now #4451
  • Start up mode: /bin/elasticsearch command now runs in foreground by default, use -d to daemonize #4392
  • Class renaming: Rename ElasticSearch* to Elasticsearch* #4634
  • Exceptions: Remove ElasticsearchInterruptedException and handle interrupt state correctly. #4712
  • Class renaming: Rename RobinEngine to LuceneEngine or DefaultEngine #4633

New features

  • Fedarated search: Tribe Node (experimental) #4708
  • Field data: Add field data circuit breaker to stop field data loading from running out of memory #4592
  • Field data: Add the ability to disallow field data loading #4431
  • Field data: Compress geo-point field data #4386
  • Field data: Doc values support for geo points #4207
  • Query API: Add support for Lucene's new SimpleQueryParser #4159
  • Query API: Return Term Count for search results #3920
  • Allocation: Do not allocate from nodes with newer lucene version to nodes with older lucene versions #4588
  • Index setting: Allow to enable/disable bloom filter loading on an index #4525
  • REST API: Add /_cluster/stats/ endpoint #4460
  • Scripting: Make term statistics accessible in scripts #3772
  • Highlighting: Allow to combine fields in the FastVectorHighlighter #3750
  • Packaging: Packages do not start on installation anymore #3722
  • Aggregations: Add a min_doc_count option to terms and histogram #4662

Enhancements:

  • Query API: has_child query can yield in wrong results if parent type has nested inner objects #4341
  • Query API: Fail geohash_cell filter if geohash prefix is not enabled in mapping #4335
  • Query API: Renamed top level filter param to post_filter #4119
  • Query API: Change geo bounding box format to be consistent with other implementations #4084
  • Query API: Rename various fuzziness/min_similarity parameters to edit_distance #4082
  • Query API: Expose flags in simple_query_string query #4490
  • Query API: The ignore_indices=missing option should also work for indices query/filter #3428
  • Query API: FastVectorHighlighter supports phrase_limit parameter #4645
  • Allocation: Combine cluster.routing.allocation.disable.* settings into one #4488
  • Allocation: Improve performance shard routing parsing #4459
  • Allocation: Improve RoutingNodes API #4458
  • Allocation: Deciders should be executed in order, starting at "cheap execution" and "most likely to return no" #4454
  • Nodes Stats API: Add a new usage metric to CPU stats #4374
  • Nodes Stats API: Add IO operation stats to the file system statistics #4344
  • Nodes Stats API: Add a total section to file system stats #4343
  • Nodes Info API: Add build hash #4570
  • Mapping API: Optimize dynamic mapping updates on master by processing latest one per index/node #4373
  • Mapping: Allow to disable sending a refresh-mapping to master node (only useful in a high mapping update environment) #4342
  • Mapping: Numeric field mappers encode doc values in binary doc values fields #3993
  • Mapping: Allow omit_norms for _all field #3734
  • Geo: More accurate and fast GeoDistance Function #4498
  • Geo: Using Haversine for accurate distance measurement #4596
  • Geo: Switched to use SloppyMathUtils for calculations #3862
  • Aggregations: Improve RangeAggregator when used as a sub-aggregator #4550
  • Aggregations: Stricter parsing for aggregations #4464
  • Aggregations: Support for ordinal-based string aggregations #4350
  • Build: Fix compilation on Java 8 and tests that rely on ordering #4510
  • Build: Added joda-convert library to dependencies and shading (fixes Scala compilation problems) #4660
  • Build: Fail if bin/elasticsearch tries to be run from a source tree #2954
  • Packaging: Set vm.max_map_count in startup scripts #4397
  • Settings API: Add internal get index settings api, used by the /_settings endpoint #4620
  • Settings API: Settings should be rendered in more readable way when human flag is set #4140
  • Settings: Removed term_index_interval/divisor settings #3912
  • Field data: Set default for circuit breaker to 80% of the maximum heap #4604
  • Field data: Take changes in field data settings on live indices immediately #4430
  • Cat API: Add _cat/aliases endpoint #4414
  • Cat API: Add cache numbers to cat/nodes #4543
  • REST API: Added tests for REST layer #4469
  • REST API: Expose headers in HttpRequest #4609
  • Aliases API: Allow IndicesAdminClient.getAliases() to return all aliases #4455
  • Get field mapping API: Allow field wildcards #4367
  • Percolate API: Multi-percolate should respect the rest.action.multi.allow_explicit_index setting #4284
  • Percolate API: Support postings highlighter #4385
  • Bulk API: Response has errors indication + status per item #4002
  • Warmer API: Dedicated Norms/Terms warm options in mappings #4079
  • Create Index API: Move to new acknowledgement mechanism #4421
  • Cluster Management: Evict existing node(s) with the same transport address on node join #4503
  • TransportClient: Expose filtered nodes on TransportClient #4571
  • Cluster/Index Management: IndicesLifecycle.Listener to support listening for any index shard state change #4413
  • API generic: Unify default ack timeout to 30 seconds #4395
  • Commandline: Allow to provide parameters via getopt long, like --path.data #4393
  • Plugin manager: Added new timeout option #4603
  • Cache recycling: Make PageCacheRecycler better reuse memory across threads #4647
  • Cache recycling: Improving cache recycling #4557
  • ByteSizeValue class now supports for TB and PB #4640

Bug fixes:

  • Multi data path config can cause a shard to be perceived as corrupted #4674
  • Mapping API: all field uses wrong setting for term vectors #4581
  • Mapping API: all field might loose configuration on serialization. #4579
  • Mapping API: GeoPointFieldMapper.doXContentBody doesn't honor includeDefaults #4563
  • Mapping API: Explicit setting of doc values #4560
  • Mapping API: Some mappers are missing from MapperBuilders #4423
  • Mapping API: Batch processing mapping updates can cause missed merged mappings when batching multiple types #4410
  • Boosting: Fixed _all field boosting as it was broken unless very specific conditions were met #4315
  • Percolate API: Incorrect results with auto create type. #4415
  • Percolate API: Adding force_source to support highlighting for Percolate API in stored fields #4348
  • Percolate API: Request parsing issue #4325
  • Percolator Stats: Expose number of queries #4440
  • Query API: NullPointerException in bool filter #4685
  • Query API: Query String caching could cause matched_filters not to work #4361
  • Query API: Apply slop correctly if phrase query is wrapped in a filtered query #4356
  • Query API: Stop FastVectorHighlighter from throwing away some query boosts #4351
  • Query API: Named filter and query don't work with parent/child queries #4534
  • Query API: Execution of a search request of a local replica could possibly end up in a network thread #4526
  • Query API: Search with terms lookup might get stuck while doing a get for the terms #4519
  • Bulk API: Disabling allow_explicit_index breaks bulk #4668
  • Index API: Empty objects are not stored in _source, when an include/exclude list is present #4047
  • Suggest API: Term suggester throws Exception, if different analyzsis chains are used across indices #3196
  • Index Close API: Closing all indices doesn't work when using wildcard only #4564
  • Cluster Health API: Fixed wrong shard count if one of the indices is in RED status #4528
  • Settings API: REST endpoint should not take timeout and master_timeout as index parameters #4692
  • Settings API: Term Vector settings should be treated without affecting each other #4582
  • Rest API: Double wildcards in the the index name can cause a request to hang #4610
  • Cat API: Fix problems in for local nodes #4572
  • Cat API: Fixed NullPointerException in /_cat/shards endpoint when shard is UNASSIGNED #4544
  • Allocation: Don't delete local shard data when its allocated on a node that doesn't exists #4502
  • Allocation: Cancel allocation fails to reset the state of the source shard when moving #4457
  • Allocation: BalancedShardAllocator might trigger unnecessary relocation under rare circumstances #4630
  • Allocation: Accidentally overwrote values regardless of if-statement #4390
  • Snapshot/Restore API: Snapshots with missing or failed shards could hang on restore operation #4701
  • Aggregations: Sorting by sub-aggregation is broken in terms agg #4643
  • Aggregations: FieldDataSource.Bytes.SortedAndUnique returned wrong hashes #4330
  • File based template loading: Template mappings are not loading #4511
  • File based template loading: Problem picking up templates in the config/templates directory #4411
  • License: Fix Elasticsearch License Headers #4636
  • Shardrouting: NullPointerException in IndexShardRoutingTable.getActiveAttribute #4589
  • Caching: Refresh the id_cache if a new child type with _parent field has been introduced #4568
  • Field data: Remove IndexFieldData.getHighestNumberOfSeenUniqueValues() #4426
  • Shutdown: Resolve potential deadlock state during EsThreadPoolExecutor shutdown #4334