0.19.0.RC1
Release Notes:
Upgrade Notes:
- Upgrading from 0.18 requires issuing a full flush of all the indices in the cluster (
curl host:9200/_flush
) before shutting down the cluster, with no indexing operations happening after the flush.
- The local gateway state structure has changed, a backup of the state files is created when upgrading, they can then be used to downgrade back to 0.18. Don’t downgrade without using them.
Breaking changes:
- Blank routing should be ignored (#1450)
- Highlighting on term vector enabled field should not highlight filters by default (#1469)
- Migrate built in plugins to their own repos (#1520)
- Move project build to maven (#1523)
- Move phonetic token filter to a plugin (#1594)
- Improve serialization (stream) of UTF strings, note, requires flush when upgrading (#1595)
- Date Histogram Facet: Improve time zone handling, add factor option (#1580)
- Date Range: Inclusive upper range does not round up properly (#1463)
- Java API: Move all request builders to org.elasticsearch.action… from org.elasticsearch.client.action (#1611)
- Node Stats API: Add specific flags for stats, simplified REST paths (#1597)
- Nodes Info API: Allow to specify which info to get back, simpler URI paths (#1596)
- Thread Pool: Add a specific thread pool for bulk indexing operations (#1668)
New features:
- Index shard search slow log (query and fetch) (#1462)
- Upgrade to Lucene 3.5 (#1502)
- Support Multicast discovery for external clients (#1532)
- Set an index / indices to read only, or make the cluster read only (#1573)
- Add query validation feature (#1574)
- Add thread_pool to nodes info and nodes stats APIs (#1601)
- Add generic execution of APIs to Client (and indices/cluster) and allow for plugins to register custom APIs (#1612)
- Local Gateway: Store specific index metadata under dedicated index locations (#1631)
- Plugins: Allow for plugins to implement onModule method that will be automatically injected with the relevant module type (#1613)
- Search: Support partial fields that can returns partial view of the _source (#1570)
- Update API: Allow to update a document based on a script (#1583)
Enhancements:
- AbstractCompoundWordTokenFilterFactory should store the dictionary as a CharArraySet instance, not a Set (#1449)
- XContentBuilder to handle extended classes of java.util.Date (#1465)
- HTTPS support for CouchDB river (#1480)
- Allow empty Strings to be null for Number’s and don’t autodetect empty string fields as string types (#1473)
- By default, set http.compression to false (#1482)
- DocumentMapper.java wrong order on build rootMappers (#1493)
- Support using _id:1234, or using term query/filter on _id even when _id is not indexed (#1496)
- Upgrade to netty 3.2.7 (#1506)
- When _source is disabled, don’t return it in realtime get fetching the document from the transaction log (#1509)
- Improve highlighting perf (a bit) by reusing some constructs across hits (#1513)
- Allow to configure a shard with no file based data location locking (#1535)
- source not returned when * specified in fields list (#1541)
- Generate pid file even when running in foreground mode (#1553)
- Improve multi field mapper with highlighting based on source (#1559)
- Allow search to continue when sort field is missing from type mapping (#1558)
- Filter cache to have just weighted (node) and none, and index query parser cache to be size based (#1590)
- No master (startup / minimum_master_node) / not recovered blocks should cause proper failures on operations (#1589)
- _open and _close does not resolve aliases (#1628)
- Better failure when passing invalid options to a query/filter (#1640)
- Allow for plugins to register REST filter (#1658)
- AWS Plugin: Add more automatic region configuration (#1490)
- Add a simplified setting to disable shutdown API: action.disable_shutdown (#1606)
- Analysis:
- Add language setting to lowercase filter, supporting greek and turkish (#1503)
- Support greek language in the stemmer filter (#1504)
- Add arabic, brazilian, czech to stemmer token filter language options (#1519)
- Add phonetic encodder called
bm
or beider_morse
(#1552)
- Analyze API: Allow to execute it without pre-creating an index, and allow to build custom analyzer (tokenizer + token_filters) (#1555)
- Boolean Type: Consider
F
as false as well when searching on it (#1556)
- Date Histogram Facet: Add
pre_offset
and post_offset
options (#1599)
- Highlighter: Add require_field_match (both global and per field) option (#1577)
- Highlighting: Add boundary_chars and boundary_max_size to control text boundaries with fast vector highlighter (term vector) (#1614)
- Index Allocation: allow to specify maximum total number of shards per node (#1650)
- Indices / Nodes stats: All
all
flag to easily return all stats (#1662)
- JVM Flags: Remove SurvivorRatio and MaxTenuringThreshold since the defaults are good with new JVMs (#1672)
- Jmx: Only register JMX beans when jmx.create_connector is set to
true
, or explicitly set by setting jmx.export
to true (#1666)
- Local Gateway: Move shard state to be stored under each shard, and not globally under _state (#1618)
- Mapping:
- Improve applying guessed types on dynamic templates (#1446)
- _source mapping to allow for format to convert to (if needed) (#1639)
- Merge Scheduler: Allow to set index.merge.scheduler.max_merge_count (#1430)
- Multicast: Add discovery.zen.ping.multicast.ping.enabled setting to disable sending ping requests while still having multicast enabled (#1533)
- Network: Allow to specify sub interfaces (virtual) in network configuration (#1667)
- Node Stats:
- Add fs level stats (size + iostats) (#1622)
- JVM stats to provide memory pools allocations (#1665)
- Add more options to get specific stats in REST: /nodes/fs/stats (in addition to /nodes/stats/fs) (#1674)
- Plugins: If a plugin has a bin directory, move it under the main bin location under the plugin name (#1584)
- Query: Add
index.query.default_field
allowing to control the default field used to search on (#1657)
- Query DSL:
- indices query to allow to set a
no_match_query
(#1492)
- Replace index.query.bool.max_clause_count with indices.query.bool.max_clause_count (old one still supported) (#1538)
- query_string analyze wildcard option with prefix to automatically do OR’ed wildcard when its broken down into several tokens (#1539)
- Allow to default certain settings in query_string / field queries (#1540)
- custom_filters_score allow score_mode for “min” and “multiply” (#1560)
- Add different execution models for terms filter (#1568)
- prefix query to support _id (#1648)
- REST:
/
to properly return error code (HEAD and GET) when blocked (not recovered, no master), as well as cluster health (red == 503) (#1633)
- River: When deleting a river, make sure when its closed that its data is deleted (#1534)
- Scan Search: Improve performance while scrolling through it (#1579)
- Thread Pool: Add a dedicated thread pool for refresh (#1624)
- Translog: When not sync’ing on each operation, buffer writes (#1549)
- Transport Client: Improve remote node freeze handling by adding another timeout layer (#1653)
- bin: elasticsearch script to support ES_HEAP_SIZE to easily set the heap size to a single value (min and max) and ES_HEAP_NEWSIZE to optionally set the new gen (#1671)
Bug fixes:
- External data location configuration fails (path.data setting) (#1429)
- data.path locations are unevenly filled (0.18.2) (#1436)
- Percolate / Analyzer API can hang if it fails to execute (#1457)
- Using root object level mapping (_size, _source) can cause reparsing of the mapping on startup (#1458)
- Nested facet execution can fail with ArrayIndexOutOfBounds (#1467)
- Inner queries not resolved correctly in has_child filter when searching directly against the parent type (in the URI for example) (#1471)
- Broken plugin script (#1474)
- Thrift transport handling unexpected URI hangs (#1484)
- IndicesQueryBuilder generates the wrong query name (#1485)
- Multi field mapper with more than one extra mapping can cause endless re-sync’ing of mapping between nodes (#1487)
- Using _parent:123 in a query string query fails to fetch docs (#1497)
- Registering a percolate query with additional “object” level metadata can fail (#1505)
- search missing from stats when using clear and search params (#1516)
- Version missing a space (#1517)
- Default mapping means new types not mapped explicitly (#1524)
- timestamp term match broken in 0.18.5 (#1543)
- 0.18.5 ignores query string analyzer (#1547)
- Cluster metadata files destroyed when using blob store gateway causing data loss (#1564)
- Nested objects not deleted on “delete by query” (#1537)
- Two different indexes with the same nested object name causing ArrayIndexOutOfBoundsException (#1575)
- TTL does not respect routing when expiring (deleting) documents (#1586)
- Multi Get does not respect routing set on aliases (#1591)
- Bulk API does delete item does not respect routing associated with an alias (#1592)
- /_status doc count of index wrong (#1615)
- 0.18.7 Failure exception while executing a valid query after an invalid query (#1617)
- index.recovery.initial_shards is not being taken into account (#1623)
- Removing a node with TRACE logging enabled causes cluster state not to be properly updated (#1626)
- Published cluster state might override newer state (rarely) (#1632)
- Terms Facet sorting does not handle null values properly with new JDK 7 sorting (#1647)
- Cluster Allocation: cluster.routing.allocation.allow_rebalance does not allow for rebalancing on relocating shard (#1651)
- Couchdb River: since changes parameter (seq) is not url encoded (#1470)
- Index / Delete API: timeout should apply automatically to the auto create index API master timeout (#1664)
- Indices Stats API: Providing groups as part of the HTTP API does not return stats for those groups (#1468)
- Java API: ScriptSortBuilder does not pass the lang used (#1569)
- Multicast Discovery: if it fails, still start in a single cluster mode (#1608)
- Nested queries: getDocIdSet NullPointerException (#1536)
- Query DSL:
- Bool filter does not take should clauses properly into account (#1511)
- query_string/field/text do not fail when an invalid analyzer is provided (#1663)
- Search:
- Fetching fields that end up extracted from source might fail (#1431)
- Search requests execute by mistake on the networking http IO thread, causing other http operations to hang (#1455)
- When searching against a type with a dfs search type, dfs is ignored (#1546)