Revision history for Search::Elasticsearch 1.99 2015-08-26 This release provides support for Elasticsearch 2.0.0-beta1 and above, but the default client is still '1_0::Direct' and will remain so until version 2.00 is released. New features: * Added default_qs_params, which will be added to every request * Added max_time to the Bulk helper, to flush after a max elapsed time * Added filter_path parameter to all methods which return JSON * Added indices.flush_synced() * Added render_search_template() * Added cat.nodeattrs() * Added human flag to indices.get and indices.get_settings * Added rewrite flag to indices.validate_query * Added rewrite flag to indices.analyze * Added fields param to bulk() * Added update_all_types to indices.create and indices.put_mapping * Added request_cache to indices.put_warmer and indices.stats * Added request to indices.clear_cache * Added RequestTimeout exception for server-side timeouts * Updated Plugin::Watcher with 1.0 API Removed: * Removed id and id_cache from indices.clear_cache * Removed filter and filter_cache from indices.clear_cache * Removed ignore_conflict from indices.put_mapping Bugfixes: * Fixed error handling in Hijk * Fixed live test to non-existent IP address 1.20 2015-05-17 Deprecated: * Search::Elasticsearch::Client::Direct in favour of Search::Elasticsearch::Client::1_0::Direct New features: * Added support for structured JSON exceptions in Elasticsearch 2.0 * Added support for plugins * Added Search::Elasticsearch::Client::2_0::Direct for the upcoming Elasticsearch 2.0 with these changes: * removed delete_by_query() * removed termvector() * removed indices.delete_mapping() * removed nodes.shutdown() * removed indices.status() * added terminate_after param to search() * added dfs param to termvectors() * removed filter_keys param from indices.clear_cache() * removed full param from indices.flush() * removed force param from indics.optmize() * removed replication param from all CRUD methods * removed mlt() method Bug fix: * The bulk buffer was being cleared on a NoNodes exception Added class: Added methods: * field_stats() Added params: * allow_no_indices, expand_wildcards, ignore_unavailable to cluster.state() * fielddata_fields to search() * master_timeout to indices.get_template() and indices.exists_template() * detect_noop to update() * only_ancient_segments to upgrade() * analyze_wildcards, analyzer, default_operator, df, lenient, lowercase_expanded_terms, and q to count(), search_exists() and indices.validate_query() Removed methods: * benchmark.* - never released in Elasticsearch Also: * arrays of enum query string params are now flattened as CSV * enum expand_wildcards also accepts: none, all * Search::Elasticsearch is no longer a Moo class * Updated elasticsearch.org URLs to use elastic.co instead * the request body is retained in exceptions * upgraded Hijk to 0.20 1.19 2015-01-15 Added method: * cat.segments() Added exceptions: * Unauthorized - for invalid user creds * SSL - for invalid SSL certs Renamed exception: * ClusterBlock -> Forbidden Also: * Simplified SSL support for HTTP::Tiny, LWP and improved instructions * Added optional tests for https/authz/authen 1.17 2014-12-29 Bug fix: * handle_args were not being passed to all backends, meaning that (eg) cookies could not be used Dependency bump: * Log::Any 1.02 broke bwc - fixed to work with new version Added params: * op_type, version, version_type to indices.put_template * version, version_type to indices.delete_template * version, version_type to termvectors * master_timeout, timeout to cluster.put_settings * ignore_idle_threads to nodes.hot_threads * terminate_after to search Deprecated: * termvector in favour of termvectors (but old method still works for now) 1.16 2014-11-15 Added dependency on Pod::Simple, which was causing installation on perl 5.8 to fail Added params: * percolate_preference and percolate_routing to percolate() Bug fix: * the index param is now required for indices.delete() 1.15 2014-11-05 Enhancements: * All backends (except Hijk) now default to not verifying SSL identities, but accept ssl_options to allow backend-specific configuration * Improved Mojo exceptions Bug fix: * is_https() didn't work Changed: * index param to put_alias() is now required Added methods: * index.get() * search_exists() * indices.upgrade() * indices.get_upgrade() * snapshot.verify_repository() Added parameters: * query_cache to search(), clear_cache(), stats() * wait_if_ongoing to flush() * script_id and scripted_upsert to update() * version and version_type to put_script(), get_script(), delete_script(), put_template(), get_template(), and delete_template() * op_type to put_script() and put_template() * metric to cluster_reroute() * realtime to termvector() and mtermvector() * dfs to termvector() Removed parameters: * filter_metadata from cluster_reroute() * search_query_hint from mlt() Bumped versions: JSON::XS 2.26 Package::Stash 0.34 Log::Any 0.15 1.14 2014-07-24 Added support for indexed scripts and indexed templates. 1.13 2014-06-13 Breaking change: The Scroll helper used to pass the scroll ID to scroll() and clear_scroll() in the query string by default, with the scroll_in_body parameter to change the behaviour. This was causing frequent errors with long scroll IDs, so the new default behaviour is to pass the scroll ID in the body, with the scroll_in_qs parameter to change that behaviour. All Search::Elasticsearch HTTP backends are now fork safe. Added track_scores param to search() Added create param to indices.put_template() Removed index_templates param from cluster.state() Removed indices_boost param from search() Added percolate_format param to percolate() Added cat.fielddata() 1.12 2014-05-09 Fixed bug when trying to reindex from a subref Added search_shards() Added char_filters to indices.analyze() Removed index_templates from cluster.state() Added conf to TestServer for passing arbitrary config 1.11 2014-04-23 Switched default Serializer::JSON to use JSON::MaybeXS, and added Serializer backends for Cpanel::JSON::XS, JSON::XS and JSON::PP Added scroll_in_body flag for Scroll helper Added support for: * search_template() * snapshot->status() * indices->recovery() * benchmark() * list_benchmarks() * abort_benchmark() 1.10 2014-03-05 Moved all modules to Search::Elasticsearch namespace. See https://github.com/elasticsearch/elasticsearch-perl/issues/20 1.05 2014-03-05 Deprecated the Elasticsearch namespace in favour of Search::Elasticsearch. See https://github.com/elasticsearch/elasticsearch-perl/issues/20 Improved the Bulk->reindex() API. Now accepts a remote $es object. Improved documentation. Added Hijk backend. 1.04 2014-02-27 Changed the default Cxn to HTTPTiny v0.043. Now provides persistent connections and is a lot faster than LWP. Changed ES::Scroll to pass the scroll_id in the URL instead of the body. Better support for older versions and servers behind caching proxies. 1.03 2014-02-12 Fixed node sniffing to work across 0.90 and 1.0 1.02 2014-02-11 Fixed bug in Elasticsearch::Scroll::next when called in scalar context 1.01 2014-02-09 Fixed plugin loader to work with latest version of Module::Runtime which complains about undefined versions 1.00 2014-02-07 API updated to be compatible with v1.x branch of Elasticsearch. BACKWARDS COMPATIBILITY: To use this client with versions of Elasticsearch before 1.x, specify the client version as: $es = Elasticsearch->new( client => '0_90::Direct' ); 0.76 2013-12-02 Added support for send_get_body_as GET/POST/source Added timeout to bulk API 0.75 2013-10-24 Fixed the sniff regex to accommodate hostnames when present 0.74 2013-10-03 Fixed a timeout bug in LWP with persistent connections and bad params when using https 0.73 2013-10-02 Added Elasticsearch::Cxn::LWP Added Elasticsearch::TestServer Die with explanation if a user on a case-insensitive file system loads this module instead of ElasticSearch 0.72 2013-09-29 Added Elasticsearch::Bulk and Elasticsearch::Scroll Changed `https` to `use_https` for compatibility with elasticsearch-py Numerous fixes for different Perl versions, and Moo 1.003 now required 0.71 2013-09-24 Fixed dist.ini to list dependencies correctly 0.70 2013-09-24 Bumped version numbers because CPAN clashes with ElasticSearch.pm 0.04 2013-09-23 First release