From ad206a73f867f6a184f64d41e4ccfa8e5bb0cd21 Mon Sep 17 00:00:00 2001 From: Jared Camins-Esakov Date: Tue, 5 Apr 2011 15:48:03 +0200 Subject: [PATCH] Bug 5651: Question marks break searches w/ICU When a user is doing a simple keyword search, they should not be expected to deal with the magical behavior of question marks in Zebra. This fix escapes question marks, and reduces the number of false positives for identifying a "simple keyword search." Signed-off-by: Jonathan Druart Signed-off-by: Chris Cormack --- C4/Search.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/C4/Search.pm b/C4/Search.pm index c69e787341..24ed772188 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -1122,10 +1122,12 @@ sub buildQuery { my $indexes_set; # If the user is sophisticated enough to specify an index, turn off field weighting, stemming, and stopword handling - if ( $operands[$i] =~ /(:|=)/ || $scan ) { + if ( $operands[$i] =~ /\w(:|=)/ || $scan ) { $weight_fields = 0; $stemming = 0; $remove_stopwords = 0; + } else { + $operands[$i] =~ s/\?/{?}/g; # need to escape question marks } my $operand = $operands[$i]; my $index = $indexes[$i]; -- 2.39.5