Bugzilla – Attachment 130844 Details for
Bug 28610
Elasticsearch 7 - hits.total is now an object
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28610: Elasticsearch 7 - hits.total is now an object
Bug-28610-Elasticsearch-7---hitstotal-is-now-an-ob.patch (text/plain), 2.40 KB, created by
Victor Grousset/tuxayo
on 2022-02-18 14:14:56 UTC
(
hide
)
Description:
Bug 28610: Elasticsearch 7 - hits.total is now an object
Filename:
MIME Type:
Creator:
Victor Grousset/tuxayo
Created:
2022-02-18 14:14:56 UTC
Size:
2.40 KB
patch
obsolete
>From ab85f98b71256031091a8c1b1ced7b849bd5a47a Mon Sep 17 00:00:00 2001 >From: Kevin Carnes <kevin.carnes@ub.lu.se> >Date: Tue, 8 Feb 2022 14:48:19 +0100 >Subject: [PATCH] Bug 28610: Elasticsearch 7 - hits.total is now an object > >In Elasticsearch 7 hits.total is now an object which is not always an exact >value. You can always get an exact total by adding a track_total_hits >parameter set to true when using the Elasticsearch search method > >To test: >1) Run prove t/db_dependent/Koha/SearchEngine/Elasticsearch/Search.t >2) If you observe an error about types, apply patch for bug 25669 >3) Run prove t/db_dependent/Koha/SearchEngine/Elasticsearch/Search.t >4) Observe that tests with count fail >5) Apply patch >6) Observe that tests with count pass >7) Sign off > >Sponsored-by: Lund University Library >Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> >--- > Koha/SearchEngine/Elasticsearch/Search.pm | 20 ++++++++++++++++---- > 1 file changed, 16 insertions(+), 4 deletions(-) > >diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm b/Koha/SearchEngine/Elasticsearch/Search.pm >index b616b4efe1..d24f03fc76 100644 >--- a/Koha/SearchEngine/Elasticsearch/Search.pm >+++ b/Koha/SearchEngine/Elasticsearch/Search.pm >@@ -51,6 +51,8 @@ use Koha::Exceptions::Elasticsearch; > use MARC::Record; > use MARC::File::XML; > use MIME::Base64 qw( decode_base64 ); >+use JSON; >+use version; > > Koha::SearchEngine::Elasticsearch::Search->mk_accessors(qw( store )); > >@@ -90,15 +92,22 @@ sub search { > $query->{from} = $page * $query->{size}; > } > my $elasticsearch = $self->get_elasticsearch(); >+ my %es_search = ( >+ index => $self->index_name, >+ body => $query >+ ); >+ if (version->parse($self->{es_version}) >= version->parse('7.0.0')) { >+ $es_search{'track_total_hits'} = JSON::true; >+ } > my $results = eval { >- $elasticsearch->search( >- index => $self->index_name, >- body => $query >- ); >+ $elasticsearch->search(%es_search); > }; > if ($@) { > die $self->process_error($@); > } >+ if (ref $results->{hits}->{total} eq 'HASH') { >+ $results->{hits}->{total} = $results->{hits}->{total}->{value}; >+ } > return $results; > } > >@@ -122,6 +131,9 @@ sub count { > body => $query > ); > >+ if (ref $result->{hits}->{total} eq 'HASH') { >+ return $result->{hits}->{total}->{value}; >+ } > return $result->{hits}->{total}; > } > >-- >2.35.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28610
:
130291
|
130343
|
130844
|
131008
|
131436
|
131542
|
132389