Elasticsearch 0.16.0


See issues on GitHub

Release Notes

Breaking changes:

  • Mapping: By default, don’t index _id (#868)
  • Node Stats API: Change the structure of the response (more structured) (#746)
  • Indices Status API: Remove settings/aliases section, and add recovery/snapshot flags (#809)
  • elasticsearch script: Change CLASSPATH to ES_CLASSPATH (#818)
  • Upgrade to Lucene 3.1 (#825, Analyzers in #826)
  • Get Mapping API: when asking for a mapping of a single index and single type, don’t wrap the mapping with the index name (#838)
  • JMX: Don’t use node id and name as part of the jmx registration, use static org.elasticsearch (#843)

New features:

  • Search:
    • Terms Stats Facet (#705, related commit)
    • Add search type scan allowing to efficiently scan large result set (#707)
    • Add search_type for count to return count but still support facets (#718)
  • Scripts: Allow to register native scripts (Java) for better script execution performance. (#752)
  • Update Settings: Allow to dynamically change refresh_interval and merge policy settings (#758)
  • Versioning: Add a new version_type parameter, with a new type – external (#776)
  • Sort: Support “missing” specific handling, include _last, _first, and custom value (for numeric values) (#772)
  • Search / Get: Allow to specify a preference on which shards (or order) it will be executed (#769)
  • Delete Index API: Allow to delete more than one index or _all indices (#791)
  • Mapping: Add _size field mapping, indexing the original source size (#804)
  • Get Settings API: Allow to retrieve (just) a specific index / indices settings (#810)
  • Shard Allocation: Add a setting to control when rebalancing will happen based on the cluster wide active shards state (#814)
  • Terms Facet: Performance improvements (#822)
  • Histogram Facet: Add ability to define bounds (from/to) to both improve performance and provide additional bound filtering (#834)
  • Query DSL:
    • Geo Distance Range filter (#856)
    • Add ids query and filter to fetch docs by ids (do not require _id field to be indexed) (#865)

Enhancements:

  • Attachment plugin: upgrade to Tika 0.9
  • Add http and transport simplified host settings (#706)
  • Get API: Allow to provide a script as a field (#708)
  • Support for other exchange types and options in AMQP river (#709)
  • Allow to register custom rivers under a custom type name (And not full class names) (#712)
  • Node Stats: Add number of docs per node (#713)
  • Twitter river:
    • “user.screen_name” should not be analyzed (#715)
    • Automatically reconnect when disconnected from twitter stream (#735)
    • Oauth support (#757)
  • Clear Cache API: Add specific cache clear for id, filter, field_data, bloom (#716)
  • Improve from hits pagination (duplicates) (#717)
  • Search:
    • Allow to filter out docs based on a minimum score (#719)
    • Allow to use has_child filter in facets (#730)
  • Index Filter Cache: Add resident type, and max_size to soft/weak types (#721)
  • Mapping: When _all is disabled, optimize to not gather all entries (#722)
  • Zen Discovery: Rename discovery.zen.initial_ping_timeout to discovery.zen.ping_timeout (still support the old setting) (#723)
  • Bulk API: Improve memory usage when executing large bulk requests (724)
  • Bulk Request: Streamline parameters names to be the same as the single REST request (#778)
  • Peer Recovery: Batch translog based operation recovery based on size and not just number of operations (#729)
  • Don’t “double” cache a facet filter / query facet (#734)
  • Delete API: Allow to set _parent on it (will simply set the routing value) (#742)
  • Query DSL: flt_field does not allow to set min_similarity and prefix_length (#744)
  • Query: Provide an option to analyze wildcard/prefix in query_string / field queries (#787)
  • Indices Status / Node Stats: Add (Lucene) index merge stats (#745)
  • Indices Status API: Add refresh stats (#811)
  • Internal: Improve checksum process by bulk writing them into a single file instead of checksum file per index file (#747)
  • Logging: Add merge level logging (#755)
  • Mvel Script: add more random options, and optimize random (#759)
  • Update Settings:
    • Allow to dynamically change index.term_index_interval and index.term_index_divisor (#762)
    • Allow to dynamically update index.translog settings (#765)
    • Allow to control index.auto_expand_replicas (#799)
  • Add max_shard_index_buffer_size to control the upper limit of a shard indexing buffer size (defaults to 512mb) (#773)
  • Support true|false for the store parameter in mappings (#775)
  • “exclude” functionality missing for terms facet on numeric fields (#789)
  • Percolator: When deleting an index, make sure to delete all its percolated queries from the _percolator index (#793)
  • NPE when the JSON to index doesn’t match the mapping’s expectations (#795)
  • Date Field Mapper: Allow to use timestamp value (milliseconds since epoch, UTC) (#801)
  • Add option to expire filter’s cache based on access time (#803)
  • Extend stats API to include filter’s cache count and eviction count (#802)
  • Support ES_MIN_MEM and ES_MAX_MEM as external settings for windows startup script (commit)
  • HTTP: Support compression (gzip, deflate) when using Accept-Encoding header (#815)
  • Shard Allocation:
    • Rename cluster.routing.allocation.concurrent_recoveries to cluster.routing.allocation.node_concurrent_recoveries (old one still works) (#817)
    • Add node_initial_primaries_recoveries setting (#819)
  • Translog: Reduce the number of translog ops to flush after from 20000 to 5000 (#820)
  • Indexing Buffer: Automatically inactivate unindexed into shards and lower their indexing buffer size (#821)
  • Histogram Facet: Add min/max stats when providing value field / script (#830)
  • Network Settings: Allow to explicitly set ipv4 and ipv4 when using networkInterface notation (#841)
  • Optimize API: Don’t execute concurrent optimize operations (shard level) on the same node (#846)
  • Better handling when a shard hits OOM (#848)
  • EC2 Zen Discovery: Automatically use the configured transport port to ping other nodes (#854)
  • Unicast Discovery: Concurrently connect to nodes to improve cases where some listed nodes are not up (#855)
  • Query DSL: Allow to directly wrap a query with a constant_score query (#857)
  • Mapping: Allow to set index to no for _id and _type (#863)
  • Better support with _type is marked as not indexed, allowing to filter by type (#866)
  • Simplify Filter Cache Eviction Settings (#871)
  • Update Settings: Allow to dynamically set filter cache settings (#874)
  • Startup script: fix shell quoting (commit)

Bug fixes:

  • Handle cluster join request on a non IO thread (#702)
  • River not recovered when using single node after shutdown (#711)
  • Single node cluster comes up as red with local gateway (#714)
  • Acknowledge problem for put mapping with multiple indices or all indices (#720)
  • Percolator:
    • Failure to percolate with specific query (when creating the _percolate index before the actual index) (#725)
    • Failure when deleting and creating an index, also causes problem with percolated queries isolation between different indices (#790)
    • Failures when using docs where fields repeat, such as arrays (#763)
  • Ids with # in them will cause search failures, also, fail when # is used in a type name (#728)
  • Date Histogram Facet:
    • NPE if using 1w interval (#727)
    • Improve value field case performance, fix wrong total computation with multi valued fields by introducing total_count, add min/max stats (#831)
  • Prefix inside a dis_max / bool query broken (#732)
  • Searching while an index is being allocated and no active shards exists within a “shard replication group” can cause search “misses” (#736)
  • All Field: All field can fail to analyze input data (rare cases) (#743)
  • Mapper: Using dynamic_template can result in warning of parsed and original source difference (resulting in excessive mapping parsing) (#764)
  • Cluster Health API: Asking for health on an index that does not exists should return RED status (#781)
  • Mapping: Failure to update _source mapping – compress and compress_threshold (#800)
  • Concurrent calls to refresh might result in “dangling” searchers (#823)
  • Geo Distance / Range Facets might count documents several times for a range entry if the field is multi valued (#824)
  • Histogram Facet: Improve value field case performance, fix wrong total computation with multi valued fields by introducing total_count (#829)
  • Range Facet: Fix wrong total computation with multi valued fields by introducing total_count, add min/max stats (#832)
  • Geo Distance Facet: Fix wrong total computation with multi valued fields by introducing total_count, add min/max stats (#833)
  • Bug: Sort on a column of type ‘short’ throws an exception (#835)
  • Percolator doesn’t work correctly after index recreation (#837)
  • Allow to search across indices and types even if some types do not exists on some indices (#839)
  • Better handling of shard failures (#845)
  • River: Failure to reallocate river to another node on rivers node failure (#850)
  • Local Gateway: Listed active shards on each node does apply index deletion (#853)
  • Shard Allocation: Closed indices are not properly taken into account when rebalancing (#858)
  • Allow to delete a closed index (#859)
  • Versioning: Better handling of deletes – time based eviction (#862)
  • Weird error message on syntax error (#864)
  • Failure to recover a shard might cause loosing translog data (especially with no replicas) (#869)
  • No highlight results when number_of_fragments set to 0 (#873)
  • Search request intermittent failures with has_child query/filter (#875)
  • Unexpected failure to create a shard can lead to data loss if it has no replicas (#878)

Internal:

  • upgrade to mvel 2.1.beta2
  • upgrade to guava r08
  • upgrade to aws sdk 1.1.9
  • upgrade to jackson 1.8.0
  • upgrade to rabbitmq client 2.3.1
  • upgrade to the new lzf compression (0.7)
  • upgrade to groowvy 1.7.10