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->server($args->{server});
$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;
$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() {shift->{AS_agent}}
sub serverVersion() {shift->{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
'""' => 'endpoint'
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() {shift->{ASR_start}}
sub endpoint() {shift->{ASR_endpoint}}
sub params() {@{shift->{ASR_params}}}
sub core() {shift->{ASR_core}}
sub sequential() {shift->{ASR_seq}}
( run in 0.468 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )