@@ -1,5 +1,22 @@
Revision history for Search::Elasticsearch
+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()
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.015.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.012.
Changes
LICENSE
MANIFEST
@@ -110,6 +110,10 @@ t/50_Cxn_Pool/70_live.t
t/60_Cxn/10_basic.t
t/60_Cxn/20_process_response.t
t/60_Cxn/30_http.t
+t/60_Cxn/40_fork_httptiny.t
+t/60_Cxn/41_fork_lwp.t
+t/60_Cxn/42_fork_hijk.t
+t/60_Cxn/43_fork_netcurl.t
t/70_Helper/10_bulk_add_action.t
t/70_Helper/20_bulk_helpers.t
t/70_Helper/30_bulk_flush.t
@@ -121,6 +125,7 @@ t/lib/LogCallback.pl
t/lib/MockCxn.pm
t/lib/default_cxn.pl
t/lib/es_sync.pl
+t/lib/es_sync_fork.pl
t/lib/index_test_data.pl
t/release-eol.t
t/release-no-tabs.t
@@ -4,7 +4,7 @@
"Clinton Gormley <drtech@cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.140640",
+ "generated_by" : "Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.133380",
"license" : [
"apache_2_0"
],
@@ -97,6 +97,6 @@
"web" : "https://github.com/elasticsearch/elasticsearch-perl"
}
},
- "version" : "1.12"
+ "version" : "1.13"
}
@@ -11,7 +11,7 @@ build_requires:
configure_requires:
ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.140640'
+generated_by: 'Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.133380'
license: apache
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -55,4 +55,4 @@ requires:
resources:
bugtracker: https://github.com/elasticsearch/elasticsearch-perl/issues
repository: git://github.com/elasticsearch/elasticsearch-perl.git
-version: '1.12'
+version: '1.13'
@@ -1,5 +1,5 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.015.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.012.
use strict;
use warnings;
@@ -63,7 +63,7 @@ my %WriteMakefileArgs = (
"Test::More" => "0.98",
"lib" => 0
},
- "VERSION" => "1.12",
+ "VERSION" => "1.13",
"test" => {
"TESTS" => "t/*.t t/10_Basic/*.t t/20_Serializer/*.t t/30_Logger/*.t t/40_Transport/*.t t/50_Cxn_Pool/*.t t/60_Cxn/*.t t/70_Helper/*.t t/90_Client_Spec/*.t"
}
@@ -2,7 +2,7 @@ NAME
Search::Elasticsearch - The official client for Elasticsearch
VERSION
- version 1.12
+ version 1.13
SYNOPSIS
use Search::Elasticsearch;
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Bulk;
-$Search::Elasticsearch::Bulk::VERSION = '1.12';
+$Search::Elasticsearch::Bulk::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::Bulk',
'Search::Elasticsearch::Role::Is_Sync';
@@ -107,7 +107,7 @@ Search::Elasticsearch::Bulk - A helper module for the Bulk API and for reindexin
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::0_90::Direct::Cluster;
-$Search::Elasticsearch::Client::0_90::Direct::Cluster::VERSION = '1.12';
+$Search::Elasticsearch::Client::0_90::Direct::Cluster::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API::0_90';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -17,7 +17,7 @@ Search::Elasticsearch::Client::0_90::Direct::Cluster - A client for running clus
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::0_90::Direct::Indices;
-$Search::Elasticsearch::Client::0_90::Direct::Indices::VERSION = '1.12';
+$Search::Elasticsearch::Client::0_90::Direct::Indices::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API::0_90';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -17,7 +17,7 @@ Search::Elasticsearch::Client::0_90::Direct::Indices - A client for running inde
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::0_90::Direct;
-$Search::Elasticsearch::Client::0_90::Direct::VERSION = '1.12';
+$Search::Elasticsearch::Client::0_90::Direct::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API::0_90';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -43,6 +43,15 @@ sub _index {
}
#===================================
+around 'clear_scroll' => sub {
+#===================================
+ my $orig = shift;
+ my ( $self, $params ) = parse_params(@_);
+ $params->{scroll_id}||=delete $params->{body};
+ $orig->( $self, $params );
+};
+
+#===================================
sub _build__bulk_class {
#===================================
my $self = shift;
@@ -110,7 +119,7 @@ Search::Elasticsearch::Client::0_90::Direct - Thin client with full support for
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct::Cat;
-$Search::Elasticsearch::Client::Direct::Cat::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::Cat::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -28,7 +28,7 @@ Search::Elasticsearch::Client::Direct::Cat - A client for running cat debugging
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -133,6 +133,26 @@ Query string parameters:
See the L<cat count docs|http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cat-count.html>
for more information.
+=head2 C<fielddata()>
+
+ say $e->cat->fielddata(
+ fields => 'field' | \@fields # optional
+ );
+
+Shows the amount of memory used by each of the specified `fields` (or all
+fields) loaded into fielddata.
+
+Query string parameters:
+ C<bytes>,
+ C<h>,
+ C<help>,
+ C<local>,
+ C<master_timeout>,
+ C<v>
+
+See the L<cat fielddata docs|http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cat-fielddata.html>
+for more information.
+
=head2 C<health()>
say $e->cat->health();
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct::Cluster;
-$Search::Elasticsearch::Client::Direct::Cluster::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::Cluster::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -29,7 +29,7 @@ Search::Elasticsearch::Client::Direct::Cluster - A client for running cluster-le
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -138,7 +138,6 @@ parameter.
Query string parameters:
C<flat_settings>,
- <index_templates>,
C<local>,
C<master_timeout>
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct::Indices;
-$Search::Elasticsearch::Client::Direct::Indices::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::Indices::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -17,7 +17,7 @@ Search::Elasticsearch::Client::Direct::Indices - A client for running index-leve
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -515,6 +515,7 @@ for more information.
The C<put_template()> method is used to create or update index templates.
Query string parameters:
+ C<create>,
C<flat_settings>,
C<master_timeout>,
C<order>,
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct::Nodes;
-$Search::Elasticsearch::Client::Direct::Nodes::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::Nodes::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -17,7 +17,7 @@ Search::Elasticsearch::Client::Direct::Nodes - A client for running node-level r
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct::Snapshot;
-$Search::Elasticsearch::Client::Direct::Snapshot::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::Snapshot::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -17,7 +17,7 @@ Search::Elasticsearch::Client::Direct::Snapshot - A client for managing snapshot
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Client::Direct;
-$Search::Elasticsearch::Client::Direct::VERSION = '1.12';
+$Search::Elasticsearch::Client::Direct::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::API';
with 'Search::Elasticsearch::Role::Client::Direct';
@@ -116,7 +116,7 @@ Search::Elasticsearch::Client::Direct - Thin client with full support for Elasti
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -889,7 +889,6 @@ Query string parameters:
C<fields>,
C<from>,
C<ignore_unavailable>,
- C<indices_boost>,
C<lenient>,
C<lowercase_expanded_terms>,
C<preference>,
@@ -906,6 +905,7 @@ Query string parameters:
C<suggest_size>,
C<suggest_text>,
C<timeout>,
+ C<track_scores>,
C<version>
See the L<search reference|http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-body.html>
@@ -1167,6 +1167,7 @@ Query string parameters:
C<allow_no_indices>,
C<expand_wildcards>,
C<ignore_unavailable>,
+ C<percolate_format>,
C<percolate_index>,
C<percolate_type>,
C<preference>,
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Cxn::Factory;
-$Search::Elasticsearch::Cxn::Factory::VERSION = '1.12';
+$Search::Elasticsearch::Cxn::Factory::VERSION = '1.13';
use Moo;
use Search::Elasticsearch::Util qw(parse_params load_plugin);
use namespace::clean;
@@ -48,7 +48,7 @@ Search::Elasticsearch::Cxn::Factory - Used by CxnPools to create new Cxn instanc
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Cxn::HTTPTiny;
-$Search::Elasticsearch::Cxn::HTTPTiny::VERSION = '1.12';
+$Search::Elasticsearch::Cxn::HTTPTiny::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::Cxn::HTTP',
'Search::Elasticsearch::Role::Cxn',
@@ -83,7 +83,7 @@ Search::Elasticsearch::Cxn::HTTPTiny - A Cxn implementation which uses HTTP::Tin
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Cxn::Hijk;
-$Search::Elasticsearch::Cxn::Hijk::VERSION = '1.12';
+$Search::Elasticsearch::Cxn::Hijk::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::Cxn::HTTP',
'Search::Elasticsearch::Role::Cxn',
@@ -10,7 +10,7 @@ use Try::Tiny;
use namespace::clean;
has 'connect_timeout' => ( is => 'ro', default => 2 );
-has '_socket_cache' => ( is => 'ro', default => sub { {} } );
+has '_socket_cache' => ( is => 'rw', default => sub { {} } );
my $Cxn_Error = qr/ Connection.(?:timed.out|re(?:set|fused))
| connect:.timeout
@@ -74,6 +74,12 @@ sub perform_request {
}
#===================================
+sub clear_handle {
+#===================================
+ my $self = shift;
+ $self->_socket_cache( {} );
+}
+#===================================
sub error_from_text {
#===================================
local $_ = $_[2];
@@ -108,7 +114,7 @@ Search::Elasticsearch::Cxn::Hijk - A Cxn implementation which uses Hijk
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Cxn::LWP;
-$Search::Elasticsearch::Cxn::LWP::VERSION = '1.12';
+$Search::Elasticsearch::Cxn::LWP::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::Cxn::HTTP',
'Search::Elasticsearch::Role::Cxn',
@@ -91,7 +91,7 @@ Search::Elasticsearch::Cxn::LWP - A Cxn implementation which uses LWP
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::CxnPool::Sniff;
-$Search::Elasticsearch::CxnPool::Sniff::VERSION = '1.12';
+$Search::Elasticsearch::CxnPool::Sniff::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::CxnPool::Sniff',
'Search::Elasticsearch::Role::Is_Sync';
@@ -81,7 +81,7 @@ Search::Elasticsearch::CxnPool::Sniff - A CxnPool for connecting to a local clus
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::CxnPool::Static::NoPing;
-$Search::Elasticsearch::CxnPool::Static::NoPing::VERSION = '1.12';
+$Search::Elasticsearch::CxnPool::Static::NoPing::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::CxnPool::Static::NoPing',
'Search::Elasticsearch::Role::Is_Sync';
@@ -18,7 +18,7 @@ Search::Elasticsearch::CxnPool::Static::NoPing - A CxnPool for connecting to a r
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::CxnPool::Static;
-$Search::Elasticsearch::CxnPool::Static::VERSION = '1.12';
+$Search::Elasticsearch::CxnPool::Static::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::CxnPool::Static',
'Search::Elasticsearch::Role::Is_Sync';
@@ -50,7 +50,7 @@ Search::Elasticsearch::CxnPool::Static - A CxnPool for connecting to a remote cl
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Error;
-$Search::Elasticsearch::Error::VERSION = '1.12';
+$Search::Elasticsearch::Error::VERSION = '1.13';
use Moo;
our $DEBUG = 0;
@@ -158,7 +158,7 @@ Search::Elasticsearch::Error - Errors thrown by Search::Elasticsearch
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Logger::LogAny;
-$Search::Elasticsearch::Logger::LogAny::VERSION = '1.12';
+$Search::Elasticsearch::Logger::LogAny::VERSION = '1.13';
use Moo;
with 'Search::Elasticsearch::Role::Logger';
use Search::Elasticsearch::Util qw(parse_params to_list);
@@ -44,7 +44,7 @@ Search::Elasticsearch::Logger::LogAny - A Log::Any-based Logger implementation
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::API::0_90;
-$Search::Elasticsearch::Role::API::0_90::VERSION = '1.12';
+$Search::Elasticsearch::Role::API::0_90::VERSION = '1.13';
use Moo::Role;
use Search::Elasticsearch::Util qw(throw);
@@ -310,21 +310,20 @@ sub api {
[ {}, "_search" ],
],
qs => [
- "_source", "_source_exclude",
- "_source_include", "analyze_wildcard",
- "analyzer", "default_operator",
- "df", "explain",
- "fields", "from",
- "ignore_indices", "indices_boost",
- "lenient", "lowercase_expanded_terms",
- "preference", "q",
- "routing", "scroll",
- "search_type", "size",
- "sort", "source",
- "stats", "suggest_field",
- "suggest_mode", "suggest_size",
- "suggest_text", "timeout",
- "version",
+ "_source", "_source_exclude",
+ "_source_include", "analyze_wildcard",
+ "analyzer", "default_operator",
+ "df", "explain",
+ "fields", "from",
+ "ignore_indices", "lenient",
+ "lowercase_expanded_terms", "preference",
+ "q", "routing",
+ "scroll", "search_type",
+ "size", "sort",
+ "source", "stats",
+ "suggest_field", "suggest_mode",
+ "suggest_size", "suggest_text",
+ "timeout", "version",
],
},
@@ -953,7 +952,7 @@ Search::Elasticsearch::Role::API::0_90 - This class contains the spec for the El
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::API;
-$Search::Elasticsearch::Role::API::VERSION = '1.12';
+$Search::Elasticsearch::Role::API::VERSION = '1.13';
use Moo::Role;
use Search::Elasticsearch::Util qw(throw);
@@ -392,10 +392,10 @@ sub api {
],
qs => [
"allow_no_indices", "expand_wildcards",
- "ignore_unavailable", "percolate_index",
- "percolate_type", "preference",
- "routing", "version",
- "version_type",
+ "ignore_unavailable", "percolate_format",
+ "percolate_index", "percolate_type",
+ "preference", "routing",
+ "version", "version_type",
],
},
@@ -429,21 +429,21 @@ sub api {
[ {}, "_search" ],
],
qs => [
- "_source", "_source_exclude",
- "_source_include", "allow_no_indices",
- "analyze_wildcard", "analyzer",
- "default_operator", "df",
- "expand_wildcards", "explain",
- "fields", "from",
- "ignore_unavailable", "indices_boost",
- "lenient", "lowercase_expanded_terms",
- "preference", "q",
- "routing", "scroll",
- "search_type", "size",
- "sort", "source",
- "stats", "suggest_field",
- "suggest_mode", "suggest_size",
- "suggest_text", "timeout",
+ "_source", "_source_exclude",
+ "_source_include", "allow_no_indices",
+ "analyze_wildcard", "analyzer",
+ "default_operator", "df",
+ "expand_wildcards", "explain",
+ "fields", "from",
+ "ignore_unavailable", "lenient",
+ "lowercase_expanded_terms", "preference",
+ "q", "routing",
+ "scroll", "search_type",
+ "size", "sort",
+ "source", "stats",
+ "suggest_field", "suggest_mode",
+ "suggest_size", "suggest_text",
+ "timeout", "track_scores",
"version",
],
},
@@ -579,6 +579,16 @@ sub api {
qs => [ "h", "help", "local", "master_timeout", "v" ],
},
+ 'cat.fielddata' => {
+ doc => "cat-fielddata",
+ parts => { fields => { multi => 1 } },
+ paths => [
+ [ { fields => 2 }, "_cat", "fielddata", "{fields}" ],
+ [ {}, "_cat", "fielddata" ],
+ ],
+ qs => [ "bytes", "h", "help", "local", "master_timeout", "v" ],
+ },
+
'cat.health' => {
doc => "cat-health",
parts => {},
@@ -1098,7 +1108,11 @@ sub api {
method => "PUT",
parts => { name => { required => 1 } },
paths => [ [ { name => 1 }, "_template", "{name}" ] ],
- qs => [ "flat_settings", "master_timeout", "order", "timeout" ],
+ qs => [
+ "create", "flat_settings",
+ "master_timeout", "order",
+ "timeout"
+ ],
},
'indices.put_warmer' => {
@@ -1162,18 +1176,6 @@ sub api {
],
},
- 'indices.snapshot_index' => {
- doc => "indices-gateway-snapshot",
- method => "POST",
- parts => { index => { multi => 1 } },
- paths => [
- [ { index => 0 }, "{index}", "_gateway", "snapshot" ],
- [ {}, "_gateway", "snapshot" ],
- ],
- qs =>
- [ "allow_no_indices", "expand_wildcards", "ignore_unavailable" ],
- },
-
'indices.stats' => {
doc => "indices-stats",
parts => { index => { multi => 1 }, metric => { multi => 1 } },
@@ -1191,18 +1193,6 @@ sub api {
],
},
- 'indices.status' => {
- doc => "indices-status",
- parts => { index => { multi => 1 } },
- paths =>
- [ [ { index => 0 }, "{index}", "_status" ], [ {}, "_status" ] ],
- qs => [
- "allow_no_indices", "expand_wildcards",
- "human", "ignore_unavailable",
- "recovery", "snapshot",
- ],
- },
-
'indices.update_aliases' => {
body => { required => 1 },
doc => "indices-aliases",
@@ -1435,7 +1425,7 @@ Search::Elasticsearch::Role::API - This class contains the spec for the Elastics
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Bulk;
-$Search::Elasticsearch::Role::Bulk::VERSION = '1.12';
+$Search::Elasticsearch::Role::Bulk::VERSION = '1.13';
use Moo::Role;
requires 'add_action', 'flush';
@@ -255,7 +255,7 @@ Search::Elasticsearch::Role::Bulk - Provides common functionality to L<Elasticse
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Client::Direct;
-$Search::Elasticsearch::Role::Client::Direct::VERSION = '1.12';
+$Search::Elasticsearch::Role::Client::Direct::VERSION = '1.13';
use Moo::Role;
with 'Search::Elasticsearch::Role::Client';
use Search::Elasticsearch::Util::API::Path qw(path_handler);
@@ -119,7 +119,7 @@ Search::Elasticsearch::Role::Client::Direct - Request parsing for Direct clients
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Client;
-$Search::Elasticsearch::Role::Client::VERSION = '1.12';
+$Search::Elasticsearch::Role::Client::VERSION = '1.13';
use Moo::Role;
use namespace::clean;
@@ -28,7 +28,7 @@ Search::Elasticsearch::Role::Client - Provides common functionality for Client i
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Cxn::HTTP;
-$Search::Elasticsearch::Role::Cxn::HTTP::VERSION = '1.12';
+$Search::Elasticsearch::Role::Cxn::HTTP::VERSION = '1.13';
use Moo::Role;
use URI();
@@ -11,7 +11,8 @@ has 'is_https' => ( is => 'ro' );
has 'userinfo' => ( is => 'ro' );
has 'max_content_length' => ( is => 'ro' );
has 'default_headers' => ( is => 'ro' );
-has 'handle' => ( is => 'lazy' );
+has 'handle' => ( is => 'lazy', clearer => 1 );
+has '_pid' => ( is => 'rw', default => $$ );
#===================================
sub protocol {'http'}
@@ -109,6 +110,16 @@ before 'perform_request' => sub {
};
#===================================
+before 'handle' => sub {
+#===================================
+ my $self = shift;
+ if ( $$ != $self->_pid ) {
+ $self->clear_handle;
+ $self->_pid($$);
+ }
+};
+
+#===================================
around 'process_response' => sub {
#===================================
my ( $orig, $self, $params, $code, $msg, $body, $headers ) = @_;
@@ -155,7 +166,7 @@ Search::Elasticsearch::Role::Cxn::HTTP - Provides common functionality to HTTP C
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Cxn;
-$Search::Elasticsearch::Role::Cxn::VERSION = '1.12';
+$Search::Elasticsearch::Role::Cxn::VERSION = '1.13';
use Moo::Role;
use Search::Elasticsearch::Util qw(throw);
use List::Util qw(min);
@@ -183,7 +183,7 @@ Search::Elasticsearch::Role::Cxn - Provides common functionality to Cxn implemen
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::CxnPool::Sniff;
-$Search::Elasticsearch::Role::CxnPool::Sniff::VERSION = '1.12';
+$Search::Elasticsearch::Role::CxnPool::Sniff::VERSION = '1.13';
use Moo::Role;
with 'Search::Elasticsearch::Role::CxnPool';
requires 'next_cxn', 'sniff';
@@ -88,7 +88,7 @@ Search::Elasticsearch::Role::CxnPool::Sniff - A CxnPool role for connecting to a
=head1 VERSION
-version 1.12
+version 1.13
=head1 CONFIGURATION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::CxnPool::Static::NoPing;
-$Search::Elasticsearch::Role::CxnPool::Static::NoPing::VERSION = '1.12';
+$Search::Elasticsearch::Role::CxnPool::Static::NoPing::VERSION = '1.13';
use Moo::Role;
with 'Search::Elasticsearch::Role::CxnPool';
@@ -79,7 +79,7 @@ Search::Elasticsearch::Role::CxnPool::Static::NoPing - A CxnPool for connecting
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::CxnPool::Static;
-$Search::Elasticsearch::Role::CxnPool::Static::VERSION = '1.12';
+$Search::Elasticsearch::Role::CxnPool::Static::VERSION = '1.13';
use Moo::Role;
with 'Search::Elasticsearch::Role::CxnPool';
requires 'next_cxn';
@@ -39,7 +39,7 @@ Search::Elasticsearch::Role::CxnPool::Static - A CxnPool role for connecting to
=head1 VERSION
-version 1.12
+version 1.13
=head1 METHODS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::CxnPool;
-$Search::Elasticsearch::Role::CxnPool::VERSION = '1.12';
+$Search::Elasticsearch::Role::CxnPool::VERSION = '1.13';
use Moo::Role;
use Search::Elasticsearch::Util qw(parse_params);
use List::Util qw(shuffle);
@@ -134,7 +134,7 @@ Search::Elasticsearch::Role::CxnPool - Provides common functionality to the CxnP
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Is_Sync;
-$Search::Elasticsearch::Role::Is_Sync::VERSION = '1.12';
+$Search::Elasticsearch::Role::Is_Sync::VERSION = '1.13';
use Moo::Role;
use namespace::clean;
@@ -19,7 +19,7 @@ Search::Elasticsearch::Role::Is_Sync - A role to mark classes which should be us
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Logger;
-$Search::Elasticsearch::Role::Logger::VERSION = '1.12';
+$Search::Elasticsearch::Role::Logger::VERSION = '1.13';
use Moo::Role;
use URI();
@@ -139,7 +139,7 @@ Search::Elasticsearch::Role::Logger - Provides common functionality to Logger im
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Scroll;
-$Search::Elasticsearch::Role::Scroll::VERSION = '1.12';
+$Search::Elasticsearch::Role::Scroll::VERSION = '1.13';
use Moo::Role;
requires '_clear_scroll';
use Search::Elasticsearch::Util qw(parse_params throw);
@@ -7,18 +7,18 @@ use Scalar::Util qw(weaken blessed);
use namespace::clean;
has 'es' => ( is => 'ro', required => 1 );
-has 'scroll' => ( is => 'ro' );
-has 'scroll_in_body' => ( is => 'ro' );
-has 'total' => ( is => 'rwp' );
-has 'max_score' => ( is => 'rwp' );
-has 'facets' => ( is => 'rwp' );
-has 'aggregations' => ( is => 'rwp' );
-has 'suggest' => ( is => 'rwp' );
-has 'took' => ( is => 'rwp' );
-has 'total_took' => ( is => 'rwp' );
-has 'search_params' => ( is => 'ro' );
-has 'is_finished' => ( is => 'rwp', default => '' );
-has '_scroll_id' => ( is => 'rwp', clearer => 1, predicate => 1 );
+has 'scroll' => ( is => 'ro' );
+has 'scroll_in_qs' => ( is => 'ro' );
+has 'total' => ( is => 'rwp' );
+has 'max_score' => ( is => 'rwp' );
+has 'facets' => ( is => 'rwp' );
+has 'aggregations' => ( is => 'rwp' );
+has 'suggest' => ( is => 'rwp' );
+has 'took' => ( is => 'rwp' );
+has 'total_took' => ( is => 'rwp' );
+has 'search_params' => ( is => 'ro' );
+has 'is_finished' => ( is => 'rwp', default => '' );
+has '_scroll_id' => ( is => 'rwp', clearer => 1, predicate => 1 );
#===================================
sub finish {
@@ -29,18 +29,16 @@ sub finish {
$self->_clear_scroll;
}
-
-
#===================================
sub scroll_request {
#===================================
my $self = shift;
my %args = ( scroll => $self->scroll );
- if ( $self->scroll_in_body ) {
- $args{body} = $self->_scroll_id;
+ if ( $self->scroll_in_qs ) {
+ $args{scroll_id} = $self->_scroll_id;
}
else {
- $args{scroll_id} = $self->_scroll_id;
+ $args{body} = $self->_scroll_id;
}
$self->es->scroll(%args);
}
@@ -68,7 +66,7 @@ Search::Elasticsearch::Role::Scroll - Provides common functionality to L<Elastic
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Serializer::JSON;
-$Search::Elasticsearch::Role::Serializer::JSON::VERSION = '1.12';
+$Search::Elasticsearch::Role::Serializer::JSON::VERSION = '1.13';
use Moo::Role;
requires 'JSON';
@@ -103,7 +103,7 @@ Search::Elasticsearch::Role::Serializer::JSON - A Serializer role for JSON modul
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Serializer;
-$Search::Elasticsearch::Role::Serializer::VERSION = '1.12';
+$Search::Elasticsearch::Role::Serializer::VERSION = '1.13';
use Moo::Role;
requires qw(encode decode encode_pretty encode_bulk mime_type);
@@ -20,7 +20,7 @@ Search::Elasticsearch::Role::Serializer - An interface for Serializer modules
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Role::Transport;
-$Search::Elasticsearch::Role::Transport::VERSION = '1.12';
+$Search::Elasticsearch::Role::Transport::VERSION = '1.13';
use Moo::Role;
requires qw(perform_request);
@@ -72,7 +72,7 @@ Search::Elasticsearch::Role::Transport - Transport role providing interface betw
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -1,7 +1,7 @@
package Search::Elasticsearch::Scroll;
-$Search::Elasticsearch::Scroll::VERSION = '1.12';
+$Search::Elasticsearch::Scroll::VERSION = '1.13';
use Moo;
-use Search::Elasticsearch::Util qw(parse_params);
+use Search::Elasticsearch::Util qw(parse_params throw);
use namespace::clean;
has '_buffer' => ( is => 'ro' );
@@ -13,25 +13,30 @@ with 'Search::Elasticsearch::Role::Is_Sync',
sub BUILDARGS {
#===================================
my ( $class, $params ) = parse_params(@_);
- my $es = delete $params->{es};
- my $scroll = $params->{scroll} ||= '1m';
- my $scroll_in_body = delete $params->{scroll_in_body};
- my $results = $es->search($params);
+ my $es = delete $params->{es};
+ my $scroll = $params->{scroll} ||= '1m';
+
+ throw( 'Param',
+ 'The (scroll_in_body) parameter has been replaced by (scroll_in_qs)' )
+ if exists $params->{scroll_in_body};
+
+ my $scroll_in_qs = delete $params->{scroll_in_qs};
+ my $results = $es->search($params);
my $total = $results->{hits}{total};
return {
- es => $es,
- scroll => $scroll,
- scroll_in_body => $scroll_in_body,
- aggregations => $results->{aggregations},
- facets => $results->{facets},
- suggest => $results->{suggest},
- took => $results->{took},
- total_took => $results->{took},
- total => $total,
- max_score => $results->{hits}{max_score},
- _buffer => $results->{hits}{hits},
+ es => $es,
+ scroll => $scroll,
+ scroll_in_qs => $scroll_in_qs,
+ aggregations => $results->{aggregations},
+ facets => $results->{facets},
+ suggest => $results->{suggest},
+ took => $results->{took},
+ total_took => $results->{took},
+ total => $total,
+ max_score => $results->{hits}{max_score},
+ _buffer => $results->{hits}{hits},
$total
? ( _scroll_id => $results->{_scroll_id} )
: ( is_finished => 1 )
@@ -105,9 +110,10 @@ sub _clear_scroll {
my $scroll_id = $self->_scroll_id or return;
$self->_clear_scroll_id;
- my %args = $self->scroll_in_body
- ? ( body => $scroll_id )
- : ( scroll_id => $scroll_id );
+ my %args
+ = $self->scroll_in_qs
+ ? ( scroll_id => $scroll_id )
+ : ( body => $scroll_id );
eval { $self->es->clear_scroll(%args) };
}
@@ -123,7 +129,7 @@ Search::Elasticsearch::Scroll - A helper module for scrolled searches
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -274,7 +280,7 @@ are memory constrained, you will need to take this into account.
my $es = Search::Elasticsearch->new(...);
my $scroll = $es->scroll_helper(
scroll => '1m', # optional
- scroll_in_body => 0|1, # optional
+ scroll_in_qs => 0|1, # optional
%search_params
);
@@ -283,7 +289,7 @@ L<Search::Elasticsearch::Scroll> class and calls L</new()>,
passing in any arguments.
You can specify a C<scroll> duration (which defaults to C<"1m">) and
-C<scroll_in_body> (which defaults to C<false>). Any other parameters are
+C<scroll_in_qs> (which defaults to C<false>). Any other parameters are
passed directly to L<Search::Elasticsearch::Client::Direct/search()>.
The C<scroll> duration tells Elasticearch how long it should keep the scroll
@@ -292,13 +298,14 @@ all results, just long enough to process a single B<batch> of results.
The expiry gets renewed for another C<scroll> period every time new
a new batch of results is retrieved from the cluster.
-By default, the C<scroll_id> is passed in the
-L<scroll|Search::Elasticsearch::Client::Direct/scroll()> request as part
-of the query string. When querying very many indices, the scroll ID can become
-too long for intervening proxies. To send it in the request body instead,
-set C<scroll_in_body> to a true value. To send it in the request body
-as a C<POST> request, also set
-L<send_get_body_as|Search::Elasticsearch::Transport/send_get_body_as> to
+By default, the C<scroll_id> is passed as the C<body> to the
+L<scroll|Search::Elasticsearch::Client::Direct/scroll()> request.
+To send it in the query string instead, set C<scroll_in_qs> to a true value,
+but be aware: when querying very many indices, the scroll ID can become
+too long for intervening proxies.
+
+The C<scroll> request uses C<GET> by default. To use C<POST> instead,
+set L<send_get_body_as|Search::Elasticsearch::Transport/send_get_body_as> to
C<POST>.
=head2 C<next()>
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Serializer::JSON::Cpanel;
-$Search::Elasticsearch::Serializer::JSON::Cpanel::VERSION = '1.12';
+$Search::Elasticsearch::Serializer::JSON::Cpanel::VERSION = '1.13';
use Cpanel::JSON::XS;
use Moo;
@@ -20,7 +20,7 @@ Search::Elasticsearch::Serializer::JSON::Cpanel - A JSON Serializer using Cpanel
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Serializer::JSON::PP;
-$Search::Elasticsearch::Serializer::JSON::PP::VERSION = '1.12';
+$Search::Elasticsearch::Serializer::JSON::PP::VERSION = '1.13';
use Moo;
use JSON::PP;
@@ -23,7 +23,7 @@ Search::Elasticsearch::Serializer::JSON::PP - A JSON Serializer using JSON::PP
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Serializer::JSON::XS;
-$Search::Elasticsearch::Serializer::JSON::XS::VERSION = '1.12';
+$Search::Elasticsearch::Serializer::JSON::XS::VERSION = '1.13';
use Moo;
use JSON::XS;
@@ -19,7 +19,7 @@ Search::Elasticsearch::Serializer::JSON::XS - A JSON Serializer using JSON::XS
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Serializer::JSON;
-$Search::Elasticsearch::Serializer::JSON::VERSION = '1.12';
+$Search::Elasticsearch::Serializer::JSON::VERSION = '1.13';
use Moo;
use JSON::MaybeXS 1.002002 ();
@@ -24,7 +24,7 @@ Search::Elasticsearch::Serializer::JSON - The default JSON Serializer, using JSO
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::TestServer;
-$Search::Elasticsearch::TestServer::VERSION = '1.12';
+$Search::Elasticsearch::TestServer::VERSION = '1.13';
use Moo;
use Search::Elasticsearch();
use POSIX 'setsid';
@@ -174,7 +174,7 @@ Search::Elasticsearch::TestServer - A helper class to launch Elasticsearch nodes
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Transport;
-$Search::Elasticsearch::Transport::VERSION = '1.12';
+$Search::Elasticsearch::Transport::VERSION = '1.13';
use Moo;
use URI();
@@ -73,7 +73,7 @@ Search::Elasticsearch::Transport - Provides interface between the client class a
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Util::API::Path;
-$Search::Elasticsearch::Util::API::Path::VERSION = '1.12';
+$Search::Elasticsearch::Util::API::Path::VERSION = '1.13';
use strict;
use warnings;
use Any::URI::Escape qw(uri_escape);
@@ -66,7 +66,7 @@ Search::Elasticsearch::Util::API::Path - A utility class for converting path tem
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Util::API::QS;
-$Search::Elasticsearch::Util::API::QS::VERSION = '1.12';
+$Search::Elasticsearch::Util::API::QS::VERSION = '1.13';
use strict;
use warnings;
@@ -27,14 +27,15 @@ our %Params = (
analyzer => { type => 'string' },
boost_terms => { type => 'number' },
bytes => { type => 'enum', options => [ 'b', 'k', 'm', 'g' ] },
- char_filters => { type => 'list' },
- clear => { type => 'bool' },
- completion => { type => 'bool' },
+ char_filters => { type => 'list' },
+ clear => { type => 'bool' },
+ completion => { type => 'bool' },
completion_fields => { type => 'list' },
consistency => {
options => [ 'one', 'quorum', 'all' ],
type => 'enum'
},
+ create => { type => 'bool' },
default_operator => {
default => 'OR',
options => [ 'AND', 'OR' ],
@@ -97,7 +98,6 @@ our %Params = (
index_templates => { type => 'list' },
indexing => { type => 'bool' },
indices => { type => 'bool' },
- indices_boost => { type => 'list' },
interval => { type => 'duration' },
jvm => { type => 'bool' },
lang => { type => 'string' },
@@ -136,6 +136,7 @@ our %Params = (
payloads => { type => 'bool' },
percent_terms_to_match => { type => 'number' },
percolate => { type => 'string' },
+ percolate_format => { type => 'string' },
percolate_index => { type => 'string' },
percolate_type => { type => 'string' },
plugin => { type => 'bool' },
@@ -202,6 +203,7 @@ our %Params = (
timeout => { type => 'duration' },
timestamp => { type => 'datetime' },
tokenizer => { type => 'string' },
+ track_scores => { type => 'bool' },
transport => { type => 'bool' },
ts => { type => 'bool' },
ttl => { type => 'duration' },
@@ -253,7 +255,7 @@ Search::Elasticsearch::Util::API::QS - A utility class for query string paramete
=head1 VERSION
-version 1.12
+version 1.13
=head1 DESCRIPTION
@@ -1,5 +1,5 @@
package Search::Elasticsearch::Util;
-$Search::Elasticsearch::Util::VERSION = '1.12';
+$Search::Elasticsearch::Util::VERSION = '1.13';
use Moo;
use Search::Elasticsearch::Error();
use Scalar::Util qw(blessed);
@@ -119,7 +119,7 @@ Search::Elasticsearch::Util - A utility class for internal use by Search::Elasti
=head1 VERSION
-version 1.12
+version 1.13
=head1 AUTHOR
@@ -5,7 +5,7 @@ use Moo 1.003;
use Search::Elasticsearch::Util qw(parse_params load_plugin);
use namespace::clean;
-our $VERSION = '1.12';
+our $VERSION = '1.13';
my %Default_Plugins = (
client => [ 'Search::Elasticsearch::Client', 'Direct' ],
@@ -53,7 +53,7 @@ Search::Elasticsearch - The official client for Elasticsearch
=head1 VERSION
-version 1.12
+version 1.13
=head1 SYNOPSIS
@@ -0,0 +1,5 @@
+use lib 't/lib';
+
+$ENV{ES_CXN} = 'HTTPTiny';
+do "es_sync_fork.pl" or die $!;
+
@@ -0,0 +1,5 @@
+use lib 't/lib';
+
+$ENV{ES_CXN} = 'LWP';
+do "es_sync_fork.pl" or die $!;
+
@@ -0,0 +1,5 @@
+use lib 't/lib';
+
+$ENV{ES_CXN} = 'Hijk';
+do "es_sync_fork.pl" or die $!;
+
@@ -0,0 +1,5 @@
+use lib 't/lib';
+
+$ENV{ES_CXN} = 'NetCurl';
+do "es_sync_fork.pl" or die $!;
+
@@ -83,9 +83,9 @@ SKIP: {
);
test_scroll(
- "Scroll in body",
- { scroll_in_body => 1,
- body => {
+ "Scroll in qs",
+ { scroll_in_qs => 1,
+ body => {
query => { term => { color => 'red' } },
suggest => {
mysuggest =>
@@ -13,6 +13,7 @@ my $api = $version =~ /^0.90/ ? '0_90::Direct' : 'Direct';
my $body = $ENV{ES_BODY} || 'GET';
my $cxn = $ENV{ES_CXN} || do "default_cxn.pl" || die $!;
my $cxn_pool = $ENV{ES_CXN_POOL} || 'Static';
+my $timeout = $ENV{ES_TIMEOUT} || 30;
my $es;
if ( $ENV{ES} ) {
@@ -22,7 +23,8 @@ if ( $ENV{ES} ) {
cxn => $cxn,
cxn_pool => $cxn_pool,
client => $api,
- send_get_body_as => $body
+ send_get_body_as => $body,
+ request_timeout => $timeout
);
eval { $es->ping; } or do {
diag $@;
@@ -0,0 +1,42 @@
+use Test::More;
+use POSIX ":sys_wait_h";
+
+my $es = do "es_sync.pl";
+my $cxn_class = ref $es->transport->cxn_pool->cxns->[0];
+ok $es->info, "$cxn_class - Info before fork";
+
+my $Kids = 4;
+my %pids;
+
+for my $child ( 1 .. $Kids ) {
+ my $pid = fork();
+ if ($pid) {
+ $pids{$pid} = $child;
+ next;
+ }
+ if ( !defined $pid ) {
+ skip "fork() not supported";
+ done_testing;
+ last;
+ }
+
+ for ( 1 .. 100 ) {
+ $es->info;
+ }
+ exit;
+}
+
+my $ok = 0;
+for ( 1 .. 10 ) {
+ my $pid = waitpid( -1, WNOHANG );
+ if ( $pid > 0 ) {
+ delete $pids{$pid};
+ $ok++ unless $?;
+ redo;
+ }
+ last unless keys %pids;
+ sleep 1;
+}
+
+is $ok, $Kids, "$cxn_class - Fork";
+done_testing;
@@ -9,7 +9,7 @@ BEGIN {
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.07
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.06
use Test::More 0.88;
use Test::NoTabs;
@@ -61,79 +61,7 @@ my @files = (
'lib/Search/Elasticsearch/Transport.pm',
'lib/Search/Elasticsearch/Util.pm',
'lib/Search/Elasticsearch/Util/API/Path.pm',
- 'lib/Search/Elasticsearch/Util/API/QS.pm',
- 't/10_Basic/10_load.t',
- 't/20_Serializer/10_load_cpanel.t',
- 't/20_Serializer/11_load_xs.t',
- 't/20_Serializer/12_load_pp.t',
- 't/20_Serializer/13_preload_cpanel.t',
- 't/20_Serializer/14_preload_xs.t',
- 't/20_Serializer/20_xs_encode_decode.t',
- 't/20_Serializer/21_xs_encode_bulk.t',
- 't/20_Serializer/22_xs_encode_pretty.t',
- 't/20_Serializer/30_cpanel_encode_decode.t',
- 't/20_Serializer/31_cpanel_encode_bulk.t',
- 't/20_Serializer/32_cpanel_encode_pretty.t',
- 't/20_Serializer/40_pp_encode_decode.t',
- 't/20_Serializer/41_pp_encode_bulk.t',
- 't/20_Serializer/42_pp_encode_pretty.t',
- 't/20_Serializer/encode_bulk.pl',
- 't/20_Serializer/encode_decode.pl',
- 't/20_Serializer/encode_pretty.pl',
- 't/30_Logger/10_explicit.t',
- 't/30_Logger/20_implicit.t',
- 't/30_Logger/30_log_methods.t',
- 't/30_Logger/40_trace_request.t',
- 't/30_Logger/50_trace_response.t',
- 't/30_Logger/60_trace_error.t',
- 't/30_Logger/70_trace_comment.t',
- 't/40_Transport/10_tidy_request.t',
- 't/40_Transport/20_send_body_as.t',
- 't/40_Transport/30_perform_request.t',
- 't/50_Cxn_Pool/10_static_normal.t',
- 't/50_Cxn_Pool/11_static_node_missing.t',
- 't/50_Cxn_Pool/12_static_node_fails.t',
- 't/50_Cxn_Pool/13_static_node_timesout.t',
- 't/50_Cxn_Pool/14_static_both_nodes_timeout.t',
- 't/50_Cxn_Pool/15_static_both_nodes_fail.t',
- 't/50_Cxn_Pool/16_static_nodes_starting.t',
- 't/50_Cxn_Pool/17_static_runaway_nodes.t',
- 't/50_Cxn_Pool/30_sniff_normal.t',
- 't/50_Cxn_Pool/31_sniff_new_nodes.t',
- 't/50_Cxn_Pool/32_sniff_node_fails.t',
- 't/50_Cxn_Pool/33_sniff_both_nodes_fail.t',
- 't/50_Cxn_Pool/34_sniff_node_timeout.t',
- 't/50_Cxn_Pool/35_sniff_both_nodes_timeout.t',
- 't/50_Cxn_Pool/36_sniff_nodes_starting.t',
- 't/50_Cxn_Pool/37_sniff_runaway_nodes.t',
- 't/50_Cxn_Pool/38_bad_sniff.t',
- 't/50_Cxn_Pool/39_sniff_max_content.t',
- 't/50_Cxn_Pool/50_noping_normal.t',
- 't/50_Cxn_Pool/51_noping_node_fails.t',
- 't/50_Cxn_Pool/52_noping_node_timesout.t',
- 't/50_Cxn_Pool/53_noping_all_nodes_fail.t',
- 't/50_Cxn_Pool/54_noping_nodes_starting.t',
- 't/50_Cxn_Pool/55_noping_runaway_nodes.t',
- 't/50_Cxn_Pool/56_max_retries.t',
- 't/50_Cxn_Pool/70_live.t',
- 't/60_Cxn/10_basic.t',
- 't/60_Cxn/20_process_response.t',
- 't/60_Cxn/30_http.t',
- 't/70_Helper/10_bulk_add_action.t',
- 't/70_Helper/20_bulk_helpers.t',
- 't/70_Helper/30_bulk_flush.t',
- 't/70_Helper/40_bulk_errors.t',
- 't/70_Helper/50_scroll.t',
- 't/70_Helper/60_reindex.t',
- 't/90_Client_Spec/00_print_version.t',
- 't/lib/LogCallback.pl',
- 't/lib/MockCxn.pm',
- 't/lib/default_cxn.pl',
- 't/lib/es_sync.pl',
- 't/lib/index_test_data.pl',
- 't/release-eol.t',
- 't/release-no-tabs.t',
- 't/release-pod-syntax.t'
+ 'lib/Search/Elasticsearch/Util/API/QS.pm'
);
notabs_ok($_) foreach @files;
@@ -9,6 +9,8 @@ BEGIN {
# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-use Test::Pod 1.41;
+
+eval "use Test::Pod 1.41";
+plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
all_pod_files_ok();