diff --git a/authorities/authorities-home.pl b/authorities/authorities-home.pl index 84122ed0e8..467da48e77 100755 --- a/authorities/authorities-home.pl +++ b/authorities/authorities-home.pl @@ -97,25 +97,19 @@ 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 $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 - ); - }; + 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( query_error => $query_error ); } $template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate'); diff --git a/t/Koha/SearchEngine/Elasticsearch/Search.t b/t/Koha/SearchEngine/Elasticsearch/Search.t index 046767cf01..6353793b10 100755 --- a/t/Koha/SearchEngine/Elasticsearch/Search.t +++ b/t/Koha/SearchEngine/Elasticsearch/Search.t @@ -45,12 +45,13 @@ subtest 'search_auth_compat' => sub { my $search_query = $builder->build_authorities_query_compat( ['mainmainentry'], ['and'], [''], ['contains'], - ['Donald - Duck'], '', 'HeadingAsc' + ['Donald - ^ \ ~ + Duck'], '', 'HeadingAsc' ); - my ( $bad_results, undef ) = $search->search_auth_compat( $search_query, 0, 20, undef ); - - is( @$bad_results[0], undef, 'We expect no record because it doesnt exist' ); + is( + $search_query->{query}->{bool}->{must}->[0]->{query_string}->{query}, '(Donald*) AND (Duck*)', + "Reserved characters -, ^, \\, ~, + have been removed from search query" + ); my $module = Test::MockModule->new('Koha::SearchEngine::Elasticsearch::Search'); $module->mock( 'count_auth_use', sub { return 1 } );