[Koha-bugs] [Bug 25273] Elasticsearch Authority matching is returning too many results

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Fri Jun 19 13:34:04 CEST 2020


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=25273

Julian Maurice <julian.maurice at biblibre.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|Signed Off                  |Failed QA

--- Comment #12 from Julian Maurice <julian.maurice at biblibre.com> ---
Hi Nick,

Thanks for the explanation, it is much more clear to me now. The change makes
sense and the patch works as expected.

However I would like to see some changes in the patch before validating it:

1)

-    ModZebra( $authid, 'specialUpdate', 'authorityserver', $record );
+    ModZebra( $authid, 'specialUpdate', 'authorityserver', { record =>
$record, authtypecode => $authtypecode } );

This change is confusing. In ModZebra we now have a $record variable which is a
hash that contain a 'record' key. Even with this simple patch I had to ask
myself several times « what's this $record variable I'm looking at ? The hash
or the MARC::Record ? ».
Look at this line for instance:

+        $record = $record->{record};

At some point in the subroutine, $record was a hasref, now it's a MARC::Record.
This is the kind of things that make code hard to read, and make it easier for
bugs to appear.

And I think it is not needed to pass the authtypecode to ModZebra, since it can
be obtained from the MARC::Record.

2)

-            unless ($record) {
+            if ($record) {
+                $indexer->update_index_background( [$biblionumber], [$record]
);
+            } else {
                 $record = GetMarcBiblio({
                     biblionumber => $biblionumber,
                     embed_items  => 1 });
+                $indexer->update_index_background( [$biblionumber], [{ record
=> $record }] );
             }
-            my $records = [$record];
-            $indexer->update_index_background( [$biblionumber], [$record] );

I think it was easier to read before : unless there is a record, fetch it; in
all cases call update_index_background
Now it's : if there is a record, call update_index_background, otherwise fetch
the record and call update_index_background.
This change was not needed, so why ? :)

3)

-        my $id     = $record->id // $record->authid;
+        my $id     = $record->id;

Again this change is not needed, but this time it causes a bug.
Try this : misc/search_tools/rebuild_elasticsearch.pl -a -ai X (replace X by an
existing authid)

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list