Elasticsearch 1.2.0 [REMOVED]


See issues on GitHub

Release Notes

This release has been removed as it contained a serious bug, fixed in v1.2.1.

Breaking changes

  • Java: Use the maven enforcer plugin to work only with java 1.7 #5421
  • Scripting: Disable dynamic scripting by default #5943
  • Configuration: Change default filter cache to 10% and circuit breaker to 60% to prevent unwanted OOMs #5990
  • Snapshot/Restore API: Added PARTIAL snapshot status #5792
  • Gateways: Removed deprecated gateway functionality (in favor of snapshot/restore) #5520
  • Versioning: Version types EXTERNAL & EXTERNAL_GTE test for version equality in read operation & disallow them in the Update API #5929
  • Versioning: A Get request with a version set always validates for equality #5663
  • Versioning: Calling the Update API using EXTERNAL and EXTERNAL_GTE version type throws a validation error #5661
  • Aggregations: Changed response structure of percentile aggregations #5870
  • Cluster State API: Remove index template filtering #4954
  • Nodes Stats API: Add human readable JVM start_time and process refresh_interval #5280
  • Java API: Unified IndicesOptions constants to explain intentions #6068
  • Internal: Removed operation threading from broadcast actions #6044
  • Internal: Remove search operation threading option #6042
  • Internal: Ordinals now start with zero #5871
  • Internal: Make IndexingOperation/Create/Delete classes less mutable #5939
  • Internal: Refactored and cleaned up REST infrastructure #5612
  • Internal: Remove Releasable in favor of Closeable #5423

New features

  • Aggregations: Add reverse_nested aggregation #5485
  • Aggregations: Added extended_bounds support for date_/histogram aggs #5444
  • Aggregations: Added option for a backgroundFilter in significant_terms agg #5944
  • Function score: Support multi values #5940
  • Function score: Added field_value_factor function, a shortcut for simple script score calculations #5519
  • Suggestions: Added support for contexts in the completion suggester #4044
  • cat API: Added /_cat/fielddata endpoint to display fielddata usage #6086
  • More like this Query API: Support searching for multiple similar documents specified by ids #5857
  • Doc Values: Added support for binary fields #5669
  • Internal: Added FreqTermsEnum which has built-in caching for more performance #5597
  • Lucene: Added support for uppercase token filter #5539

