Apache-Solr
view release on metacpan or search on metacpan
lib/Apache/Solr.pm view on Meta::CPAN
use warnings;
use strict;
use Apache::Solr::Tables;
use Log::Report qw/solr/;
use Scalar::Util qw/blessed/;
use Encode qw/encode/;
use Scalar::Util qw/weaken/;
use URI ();
use LWP::UserAgent ();
use MIME::Types ();
use constant {
LATEST_SOLR_VERSION => '9.8', # newest support by this module
ENETDOWN => 100, # error codes may not be available on all platforms
ENETUNREACH => 101, # so cannot use Errno.
};
lib/Apache/Solr.pm view on Meta::CPAN
$self->{AS_core} = $args->{core};
$self->{AS_commit} = exists $args->{autocommit} ? $args->{autocommit} : 1;
$self->{AS_sversion} = $args->{server_version} || LATEST_SOLR_VERSION;
$self->{AS_retry_wait} = $args->{retry_wait} // 5; # seconds
$self->{AS_retry_max} = $args->{retry_max} // 60;
$self->{AS_underscore} = exists $args->{field_key_simplify} ? $args->{field_key_simplify} : 1;
$http_agent = $self->{AS_agent} =
$args->{agent} || $http_agent || LWP::UserAgent->new(keep_alive=>1);
weaken $http_agent;
$self;
}
#--------------------
sub core(;$) { my $s = shift; @_ ? $s->{AS_core} = shift : $s->{AS_core} }
sub autocommit(;$) { my $s = shift; @_ ? $s->{AS_commit} = shift : $s->{AS_commit} }
sub agent() { $_[0]->{AS_agent} }
sub serverVersion() { $_[0]->{AS_sversion} }
lib/Apache/Solr/Result.pm view on Meta::CPAN
}
use warnings;
no warnings 'recursion'; # linked list of pages can get deep
use strict;
use Log::Report qw/solr/;
use Time::HiRes qw/time/;
use Scalar::Util qw/weaken/;
use Apache::Solr::Document ();
use Data::Dumper;
$Data::Dumper::Indent = 1;
$Data::Dumper::Quotekeys = 0;
#--------------------
use overload
lib/Apache/Solr/Result.pm view on Meta::CPAN
my $p = $args->{params} || [];
($p, my $params) = ref $p eq 'HASH' ? ( +[%$p], $p ) : ($p, +{@$p});
$self->{ASR_params} = $p;
$self->{ASR_endpoint} = $args->{endpoint} or panic;
$self->{ASR_start} = time;
$self->request($args->{request});
$self->response($args->{response});
$self->{ASR_pages} = [ $self ]; # first has non-weak page-table
weaken $self->{ASR_pages}[0]; # no reference loop!
if($self->{ASR_core} = $args->{core}) { weaken $self->{ASR_core} }
$self->{ASR_next} = $params->{start} || 0;
$self->{ASR_seq} = $args->{sequential} || 0;
$self->{ASR_fpz} = $args->{_fpz};
$self;
}
# replace the pageset with a shared set.
sub _pageset($)
{ $_[0]->{ASR_pages} = $_[1];
weaken $_[0]->{ASR_pages}; # otherwise memory leak
}
#--------------------
sub start() { $_[0]->{ASR_start} }
sub endpoint() { $_[0]->{ASR_endpoint} }
sub params() { @{ $_[0]->{ASR_params}} }
sub core() { $_[0]->{ASR_core} }
sub sequential() { $_[0]->{ASR_seq} }
( run in 1.874 second using v1.01-cache-2.11-cpan-9789f410c06 )