Bug 23322: Correct case for boolean in ES search
authorNick Clemens <nick@bywatersolutions.com>
Tue, 16 Jul 2019 12:08:47 +0000 (12:08 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Thu, 8 Aug 2019 12:04:59 +0000 (13:04 +0100)
I did not include tests only because this is a very small reasonable change and routine has no tests.
It does not affect behaviour, it only touches syntax lightly.

To test:
  0 - Set SearchEngine to ElasticSearch
  1 - Import the example record (a version is included in sample data in devbox/testing docker so you can skip)
  2 - Stage the attached example record
  3 - Match using 'ISBN' rule
  4 - No matches found
  5 - Apply patch
  6 - Restart all the things
  7 - Reapply matching with no rule
  8 - Reapply with ISBN matcing
  9 - It matches!
 10 - Set SearchEngine to Zebra
 11 - Reapply matching with no rule
 12 - Reapply with ISBN matching
 13 - Matching works as before in Zebra

Signed-off-by: Ron Houk <rhouk@ottumwapubliclibrary.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
C4/Matcher.pm

index 560d67e..8b82911 100644 (file)
@@ -658,7 +658,7 @@ sub get_matches {
             }
             else {
                 my $phr = ( C4::Context->preference('AggressiveMatchOnISBN') || C4::Context->preference('AggressiveMatchOnISSN') )  ? ',phr' : q{};
-                $query = join( " or ",
+                $query = join( " OR ",
                     map { "$matchpoint->{'index'}$phr=\"$_\"" } @source_keys );
                     #NOTE: double-quote the values so you don't get a "Embedded truncation not supported" error when a term has a ? in it.
             }