[Koha-patches] [PATCH] [SIGNED-OFF] Bug 5651: Question marks break searches w/ICU

Jonathan Druart jonathan.druart at biblibre.com
Tue Apr 5 15:48:03 CEST 2011


From: Jared Camins-Esakov <jcamins at bywatersolutions.com>

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 <jonathan.druart at biblibre.com>
---
 C4/Search.pm |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/C4/Search.pm b/C4/Search.pm
index c69e787..24ed772 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];
-- 
1.7.1



More information about the Koha-patches mailing list