Bug 15745: C4::Matcher gets CCL parsing error if term contains ? (question mark)
Signed-off-by: Olli-Antti Kivilahti <olli-antti.kivilahti@jns.fi> Also fixes ! and + Rebased to master Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar> It makes perfect sense and works as expected. This part of the code is too under-tested so no point requiring a regression test for such a simple change. Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
parent
cc4d9822a1
commit
fcbd81049f
|
|
@ -651,7 +651,8 @@ sub get_matches {
|
|||
else {
|
||||
my $phr = C4::Context->preference('AggressiveMatchOnISBN') ? ',phr' : q{};
|
||||
$query = join( " or ",
|
||||
map { "$matchpoint->{'index'}$phr=$_" } @source_keys );
|
||||
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.
|
||||
}
|
||||
|
||||
require C4::Search;
|
||||
|
|
@ -807,7 +808,7 @@ sub _get_match_keys {
|
|||
} else {
|
||||
foreach my $subfield ($field->subfields()) {
|
||||
if (exists $component->{'subfields'}->{$subfield->[0]}) {
|
||||
$string .= " " . $subfield->[1];
|
||||
$string .= " " . $subfield->[1]; #FIXME: It would be better to create an array and join with a space later...
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue