Browse Source

Bug 25277: Don't specify a field in query if none passed

== test plan ==
To test:
0 - Have Koha running with ES 6 enabled
1 - Launch the z3950 responder:
    perl misc/z3950_responder.pl --config-dir /kohadevbox/koha/etc/z3950 --debug
2 - Connect using yaz-client:
    yaz-client localhost:2100
2.1 Alternative, if you add the responder as a Z39.50 server in Koha and
  do a catalogue Z39.50 search. Don't forget to search in the keywords
  field. Not the title field.
3 - base biblios
4 - find bruce
5 - No results
6 - Stop the responder
7 - Apply patch
8 - Repeat
9 - This time you get results

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
20.05.x
Nick Clemens 2 years ago
committed by Martin Renvoize
parent
commit
68bcc31dfc
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 13
      Koha/Z3950Responder/RPN.pm
  2. 2
      etc/z3950/attribute_mappings.yaml

13
Koha/Z3950Responder/RPN.pm

@ -40,7 +40,7 @@ sub to_koha {
my ($self, $mappings) = @_;
my $attrs = $self->{'attributes'};
my $fields = $mappings->{use}{default} // '_all';
my $fields = $mappings->{use}{default};
my $split = 0;
my $prefix = '';
my $suffix = '';
@ -62,7 +62,7 @@ sub to_koha {
}
}
$fields = [$fields] unless ref($fields) eq 'ARRAY';
$fields = [$fields] unless !defined $fields || ref($fields) eq 'ARRAY';
if ($split) {
my @terms;
@ -72,8 +72,12 @@ sub to_koha {
next if (!$word);
$word = $self->escape($word);
my @words;
foreach my $field (@{$fields}) {
push(@words, "$field:($prefix$word$suffix)");
if( $fields ) {
foreach my $field (@{$fields}) {
push(@words, "$field:($prefix$word$suffix)");
}
} else {
push(@words, "($prefix$word$suffix)");
}
push (@terms, join(' OR ', @words));
}
@ -82,6 +86,7 @@ sub to_koha {
my @terms;
$term = $self->escape($term);
return "($prefix$term$suffix)" unless $fields;
foreach my $field (@{$fields}) {
push(@terms, "$field:($prefix$term$suffix)");
}

2
etc/z3950/attribute_mappings.yaml

@ -8,7 +8,6 @@ authorities:
3: Heading
9: LC-card-number
12: Local-number
default: _all
biblios:
# BIB-1 use attributes to index fields
use:
@ -43,4 +42,3 @@ biblios:
1031: itype
1033: Host-Item-Number
1045: control-number
default: _all

Loading…
Cancel
Save