From 455acf686d7e74aa5582bc700e856935e852573a Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 26 Jun 2020 13:19:47 +0000 Subject: [PATCH] Bug 25882: Remove phr indicator from limits when processing We assume all limits from advanced search to be a phrase and quote them when doing this we should remove the phrase marker to avoid doulbe quoting To test: 1 - Have koha using ES 2 - Go to advanced search 3 - Limit by a single itemtype that exists 4 - Get some results 5 - Limit by a different itemtype that exists 6 - Get some results 7 - Limit by both itemtypes 8 - Get only the results for the second itemtype 9 - Enable DumpTemplateVarsIntranet and DumpSearchQueryTemplate 10 - Repeat search 11 - View page source and find 'search_query' 12 - See limit looks like itype:("("BK")" OR "("CR")") 13 - Apply patches 14 - Restart all the things 15 - Repeat search for both itemtypes 16 - Note results now include both types Signed-off-by: Alex Arnaud Signed-off-by: Tomas Cohen Arazi Signed-off-by: Jonathan Druart (cherry picked from commit a2b2426de842ac86048cbf71e3760b6483fc0b3c) Signed-off-by: Lucas Gass --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index 4d69dcf95b..8f3aea9445 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -1014,6 +1014,7 @@ sub _fix_limit_special_cases { } else { my ( $field, $term ) = $l =~ /^\s*([\w,-]*?):(.*)/; + $field =~ s/,phr$//; #We are quoting all the limits as phrase, this prevents from quoting again later if ( defined($field) && defined($term) ) { push @new_lim, "$field:(\"$term\")"; } -- 2.39.5