@@ -, +, @@ limits --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 1 + t/db_dependent/Koha/SearchEngine/Elasticsearch/Search.t | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -306,6 +306,7 @@ sub build_query_compat { # them into a structured ES query itself. Maybe later, though that'd be # more robust. $search_param_query_str = join( ' ', $self->_create_query_string(@search_params) ); + $search_param_query_str = "($search_param_query_str)"; $query_str = join( ' AND ', $search_param_query_str || (), $self->_join_queries( $self->_convert_index_strings(@$limits) ) || () ); --- a/t/db_dependent/Koha/SearchEngine/Elasticsearch/Search.t +++ a/t/db_dependent/Koha/SearchEngine/Elasticsearch/Search.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 13; +use Test::More tests => 14; use t::lib::Mocks; use Koha::SearchEngine::Elasticsearch::QueryBuilder; @@ -84,6 +84,13 @@ is( $searcher->index, 'mydb', 'Testing basic accessor' ); ok( my $query = $builder->build_query('easy'), 'Build a search query'); +my (undef, $or_query) = $builder->build_query_compat( ['OR'], ['a', 'b'], undef, ['mc-itype:c'] ); +is( + $or_query->{query}->{query_string}->{query}, + '((a*) OR (b*)) AND itype:("c")', + 'Testing OR query with limit' +); + SKIP: { eval { $builder->get_elasticsearch_params; }; --