Enhancements

  • Indexing: Don't lookup version for auto generated id and create immediately #5917
  • Indexing: Throttle incoming indexing when Lucene merges fall behind #6066
  • Indexing: Change default numeric precision_step #5905
  • Function Score API: Parser should throw exception if both options, functions:[] and single, are specified #5995
  • Field data: Added a AppendingDeltaPackedLongBuffer-based storage format to single value field data #5706
  • Field data: Add global ordinals #5672
  • Field data: Moved the decision to load p/c fielddata eagerly to a better place. #5569
  • Aggregations: Add global ordinal based implementations for significant_terms aggregation #5970
  • Aggregations: Add include/exclude support to global ordinals in terms and significant_terms aggregations #6000
  • Aggregations: Improve the way sub-aggregations are collected. #5975
  • Aggregations: Use collectExistingBucket() if a bucket already exists #5955
  • Aggregations: Improve terms aggregation to perform the segment ordinal to global ordinal lookup post segment collection #5895
  • Aggregations: Use segment ordinals as global ordinals if possible #5873
  • Aggregations: Instantiate facets/aggregations during the QUERY phase #5821
  • Aggregations: Refactor common code for unmapped aggregators into NonCollectingAggregator. #5528
  • Aggregations: Fail queries that have two aggregations with the same name #6258
  • Throttling: Change default recovery throttling to 50MB / sec #5913
  • More Like This API: Fix behavior on default boost factor for More Like This. #6021
  • More Like This API: Added the ability to include the queried document for More Like This API. #6067
  • Index Settings API: Allow to change concurrent merge scheduling setting dynamically #6098
  • Translog: Use unlimited flush_threshold_ops for translog to prefer size based flushing #5900
  • Translog: Fix visibility in buffered translog #5609
  • Java API: Made it mandatory to specify IndicesOptions when calling MetaData#concreteIndices #6059
  • Java API: Unified MetaData#concreteIndices methods into a single method that accepts indices (or aliases) and indices options #6169
  • Cluster state: Added new ClusterStateStatus to indicate cluster state life cycles #5741
  • Cluster state: Unify cluster state update on mapping change #5798
  • Cluster state: When sending shard start/failed message due to a cluster state change, use the master indicated in the new state rather than current #6189
  • Parent/Child: Make use of global ordinals in parent/child queries #5846
  • Parent/Child: Fix Parent/Child assertions for rewrite reader #5731
  • Discovery: Unicast discovery enhancement #5508
  • Discovery: MulticastChannel returned wrong channel in shared mode #5441
  • Mapping API: Allow to parse lat/lon geo points as strings and coerce them #5626
  • Mapping API: Support empty properties array in mappings #5887
  • Mapping API: Norms disabling on existing fields #4813
  • Scripting: Log script change/add and removal at INFO level #6104
  • Scroll Search API: Improve scroll search performance by using Lucene's IndexSearcher#searchAfter(...) #4940
  • REST Clear Scroll API: Return missing (404) if a scroll_id is cleared that no longer exists #5865
  • Index Status API: deprecate index status #4854
  • Replication: Fail replica shards locally upon failures #5847
  • Configuration: Remove spaces from commented config lines in elasticsearch.yml and logging.yml #5842
  • Circuit breaker: Include name of the field that caused a circuit break in the log and exception message #5841
  • Networking: Use loopback when localhost is not resolved #5719
  • Settings: Add getAsRatio to Settings class, allow DiskThresholdDecider to take percentages #5690
  • Query internals: Enforce query instance checking before it is wrapped as a filter #5431
  • Query API: Throw exception if an additional field was placed inside the query body #4913
  • Highlighting API: Java API does not have a way to set global highlighting settings #5281
  • Validate Query API: Query validation did not detect extra JSON properties after the query property #5685
  • Bulk API: Added BulkProcessor.flush() method #5575
  • Delete by Query API: Capture and set start time in Delete By Query operations #5540
  • cat API: Add configured thread pool sizes to _cat/thread_pool #5366
  • Plugins: Allow to check for Lucene version #4984
  • Format: Support CBOR data format #4860
  • Nodes stats API: Add suggest stats #4032
  • cat API: _cat/recovery endpoint now also shows relocations #4030
  • Circuit breaker: Track the number of times the CircuitBreaker has been tripped #6134
  • Tribe node: Index level blocks, index conflict settings #5501
  • Startup: Add possbility to display full stack trace of exception #5102
  • Dependencies: Use T-digest as a dependency and remove built-in code #6142
  • Dependencies: Upgrade to Guava 17 #5953
  • Dependencies: Upgrade to Lucene 4.8.0 #5932
  • Dependencies: Upgrade to Lucene 4.7.2 #5802
  • Dependencies: Upgrade to Lucene 4.7.1 #5635
  • Dependencies: Upgrade to mvel 2.2.0.Final #5877
  • Dependencies: Update forbidden-apis to 1.5.1 and remove the relaxed failOnMissingClasses setting, fix typo #5863
  • Dependencies: Update to forbidden-apis 1.4.1 #5492
  • Dependencies: Update JNA to 4.1.0, properly warn on error, hint at noexec mount #5636
  • Dependencies: Update shade-plugin to 2.3 #6015
  • Release: Release should fail if test are annotated with @AwaitsFix #5807
  • Release: Check for no open issues before build release #5801
  • Internal: Remove SoftReferences from StreamInput/StreamOutput #6208
  • Internal: RecoveryID in IndicesClusterStateService should not be a per JVM but per Node #6207
  • Internal: Forbid Math.abs(int/long). #5562
  • Internal: Limit the number of bytes that can be allocated to process requests. #6050
  • Internal: Improved bloom filter hashing #5901
  • Internal: Ensure IndexEngine.close() is called under lock in the case of an engine failure #5800
  • Internal: Make StreamOutput.writePrimitive*() and StreamInput.readPrimitive*() methods public. #5710
  • Internal: LongHash add/key not consistent #5693
  • Internal: Added releasable bytes output, which is uses in transport / translog #5691
  • Internal: Make Releasable extend AutoCloseable. #5689
  • Internal: Fail the engine/shard when refresh failed #5633
  • Internal: BytesReference.Helper should never materialize a byte[] array. #5517
  • Internal: XFilteredQuery defaults to Query First strategy [OPEN] #6247
  • Internal: Internally manipulate the terms execution hint as an enum instead of a String. #5530
  • Lucene: Use non analyzed token stream optimization everywhere #6001
  • Lucene: Enable turning on IndexWriter's infoStream #5891
  • Lucene: Prevent fsync from creating 0-byte files #5746
  • Lucene: Exposed LMSimilarity in Elasticsearch #5697
  • Lucene: Remove SerialMergeScheduler #6120
  • Lucene: Include thread name when logging IndexWriter's infoStream messages #5973
  • Lucene: Fix Lucene's getFiniteStrings() to not consume Java stack #5927
  • Transport API: Raise node disconnected exception even if the transport is stopped #5918
  • Cleanup: Some minor cleanups from findbugs report #6210
  • Cleanup: Fix code typo in FieldSortBuilder.java #5937
  • Cleanup: Cleaning up FileSystemUtils class #5806
  • Cleanup: REST layer refactoring phase 2 + recycling in HTTP layer #5708
  • Cleanup: Aggregation cleanup #5699
  • Cleanup: Aggregations cleanup #5614
  • Cleanup: StringBuilder should be used in place of StringBuffer #5605
  • Cleanup: Variable renamings to reduce unnecessary variable naming diversity #5075
  • Cleanup: Remove unused dump infra #6060
  • Cleanup: Field data diet #5874

Bug fixes

  • Mapping API: stem_exclusion as array not working in language analyzers #6237
  • Mapping API: Remove RootMapper.validate and validate the routing key up-front #5844
  • Mapping API: Check if root mapping is actually valid #5864
  • Mapping API: geo_point doesn't allow null values as of 1.1.0 #5680
  • Mapping API: Fix mapping creation on bulk request #5623
  • Mapping API: Fix include_in_all for multi fields #5522
  • Mapping API: GeoPointFieldMapper did not merge GeoPoint specific properties #5505
  • Mapping API: Throw error when updating binary field mapping to be stored #5474
  • Mapping API: Fix dynamic_type in dynamic_template #5256
  • Query API: Search might not return on thread pool rejection #6032
  • Query API: limit filter returns wrong results if deleted document are present #6234
  • Query API (internal): Don't report terms as live if all it's docs are filtered out #6221
  • Query API: Executing match_query to search only for an integer could result in a NullPointerException #6215
  • Query API: Lots of warn logs related to FreeContext due to not deserializing the full message #6147
  • Query API: Allow sorting on nested sub generated field #6151
  • Query API: optimize_bbox for geo_distance filters could cause missing results #6008
  • Query API: Range/Term query/filter on dates fail to handle numbers properly #5969
  • Query API: Parse has_child query/filter after child type has been parsed #5838
  • Query API: TemplateQueryParser swallowed additional parameters #5933
  • Query API: match_phrase_prefix broken in case of single term queries #5551
  • Search Template API: Made template endpoint compatible with search endpoint #5619
  • Search Template API: search_template does not support ?source= #5556
  • Validate Query API: Validate query ignores type filter #6116
  • Validate Query API: Validate query ignores alias filters #6112
  • Validate Query API: Validate query without a body throws an NPE #6111
  • More Like This API: Take size and from in request into account #5981
  • Suggest API: tie-break suggestions by term in phrase suggester #5978
  • Suggest API: Fix various context suggester issues #5525
  • Suggest API: Require precision in mapping for context suggester geo locations #5647
  • Suggest API: Renamed category type to "category" instead of "field" in context suggester #5469
  • Delete by Query API: Disabled parent/child queries in the delete by query api #5916
  • Analyze API: Default analyzer includes stopwords #5974
  • cat API: _cat/allocation return values are not consistent for clients nodes #5948
  • Scroll API: Reduce phase fails if shard failures occur #6022
  • Snapshot/Restore API: Unregistering snapshot repositories causes thread leaks #6181
  • Snapshot/Restore API: Fix hanging aborted snapshot during shutdown #5958
  • Snapshot/Restore API: Fix for hanging aborted snapshot during node shutdown #5966
  • Snapshot/Restore API: Snapshot Status failing without repository #5790
  • Snapshot/Restore API: Add an ability to snapshot relocating primary shards #5531
  • Snapshot/Restore API: Switch to shared thread pool for all snapshot repositories #6182
  • Field data: Fix setting of readerGen in BytesRefOrdValComparator on nested documents #5986
  • Field data: Provide meaningful error message if field has no fielddata type #5930
  • Field data: Add a dedicated field data type for the _index field mapper #5848
  • Field data: Remove ScriptDocValues.EMPTY #5646
  • Field data: Eager fielddata loading not working #5557
  • Field data: Global ordinals cause ClassCastExceptions if used with a bounded fielddata cache #6260
  • Search Scroll API: Throw better error if invalid scroll id is used #5738
  • Search Scroll API: Missing scroll ID no longer returns exception #5729
  • Clear Scroll API: Clear scroll should accept scroll_id in body #5726
  • Percolation API: Percolator doesn't reduce CircuitBreaker stats in every case. #5588
  • Percolation API: The percolator needs to take deleted percolator documents into account. #5843
  • Percolation API: Propagate percolate mapping changes to cluster state #5776
  • Percolation API: Fix assertion in percolation with nested docs #6263
  • Aggregations: Parsing is now more strict #5837
  • Aggregations: DateHistogram.Bucket should return the date key in UTC #5477
  • Aggregations: A nested nested aggregation falls outside of its parent nested aggregation bounds #5728
  • Aggregations: Add shard_min_doc_count parameter to terms aggregation #6143
  • Aggregations: Add shard_min_doc_count parameter for significant terms similar to shard_size #6041
  • Aggregations: Lower the initial sizing of sub aggregations #5994
  • Aggregations: Remove abstraction in the percentiles aggregation. #5859
  • Allocation: Failed shards could be re-assigned to the same nodes if multiple replicas failed at once #5725
  • Allocation: Fix format string for DiskThresholdDecider reroute explanation #5749
  • cat API: ElasticsearchIllegalStateException when invoking /_cat/plugin endpoint #5715
  • cat API: Node version sometimes empty in _cat/nodes endpoint #5480
  • Transport: Fixed NPE when initializing an accepted socket in NettyTransport. #6144
  • Transport: A master node operation can timeout in a rare race condition when a master has a connection issue which is quickly restored #5499
  • Recovery: Do not start a recovery process if the primary shard is currently allocated on a node which is not part of the cluster state #6024
  • Recovery API: Percent bytes recovered greater than 100% #6113
  • REST Recovery API: Empty HTTP body returned from _recovery API on empty cluster #5743
  • Throttling: Store IO throttling throttles far more than asked #6018
  • Merging: Ensure pending merges are updated on segment flushes #5779
  • Time-to-live: TTL Purge Thread might bring back already deleted index #5766
  • Tribe node: Fix possible NullPointerException if index doesn't exist #5643
  • Cluster State: Added the cluster name as its identifier #5622
  • Function score: Fixing questionable PNRG behavior in random score #5613
  • Discovery: Count latch down if sendsPing throws exception #5440
  • Bulk API: Ensure that specific failures do not affect whole request #4987
  • Search API: Search might not return on thread pool rejectio #4887
  • Cluster State: Added tighter check for cluster state change on master node operations #5548
  • Build: Mustache dependency not shaded #6192
  • Internal: Restore read/write visibility in PlainShardsIterator. #6039
  • Internal: Fix bug in PropertyPlaceholder and add unit tests #6034
  • Internal: MetaData#concreteIndices now throws exception with a single index argument if allowNoIndices == false #6137
  • Internal: Closing an IndexReader on an already relocated / closed shard can cause memory leaks #5825
  • Internal: Make sure successful operations are correct if second search phase is fast #5713
  • Internal: Aggregations could keep pages in case of errors #5703
  • Internal: Fixed possible NullPointerException in PagedBytesReference by taking stream position into account #5667
  • Internal: Replace InternalSearchResponse#EMPTY with InternalSearchResponse#empty() #5775
  • Internal: JsonXContentGenerator#writeRawField produced invalid JSON if raw field was first field in the json object #5514
  • Internal: IndexShardRoutingTable might barf due to an overflow if it has handled lots of searches #5559
  • Internal: Searcher might not be closed if store handle could not be obtained #5884
  • Cleanup: Fix some warnings reported by findbugs #5571

Regression

  • Merging: Switch back to ConcurrentMergeScheduler as the default #5817
  • Versioning: Indexing a document fails when setting version=0 & version_type=external #5662