0.20.0.RC1
Release Notes:
Upgrade Notes:
- Upgrading from 0.19 requires a full cluster restart.
Breaking changes:
- Introduce Text abstraction, allowing for improved representation of strings, apply to HighlightedField (breaks backward for Java API from String to Text) (#2093)
- Stored binary fields to change internal representation (break Java API if used) (#2092)
- Transport: Add header token allowing to more easily identify when illegal content is being sent (#2280)
New features:
- Add types exists api (#2273)
- Add has_parent query (#2254)
- Add
has_parent
filter (#2243)
- Add ignore_indices option (#2209)
- Bulk UDP (#2201)
- Explain API (#2184)
- Support GeoShape searching and indexing (#2169)
- Multi match query (#2153)
- Cluster Nodes hot_threads API (#2134)
- Support wildcard and +/- notation for multi index APIs (#2074)
- Auto import dangling indices (#2067)
- Store Throttling (node level and/or index level) with options on merge or all (#2041)
- Stored Fields Compression (#2037)
- Allow to customize quote analyzer to be used when quoting text in a query_string (#1931)
- Index Warmup API (#1913)
- Upgrade to Lucene 3.6 (#1862)
- Cluster Reroute API: Allow to specify allocation commands (#2256)
- Compression: Support snappy as a compression option (#2081)
- Create Index: Allow to provide index warmers when creating an index (#1917)
- Index Blocks: Add index.blocks.write, index.blocks.read, and index.blocks.metadata settings (#1771)
- Index Template: Allow to register index warmers in an index template (#1916)
- Mapping: Add
index_options
(deprecating omit_term_freq_and_positions) (#2346)
- Query DSL: query_string syntax to support wildcard fieldnames in the query text (#1936)
- Store Compression: Term Vector Vector (#2049)
- Update API: Allow to upsert, provide a doc and index it if the doc does not exists (#2008)
Enhancements:
- Auto create index to support white/black lists of index patterns (#2344)
- Upgrade to netty 3.5.8 (#2299)
- Upgrade to Spatial4j 0.3 (#2268)
- Add id cache size to nodes stats api (#2264)
- Add better error handling for has_child, has_parent and top_children. (#2261)
- Include bloom & id cache size in node stats api (#2259)
- Improve
has_child
filter / query performance (#2251)
- Upgrade to netty 3.5.7 (#2240)
- Upgrade to mvel 2.1.1 (#2228)
- Add fields options to explain api (#2203)
- Reduce index.shard.recovery.concurrent_streams from 5 to 3 to reduce the load when doing recovery (#2198)
- Upgrade to netty 3.5.5 (#2196)
- MinimumNumberShouldMatch inconcistency (#2194)
- Support YAML as content type (#2190)
- Upgrade to Netty 3.5.4 (#2180)
- Add lenient option to match & multi_match queries (#2156)
- Rename text query to match query (text query still works, with variants) (#2150)
- word_delimiter token filter does not honor “type_table” option. (#2145)
- Improve recovery time when processing large mappings (#2138)
- Increase default recovery chunk size (#2125)
- Upgrade to Netty 3.5.3 (#2119)
- ShingleTokenFilterFactory doesn’t expose all relevant settings (#2116)
- Upgrade to Lucene 3.6.1 (#2110)
- Upgrade to Netty 3.5.2 (#2084)
- getSourceAsString() for doc inserted as SMILE fails, auto convert to JSON (#2064)
- Use bloom filter when flushing (applying deletes) (#2058)
- “index_analyzer” and “search_analyzer” should override “analyzer” (#2052)
- Return 503 when threadpool limit is reached (#2048)
- Allow to pass es.default. settings to the process, using it as default value unless specified in the config file (#2016)
- Allow to filter client and “just” data nodes from controlling elected master (default client to true) (#2014)
- Upgrade to Netty 3.5.0.Final (#2013)
- Upgrade to Netty 3.4.5 (#1958)
- Upgrade to guava 12.0 (#1920)
- Binary field is stored by default, allow to disable it (#1919)
- Upgrade to netty 3.4.3.Final (#1914)
- Upgrade to Netty 3.4.2 (#1909)
- Upgrade to jackson 1.9.7 (#1908)
- Support Java Date when serializing update parameters (#1902)
- Upgrade to Netty 3.4.1.Final (#1878)
- Better handling of fields that have
.
in their name when doing property based navigation (#1875)
- Upgrade to Netty 3.4.1 (#1863)
- add an index level setting to disable/enable purging of expired docs (is… (#1808)
- Have streams provided to gateway (shared one) allow marking (#1803)
- Highlighting using the default highlighter (not using term vectors) only highlights on the first 50*1024 chars (#1796)
- Java API for require_field_match (#1795)
- Add an index level setting to disable/enable purging of expired docs (#1791)
- Add
cache
thread pool to handle cache loading of async caches (bloom filter) (#1777)
- Init script in Debian package ignores some options in elasticsearch.yml (#1765)
- All Field: Automatically detect when field level boosting is used, and optimize when its not (#2189)
- Analysis: Custom analyzer to allow to configure position_offset_gap and offset_gap (#1812)
- Bulk API: Allow to control if its compressed or not using
action.bulk.compress
(defaults to true which is current behavior) (#1850)
- Date Histogram Facet: Add
quarter
as an interval (#1884)
- Debian: Update deps to be on openjdk-7-jre-headless first, then 6 (#1929)
- Disable allocation: New indices allocation not to be disabled by default (#2258)
- Discovery: Join process to better validate join request (#2019)
- Get: Add a specific
get
thread pool that handles get request (#1778)
- Get API:
- Allow to provide a parent value which automatically set the routing value (#1961)
- When _source is disabled, the source is still used if fetched from the transaction log (#1927)
- Index level allocation filtering: Add _host option (#1991)
- Java API: Improve TransportClient in sniff mode to be more lightweight on connections and API (#1898)
- Java API Query DSL: Add wrapper filter similar to wrapper query accepting a json filter in raw format (#1844)
- Mapping:
index.mapping.ignore_malformed
global index setting (#2220)
- String type to allow for a “ignore_above” size parameter, above which it will ignore the content (#2121)
- Numeric/Date types to have a flag to ignore wrongly formatted values (#2120)
- Allow to specify enabled set to false on a property without specifying the type (#1959)
- Allow to configure position_offset_gap for string mapping (#1813)
- Multi Search API: Allow to set search_type on REST endpoint URI to apply to all search requests (#2023)
- Network: Add network.address.serialization.resolve setting (defaults to false) to always resolve publish address based on host name (#1899)
- Node Stats:
- Add jvm buffer pools stats (when available, for java 7 and above) (#2122)
- Add timestamp per node stats element (#1851)
- Nodes level API: Allow to specify
data:true
to only execute the APIs on data nodes (#2232)
- Percolator Index: Don’t index the
query
element in a percolated query (#1949)
- Query DSL:
- Add more fuzzy options in different queries (text, query_string/field) (#1974)
- Add max_boost to custom_filters_score to cap boosting (#1973)
- term/terms filter performance improvement (bulk reading) (#1972)
- text query to support minimum_should_match (#1971)
- Add null_value and existence to missing filter, filtering both null values and missing fields (#1969)
- Add null_value and existence to missing filter, filtering both null values and missing fields (#1970)
- filtered query to support null filter or {} filter (in which case, just the query is executed) (#1900)
term
filter to support the more “complex” form similar to term
query (#1830)
- indices filter type (#1787)
- Query String: Add
lenient
flag to support value parse failures (#1932)
- Query String URI: Add
lenient
to the URI q
parameters. (#1937)
- Rest API: Add
HEAD
support for /{index}/{type}/{id}
to quickly check if doc exists or not (#2047)
- Scripting: Allow to disable dynamic script execution (#1763)
- Search Preference: Add _shards prefix to explicitly list shards, and add _prefer_node option (#1904)
- Search/Get: Add preference option of
_primary_first
trying to primary first and then replicas (#1824)
- Shard Allocation:
index.routing.allocation....
settings do not “remove” the setting on empty string (#2229)
- Support for Latvian stemming:
latvian
analyzer and latvian
language for stemmer filter (#1842)
- Terms filter: Add
or
and or_nocache
execution modes (#2306)
- Thread Pool: Allow to configure the queue_type for fixed thread pool (linked/array), defaults to array (#2086)
- Transport Client:
- Add
client.transport.ignore_cluster_name
to ignore the cluster name validation, defaults to false
(#1910)
- When adding an address was already added, ignore it (#1906)
- Transport/Http: Remove explicit setting of send/receive buffer, and improve netty receive buffer predictor (#2124)
- Update API: Allow to specify fields in the request to return updated fields (#1838)
- Update Settings API: Allow body request to be wrapped with
settings
element to conform with other APIs (#2227)
Bug fixes:
- Aliases API times out when actions end up with no actual change to aliases (#2345)
- Highlighting fails for ConstantScoreQuery (#2332)
- Setting index_analyzer incorrectly sets analyzer (#2329)
- has_child / has_parent filters can throw NPE when either child or parent documents aren’t indexed yet (#2297)
- query_string on multiple fields with “*” fails in 0.19.9 (#2296)
- Bulk Delete item when broadcast to all shard (lack of routing) might not be applied correctly (#2285)
- custom_filters_score with score_mode first doesn’t return explanation correctly (#2283)
- failed shard while its being the source of relocation can cause inconsistent cluster state (#2242)
- Field boosts not used in multi_match query (#2241)
- Explain api opens 2 engine searchers, but closes only 1 engine searcher, causing resource leak (#2206)
- 0.19.9 no longer supports /all/status (#2205)
- IndexMissingException when calling _mlt on client node (#2197)
- Incorrect application of boost in SpanNotQueryBuilder (#2192)
- (full) recovery memory based indices with local gateway, don’t fail them (#2077)
- Exists API can send response body (#2072)
- dangling index handling might still remove the state files for the dangling index (#2065)
- Setting index to no ends up using by default the “keyword” analyzer on it, which means one can’t highlight on it when searching on _all (#2062)
- deb package fails to start elasticsearch (#2053)
- elasticsearch fails to start due to verification error (#2051)
- Failure to recover properly on node(s) restart (#2046)
- Improve cluster resiliency to disconnected sub clusters + fix a shard allocation bug with quick rolling restarts (#2042)
- fix bug index.ttl.disable_purge should be in IndexMetaData (#2020)
- .DS_Store file in .deb package (#2017)
- Quoted query_string gives NullPointerException with not_analyzed field (0.19.4) (#2006)
- TransportClient does not load plugins (#1982)
- Get mapping with no index specified on an empty cluster returns 404 (#1976)
- Index Templates settings provided in a config file fails to load properly (#1960)
- GET document response returns exists field twice (#1926)
- River name re-use not possible between node shutdowns (#1921)
- When setting
index.recovery.initial_shards
in the config file, it is ignored (#1912)
- ClassCastException during percolation query (#1905)
- When a node disconnects from the cluster (not enough master nodes, or a client node) and rejoins it might not update its internal routing table (#1896)
- JDK 7 requires minimum of 256k stack size, update scripts to set it (#1892)
- On recovery (startup), the recovery translog file handle is not properly closed (#1866)
- NullPointerException in geo_distance_range without to (#1865)
- XContentBuilder throws NPE on null Boolean (#1853)
- Setting index.auto_expand_replicas in the elasticsearch config file does not apply (#1852)
- Number of replicas setting can not be set on a closed index (#1845)
- Relocation of shards causes bulk indexing client to hang (#1839)
- Disabling deletion of all indices does not work when using _all (#1834)
- requesting fields=timestamp,source won’t return _source (#1833)
- Getting _settings or _mapping for non-existing index returns 200 OK (#1828)
- TransportClient (sniff) fails to reconnect to nodes once removed if all nodes are removed (#1819)
- TransportClient hangs when in sniff mode and no node running (#1818)
- Indexing a document in smile format and getting it through REST in json format fails (#1816)
- Index Update Settings API does not update settings in real time (#1807)
- Get/MultiGet API with no type provided and doc does not exists causes a failure (#1794)
- When
node.data
is set to false
, the upgrade shards process from 0.18 fails (#1793)
- IOException when restricting fields and returning nested arrays. (#1774)
- mlt_field doesn’t support boost (#1773)
- Closing a shard can cause a search/stats request that tries to acquire a handle to search while its closing to spin (#1772)
- RemoteTransportException on _analyze request to specific index (#1770)
- Special host config notation
_[interfaceName]_
might fail to resolve the host address (#1754)
- Date Histogram facet fails with “pre_zone” : “+02:00” (#2141)
- ElasticSearchIllegalStateException: stream marked as compressed, but no compressor found on transport layer (#2076)
- Highlighting: Using “plain” (non term vector) highlighting with custom score within a filtered query fails to highlight (#1894)
- Index Merge Scheduler: Configuring using
serial
fails to load (#1901)
- Java API: Calling SearchHit#sourceAsString will not decompress the source to convert it to string (#1814)
- Local Gateway: old global state files are not properly deleted (#2085)
- Mapping:
- Using default mapping type with _source excludes (or array based config) can cause the array to grow indefinitely (#2317)
- Using default mapping _routing mapping definition fails to apply when introducing type through indexing (#1967)
- default mapping with dynamic templates can cause them to double on each restart (#1964)
- Node Stats: OS stats reporting free as the key instead of used (#1804)
- Percolator:
- Registering (indexing) a new percolator query will still be stored in memory if actually indexing it fails (#1965)
- Wrongly using analyzer configured for the actual index on percolator filtering (#1948)
- Filtering percolators based on a query can cause wrong matches to be returned (#1925)
- Shutdown API: When sending an “all” shutdown, it also shutsdown node clients (#1939)
- Store Compression: integer overflow causes failed reads (index is safe) (#2071)
- Stored Compression: failure to fetch document in certain cases (read failure, index compression works) (#2055)
- Translog: Buffering translog does not write directly to the file channel but to RAF, which causes problems reading from the channel on windows (#1887)
- Update API: Update through an alias with routing configured on it fail to use the routing (#2155)
- deb: ES_HEAP_SIZE not exported (#1947)