From bf0c454cfd8f231a89a8c8d05fdce3eb9b366e48 Mon Sep 17 00:00:00 2001 From: David Cook Date: Wed, 11 Jan 2017 15:36:05 +1100 Subject: [PATCH] Bug 17710 - C4::Matcher::get_matches and C4::ImportBatch::GetBestRecordMatch should use same logic C4::ImportBatch::GetBestRecordMatch uses SQL to sort by score descending then candidate_match_id descending. With C4::Matcher::get_matches, I implement the same sort but use Perl code to do it, since we're sorting search results. It's a simple change, but it's in a big block of code, so I don't have unit tests. --- C4/Matcher.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/Matcher.pm b/C4/Matcher.pm index 40e6e5f..7f57ac0 100644 --- a/C4/Matcher.pm +++ b/C4/Matcher.pm @@ -722,7 +722,10 @@ sub get_matches { push @results, { 'record_id' => $authid, 'score' => $matches{$authid} }; } } - @results = sort { $b->{'score'} cmp $a->{'score'} } @results; + @results = sort { + $b->{'score'} cmp $a->{'score'} or + $b->{'record_id'} cmp $a->{'record_id'} + } @results; if (scalar(@results) > $max_matches) { @results = @results[0..$max_matches-1]; } -- 2.10.2