ct;
use warnings;
use Any::URI::Escape qw(uri_escape);
use JSON;
use Search::Elasticsearch::Util qw(throw parse_params);
use Carp;
has 'JSON' => ( is => 'lazy' );
has '_base_qs' => ( is => 'ro',
', @$vals );
},
);
#===================================
sub _build_JSON {
#===================================
JSON->new->utf8(1);
}
#===================================
sub _build_builder
s}
? $params->{post_process}->($result)
: $result;
return $params->{as_json} ? $self->JSON->encode($result) : $result;
}
#===================================
sub use_index {
#===
scroll} ||= '1m';
my $method = $params->{q} ? 'searchqs' : 'search';
my $as_json = delete $params->{as_json};
my $results = $es->$method($params);
my $self = {
_es =
max_score},
_facets => $results->{facets},
_eof => 0,
_as_json => $as_json,
};
return bless( $self, $class );
}
#===================================
sub ne
my @results = splice @{ $self->{_buffer} }, 0, $size;
return
$self->{_as_json} ? $self->{_es}->JSON->encode( \@results )
: $size == 1 ? $results[0]
: