From f4699a8e484f86fdaab420746c7682b4321239d9 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 22 Jul 2014 15:32:26 +0000 Subject: [PATCH] [search-improvements] If no results indexed, relevance must be zero --- app/models/search_term.rb | 1 + test/unit/search_term_test.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/app/models/search_term.rb b/app/models/search_term.rb index f45b22a..d6720ac 100644 --- a/app/models/search_term.rb +++ b/app/models/search_term.rb @@ -42,6 +42,7 @@ class SearchTerm < ActiveRecord::Base def calculate_relevance(valid_occurrences) indexed = valid_occurrences.last.indexed.to_f + return 0 if indexed == 0 total = valid_occurrences.last.total.to_f (1 - indexed/total)*100 end diff --git a/test/unit/search_term_test.rb b/test/unit/search_term_test.rb index 2fb6284..4a1bba8 100644 --- a/test/unit/search_term_test.rb +++ b/test/unit/search_term_test.rb @@ -118,4 +118,12 @@ class SearchTermTest < ActiveSupport::TestCase assert st1.score > st2.score, "Less ratio results:total are not getting higher scores." end + + should 'consider relevance zero if no results indexed' do + st = SearchTerm.find_or_create('st', Environment.default) + SearchTermOccurrence.create!(:search_term => st, :total => 10, :indexed => 0) + SearchTerm.calculate_scores + st.reload + assert_equal 0, st.score + end end -- libgit2 0.21.2