Elasticsearch 0.17.0


See issues on GitHub

Release Notes

Upgrading requires a full cluster restart. Note, once upgraded, there is no option to downgrade to previous version as the index files format will be also upgraded (new lucene version).

Breaking changes:

  • Query Parser Module Refactor (#994)
  • ‘,’ can be used in type name (#996)
  • Analysis: Phonetic filter replace flag is inverted, fix (changes default behavior now, to follow docs) (#1127)
  • Field Cache: Change default type to resident from soft (#958)
  • Filter Cache: Introduce new node level filter cache and make it default (#959)
  • Node Stats: Remove low level transport stats from response (#979)
  • Thrift: Upgrade to thrift 0.6.1 (#986)

New features:

  • Upgrade to Lucene 3.2 (#997)
  • New default merge policy – tiered (#998)
  • Indices exists API (#1022)
  • Realtime GET (#1060)
  • Multi GET API (#1068)
  • Upgrade to Lucene 3.3 (#1083)
  • Nested Object/Docs Mapping and Searching (#1095)
  • Nested Objects Facets Support (#1098)
  • MappingCharFilter (#1106)
  • Allow to disable automatic date detection (#1051)
  • Aliases:
    • add an ability to specify filters on aliases (#971)
    • allow to specify routing value for an alias (#1025)
  • Get API: Make type optional (#1061)
  • Indices Segments API: Internal segments info of shard level Lucene indices (#1064)
  • Mapping: Document’s Field level boosting (#920)
  • Nodes APIs: All node APIs to allow to match on nodes based on addresses, names, and attributes (#1125)
  • Plugins: Allow plugins to serve a _site, automatically download github plugins (#978)
  • Query DSL: nested filter support (#1102)
  • Search: Optimize (perf) execution of global facets (#889)
  • Zen Discovery: Add minimum_master_nodes setting helping with split brains (#1079)

Enhancements:

  • (Small) optimization to has_child filter (#880)
  • Week Interval on Date Histogram Facet (#904)
  • Simplified Disable Flush operation (#906)
  • Upgrade to jackson 1.8.1 (#941)
  • Request for more values identified as boolean for the boolean field type – no (#984)
  • Analyzers for FLT / MLT (#1031)
  • Add ec2 specific network hosts (#1037)
  • MappingCharFilter (#1107)
  • PatternReplaceFilter (#1108)
  • Closed indices should not cause block failures on some APIs what executing against _all indices (#1010)
  • Add ‘other_terms’ option for terms facet (#1029)
  • Allow to configure node name using node.name (on top of current name) (#1126)
  • Aliases: Validate alias filter before adding it (#993)
  • Analysis:
    • Expose light and minimal language token filters (#908)
    • Stop words config to allow for automatic lang expansion (#909)
    • Word Delimiter Token Filter (#918)
    • All analysis components that accept stopwords to allow to load stopwords from a file (#919)
    • Synonym Token Filter (#900)
    • Pattern Tokenizer (#928)
    • Add elision token filter (#930)
    • Phonetic filter to support cologne encoder (#942)
    • Improve custom analyzer construction time (#989)
    • Add reverse and skip to path_hierarchy tokenizer (#999)
    • expose Lucene KeywordMarkerFilter (#1052)
    • expose Lucene StemmerOverrideFilter (#1053)
    • backport KStem token filter from Lucene (#1041)
  • Create Index API: Better logic to wait for ack for indices being created on nodes (#885)
  • Field Cache: Allow to set index.cache.field.expire when using resident type (#957)
  • Get Mapping: Better error response when asking for specific index type (#991)
  • Mapping: non-string type field level boosting (#1097)
  • Node Info / Stats: Add max_file_descriptors (info) and open_file_descriptors (stats) (#1113)
  • Node Stats: Add number of server open channels for transport and http (#1115)
  • Numeric Types: By default, omit_norms (boosting) is set to true, automatically set it to false if explicit field mapping boosting is provided (#1021)
  • Phonetic Filter : Double Metaphone, partial implementation (not using the secondary code) (#924)
  • Query DSL:
    • Allow to set boost on has_child query (#884)
    • Fuzzy Query – add max_expansions (#905)
    • Fuzzy query support for numeric / date types (#907)
    • Text Queries (boolean, phrase, and phrase_prefix) (#917)
    • query_string – Expose QueryParser#setAutoGeneratePhraseQueries (#964)
    • Ids Filter / Query – allow to execute it with no type defined / several types (#969)
    • Add limit filter (#976)
    • Simplify not filter to accept the filter directly, without a wrapping filter element (#992)
  • RabbitMQ River: Upgrade to rabbitmq driver 2.5.1 (#1112)
  • Scripting: Optimize to native script execution when using just doc.score (#952)
  • Search: When a search request failed completely (all shards fail) return a proper HTTP status code (#1035)
  • Shared Gateway: Allow to dynamically update the snapshot_interval using update settings (#954)
  • TCP: Change the default connect timeout to 2s (#1104)
  • Transport: Improve concurrency when connecting to several nodes (#1007)
  • Unicast discovery: Improve initial ping connection to nodes to be more lightweight (#1028)
  • Update Settings:
    • Properly ignore settings that are not allowed to be updated dynamically (#985)
    • Allow to change non dynamic settings on a closed index (#1048)

Bug fixes:

  • include_in_all not overridable in objects (#883)
  • Sort missing wrongly sorts negative values (#899)
  • Possible failure to start a river after cluster restart (#902)
  • Failure when applying failed shards during local gateway allocation (#903)
  • Possible failure when using TransportClient (with sniffing) (#923)
  • Deleting and recreating a new index with dynamic mapping can cause type failures (#931)
  • wrong type returned by date_histogram (#932)
  • IBM J9 failure to serialize nodes info (#950)
  • NPE when using “not” filter (#953)
  • fix plugin.bat classpath (#1002)
  • Merging complex objects / types (geo, objects) can cause failure to lookup field names (without type prefix) (#1016)
  • Numeric values always omit norms (boosting), regardless of the configuration set (#1020)
  • River might not start properly after cluster shutdown (timing) (#1038)
  • Misbehaving “missing” field in facet results (#1070)
  • Without pre-creating index, heavy write rates OOM with too many threads (#1081)
  • java.lang.ArrayIndexOutOfBoundsException when indexing a doc (#1094)
  • Uneven distribution of search requests across shards (#1103)
  • Native (java) process memory leak (#1118)
  • Index / Delete API when causing auto index creation can cause buffer data overrun (#1122)
  • Analysis: Regression (0.16.1), Camel cased filters / tokenizers failed to load in custom analyzer (#937)
  • And/Or Filter: Possible failure when inner filter does not match any docs (#892)
  • Delete API: Using refresh parameter might not refresh delete operation on replica (#1047)
  • Filter Cache: soft filter cache can cause bad memory behavior (#946)
  • Mapping: dynamic templates of object type do not initialize some mapping data structures (like analyzers lookup) (#929)
  • Mapping – Date Format: 3 or more custom date formats fail using ‘||’ delimiter (#977)
  • Parent Child: complex parent child mapping (>2 hierarchy) might fail (#1039)
  • Put Mapping: Fix rare case where the response will timeout (ack=false) even though it has been applied (#990)
  • Query DSL: Span Term Query wrongly parses when boost is provided, causing using it in span or to fail (#1032)
  • Scripting – mvel: Fix thread safety misuse when compiling scripts (#886)
  • Search:
    • Empty facets element causes search failures (#938)
    • When all shards fail on second / third phase, make sure to return a response with proper shard failures (#1033)
  • Search API: filter element should not be applied to global facets (#888)
  • Transport Client: Adding more nodes causes more scheduled reconnect tasks (#1062)
  • auto_expand_replicas: [0-all] can cause data loss when nodes are removed (#934)