Bug 30883: Authorities merge is limited to 100 biblio with Elasticsearch
In C4::AuthoritiesMarc::merge, we search all biblio records using an authority with Koha::Authorities->linked_biblionumbers(). This method uses simple_search_compat() with no results limit, even saying in comment :44d6528b56/Koha/Authorities.pm (L80)
With Zebra searchengin it is correct. But not with Elasticsearch, there is an hardcoded limit at 100 in case no limit is given :44d6528b56/Koha/SearchEngine/Elasticsearch/Search.pm (L346)
This means authorities links are wrong after a merge or an edit in case the authority is used in more than 100 biblio records. :( I propose to fix by using by default the real server max given by Koha::SearchEngine::Elasticsearch::Search::max_result_window(). This will allow a huge limit nearly impossible to reach. See Bug 30882 to how increase this limit. Test plan : 1) Use Elasticsearch search engine 2) Use an authority id=111 linked to 200 biblio records 3) Perform a search 'an:111', you get 200 results 4) Create a new authority id=222 linked to 2 biblio records 5) Perform a search 'an:222', you get 2 results 6) Perform a merge of the two authorties, keeping id=222 7) Perform a search 'an:111' without patch you get 100 results with patch you get no results 8) Perform a search 'an:222' without patch you get 102 results with patch you get 202 results Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> (cherry picked from commit48d4b016ab
) Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
7192efd271
commit
eae8863fcb
1 changed files with 3 additions and 3 deletions
|
@ -304,8 +304,8 @@ How many results to skip from the start of the results.
|
|||
|
||||
=item C<$max_results>
|
||||
|
||||
The max number of results to return. The default is 100 (because unlimited
|
||||
is a pretty terrible thing to do.)
|
||||
The max number of results to return.
|
||||
The default is the result of method max_result_window().
|
||||
|
||||
=item C<%options>
|
||||
|
||||
|
@ -343,7 +343,7 @@ sub simple_search_compat {
|
|||
my %options;
|
||||
$offset = 0 if not defined $offset or $offset < 0;
|
||||
$options{offset} = $offset;
|
||||
$max_results //= 100;
|
||||
$max_results //= $self->max_result_window;
|
||||
|
||||
unless (ref $query) {
|
||||
# We'll push it through the query builder to sanitise everything.
|
||||
|
|
Loading…
Reference in a new issue