http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=12586 --- Comment #5 from David Cook <dcook@prosentient.com.au> --- Comment on attachment 29948 --> http://bugs.koha-community.org/bugzilla3/attachment.cgi?id=29948 Bug 12586 - Record matching rules - Required match checks doesn't work with MARCXML Review of attachment 29948: --> (http://bugs.koha-community.org/bugzilla3/page.cgi?id=splinter.html&bug=12586&attachment=29948) ----------------------------------------------------------------- I ran into this problem today and this is pretty much exactly what I had in mind for a fix. I've just added a couple comments about things to change. Suggested test plan: 1) Create a bibliographic record with a control number of 123456 2) Create a matching rule with the following: a) Search index "Control-number" b) Score 100 c) Matchpoint components tag 001 d) Match check Source Tag 001 e) Match check Target Tag 001 3) Download the bibliographic from Step 1 as ISO MARC 4) Upload it via Stage Marc for Import, and use the record matching rule from Step 2 Before applying patch: 5) Note that the no records match with your rule Apply the patch: 6) Repeat Step 4 (ie upload using the matching rule from step 2) 7) Note that the record DOES match using the matching rule ::: C4/Matcher.pm @@ +689,5 @@
+ foreach my $matched ( @{$searchresults} ) { + my $record = C4::Search::new_record_from_zebra( 'biblioserver', $matched ); + $matches{$record}->{score} += $matchpoint->{'score'}; #Using $record HASH string representation as the key :) + $matches{$record}->{record} = $record; + }
This block all looks good. @@ +704,1 @@
keys %matches unless ($self->{'record_type'} eq 'auth');
There's no such record_type as 'auth'... this should be 'authority'. I know it's not related to this bug per se, but may as well change it now. @@ +711,4 @@
my $record_number; my $result = C4::Biblio::TransformMarcToKoha(C4::Context->dbh, $target_record, ''); $record_number = $result->{'biblionumber'}; + push @results, { 'record_id' => $record_number, 'score' => $matches{$hashkey}->{score}, 'target_record' => $target_record, 'target_biblio' => $result };
Why have you included "target_record" and "target_biblio" here? This seems unnecessary and is an addition to the original code. If it's being used elsewhere, I think that should be separated into a separate patch. @@ +760,4 @@
}
sub _passes_required_checks { + my ($source_record, $target_record, $matchchecks) = @_;
Looks good. -- You are receiving this mail because: You are watching all bug changes.