From 50c886e0a96a39a2906756dae42ade5c9fd0f9d0 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. Signed-off-by: Alex Buckley Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart (cherry picked from commit 6906b848a78ad4c7d52c1e7c7ce195f08cc6d2a6) Signed-off-by: Fridolin Somers --- C4/Matcher.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/Matcher.pm b/C4/Matcher.pm index 670b2efed2..aaead2f492 100644 --- a/C4/Matcher.pm +++ b/C4/Matcher.pm @@ -724,7 +724,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.39.5