Bug 8550: Z39.50 searches for ISBN/ISSN problematic
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 1 Aug 2012 17:34:33 +0000 (13:34 -0400)
committerPaul Poulain <paul.poulain@biblibre.com>
Fri, 31 Aug 2012 16:32:55 +0000 (18:32 +0200)
Rather than treating ISBN and ISSN as the same, this patch breaks
them out into separate parts of the query, as well as changing
the truncation attribute to enable right truncation (the correct
behavior for the ISBN field in MARC21, and valid behavior in
UNIMARC).

Signed-off-by: Joseph Alway <jbalway@gmail.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>

cataloguing/z3950_search.pl

index a44b5ea..5e22636 100755 (executable)
@@ -117,10 +117,14 @@ else {
     my $s = 0;
     my $query = '';
     my $nterms;
-    if ($isbn || $issn) {
-        $term=$isbn if ($isbn);
-        $term=$issn if ($issn);
-        $query .= " \@or \@attr 1=8 \"$term\" \@attr 1=7 \"$term\" ";
+    if ($isbn) {
+        $term=$isbn;
+        $query .= " \@attr 1=7 \@attr 5=1 \"$term\" ";
+        $nterms++;
+    }
+    if ($issn) {
+        $term=$issn;
+        $query .= " \@attr 1=8 \@attr 5=1 \"$term\" ";
         $nterms++;
     }
     if ($title) {