diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index d5dbdee886..e91c4d7e16 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -1131,6 +1131,15 @@ sub _fix_limit_special_cases { elsif ( $l =~ /^available$/ ) { push @new_lim, 'available:true'; } + elsif ( $l =~ /^\s*(kw\b[\w,-]*?):(.*)/) { + my ( $field, $term ) = ($1, $2); + if ( defined($field) && defined($term) && $field =~ /,phr$/) { + push @new_lim, "(\"$term\")"; + } + else { + push @new_lim, $term; + } + } else { my ( $field, $term ) = $l =~ /^\s*([\w,-]*?):(.*)/; $field =~ s/,phr$//; #We are quoting all the limits as phrase, this prevents from quoting again later