Bug 33406: Handle ES search errors for authorities
We are dealing ok with ES exceptions for biblio records search, catching them and raising them to the end user. But we don't for authorities, where we explode with an ugly 500. Test plan: Search for "(term_1*) AND (-) AND (term_2*)" in the authority search and notice that you don't get a 500 but an error instead saying that you should try again Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> (cherry picked from commit09b29d06da
) Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com> (cherry picked from commitb4187cf2ab
) Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
This commit is contained in:
parent
c31e7b4fe2
commit
8ad444a891
2 changed files with 25 additions and 12 deletions
|
@ -88,18 +88,6 @@ if ( $op eq "do_search" ) {
|
|||
my $resultsperpage = $query->param('resultsperpage') || 20;
|
||||
my $offset = ( $startfrom - 1 ) * $resultsperpage + 1;
|
||||
|
||||
my $builder = Koha::SearchEngine::QueryBuilder->new(
|
||||
{ index => $Koha::SearchEngine::AUTHORITIES_INDEX } );
|
||||
my $searcher = Koha::SearchEngine::Search->new(
|
||||
{ index => $Koha::SearchEngine::AUTHORITIES_INDEX } );
|
||||
my $search_query = $builder->build_authorities_query_compat(
|
||||
[$marclist], [$and_or], [$excluding], [$operator],
|
||||
[$value], $authtypecode, $orderby
|
||||
);
|
||||
my ( $results, $total ) = $searcher->search_auth_compat(
|
||||
$search_query, $offset, $resultsperpage
|
||||
);
|
||||
|
||||
( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
||||
{
|
||||
template_name => "authorities/searchresultlist.tt",
|
||||
|
@ -109,6 +97,27 @@ if ( $op eq "do_search" ) {
|
|||
}
|
||||
);
|
||||
|
||||
my $builder = Koha::SearchEngine::QueryBuilder->new(
|
||||
{ index => $Koha::SearchEngine::AUTHORITIES_INDEX } );
|
||||
my $searcher = Koha::SearchEngine::Search->new(
|
||||
{ index => $Koha::SearchEngine::AUTHORITIES_INDEX } );
|
||||
|
||||
my $search_query = $builder->build_authorities_query_compat(
|
||||
[$marclist], [$and_or], [$excluding], [$operator],
|
||||
[$value], $authtypecode, $orderby
|
||||
);
|
||||
my ( $results, $total );
|
||||
eval {
|
||||
( $results, $total ) = $searcher->search_auth_compat(
|
||||
$search_query, $offset, $resultsperpage
|
||||
);
|
||||
};
|
||||
if ($@) {
|
||||
my $query_error = q{};
|
||||
$query_error .= $@ if $@;
|
||||
$template->param(query_error => $query_error);
|
||||
}
|
||||
|
||||
$template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate');
|
||||
$template->param(
|
||||
csrf_token => Koha::Token->new->generate_csrf({
|
||||
|
|
|
@ -43,6 +43,10 @@
|
|||
|
||||
<div id="merge_in_progress" class="page-section bg-info" style="display:none;"></div>
|
||||
<div class="page-section">
|
||||
[% IF ( query_error ) %]
|
||||
<div class="dialog alert"><p><strong>Error:</strong> [% query_error | html %]</p></div>
|
||||
[% END %]
|
||||
|
||||
[% IF ( total ) %]
|
||||
<div class="pages">[% pagination_bar | $raw %]</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue