Revision history for Search::Elasticsearch
7.711 2021-02-11
Stable release for Elasticsearch 7.11
7.30 2020-09-15
Stable release for Elasticsearch 7.3
7.30_1 2020-08-05
Updated API for Elasticsearch 7.3
6.81 2020-06-26
* Fixed Async and NetCurl tests
* Added if_seq_no and if_primary_term in bulk params
* Added include_type_name in indices.exists API
6.80 2020-03-25
* Fixed SSL_verify_mode in LWP and skipped https tests for Hijk
* Changed the User-Agent header with elasticsearch-perl/<client-version> (<os>; perl <Lang version>)
6.80_1 2020-03-11
Updated API and XPack endpoints for Elasticsearch 6.8.7
* Merged the XPack into Direct client, there is no need anymore
to use a plugin for XPack
* Added the XPack YAML tests
* Usage of Travis CI for testing
* Added the User-Agent header with <client-repo-name>/<client-version> (<Lang version>)
6.00 2017-11-14
Released 6.00 with default API for 6_0.
Legacy 5_0 API now released separately
Trace logging now includes content-type headers where appropriate
Deprecation warnings are now parsed to extract the message only
Improved boolean value handling in query string params - now accepts
true, false, \1, \0, or a JSON::PP::Boolean object
Handle removal of '.' from @INC in perl 5.26
5.02 2017-04-02
* Boolean query params must be "true" or "false"
* Added deprecation warnings
* The scroll API requires a body with a named scroll_id parameter
* Added support for pipeline parameter to bulk API, top level and metadata level
* Added support for 413 HTTP status code - Request entity too large
* Search::Elasticsearch::TestServer now takes an es_version parameter and
works with 0.90, 1.0, 2.0, and 5.0
* Added common parameters error_trace and human to all params
5.01 2016-10-19
Doc fixes
5.00 2016-10-19
This version adds Elasticsearch 5.x compatibility, and makes it the default.
It also adds deprecation logging which logs to STDERR by default.
The Hijk backend will not work with Elasticsearch 5.x until this bug
is fixed: https://rt.cpan.org/Ticket/Display.html?id=118425
BREAKING CHANGES:
* The 0.90, 1.x, and 2.x compatible clients no longer ship by default.
You should install one of the following:
* Search::Elasticsearch::Client::2_0
* Search::Elasticsearch::Client::2_0::Async
* Search::Elasticsearch::Client::1_0
* Search::Elasticsearch::Client::1_0::Async
* Search::Elasticsearch::Client::0_90
* Search::Elasticsearch::Client::0_90::Async
* The code has been reorganised so that all client-related modules
are under the S::E::API_VERSION::Client namespace.
This includes S::E::Bulk and S::E::Scroll.
* Plugin authors note: the format for the API in ...Role::API has changed.
* S::E::Cxn::HTTP has been rolled into S::E::Cxn as Elasticsearch
no longer supports other protocols.
2.03 2016-05-24
Added register_qs() to allow plugins to expand known query string params
Added api_version() to API roles so that plugins can determine which
API version they should load.
2.02 2016-04-20
Bug fix:
Sniffed http addresses may or may not have the hostname/ prepended
2.01 2016-04-15
Updated for Elasticsearch 2.3.0
New features:
* Added delete_by_query(), reindex(), and update_by_query()
* Added tasks.list() and tasks.cancel()
* Added ignore_unavailable to cat.snapshots()
* Added attributes and explain to indices.analyze()
* Added verbose to indices.segments()
* S::ES::Error now implements TO_JSON
* TestServer can now be used with forked processes
Bug fixes:
* Search::Elasticsearch::Error shouldn't be a Moo class
* Search::Elasticsearch::Scroll can now be used in a forked process
* Hijk is now optional as it doesn't work on windows
* cat.snapshots requires a repository
2.00 2015-10-28
The default client is now '2_0::Direct', for use with Elasticsearch 2.x.
Specify client '1_0::Direct' if using with Elasticsearch 1.x.
Breaking:
* The field parameter to indices.get_field_mapping() has been renamed to fields
New features:
* Added fields param to Bulk helper
* The name parameter to indices.get_template() can accept multiple options
* Added indices.forcemerge() and deprecated indices.optimize()
* The index parameter to indices.open() and indices.close() is required
* Added allow_no_indices, expand_wildcards, and ignore_unavailable params
to indices.flush_synced()
* Added the timeout param to cluster.stats(), nodes.hot_threads(),
nodes.stats(), and nodes.info()
* cluster.health() can accept multiple indices
* Added cat.repositories() and cat.snapshots()
* Added detect_noop param to update()
* search_shards() accepts multi values for index/type
* delete_template() requires an id
* Add fork protection to Scroll and Async::Scroll
Bug fix:
* Added missing debug QS param
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