diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm b/Koha/SearchEngine/Elasticsearch/Search.pm index 1c8f609bf9..4ef1652ac1 100644 --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ b/Koha/SearchEngine/Elasticsearch/Search.pm @@ -50,9 +50,9 @@ use Koha::SearchEngine::Search; use Koha::Exceptions::Elasticsearch; use MARC::Record; use MARC::File::XML; -use Data::Dumper; #TODO remove use Carp qw(cluck); use MIME::Base64; +use JSON; Koha::SearchEngine::Elasticsearch::Search->mk_accessors(qw( store )); @@ -95,12 +95,16 @@ sub search { my $results = eval { $elasticsearch->search( index => $self->index_name, + track_total_hits => JSON::true, body => $query ); }; if ($@) { die $self->process_error($@); } + if (ref $results->{hits}->{total} eq 'HASH') { + $results->{hits}->{total} = $results->{hits}->{total}->{value}; + } return $results; } @@ -121,9 +125,13 @@ sub count { # and just return number of hits my $result = $elasticsearch->search( index => $self->index_name, + track_total_hits => JSON::true, body => $query ); + if (ref $result->{hits}->{total} eq 'HASH') { + return $result->{hits}->{total}->{value}; + } return $result->{hits}->{total}; }