FIX: Use same weights for calculating rank and searching for posts.

FIX: Use same weights for calculating rank and searching for posts.

  • Reduce an extra db query as well when searching for posts ordered by relevance.
diff --git a/lib/search.rb b/lib/search.rb
index a78937e..33ae811 100644
--- a/lib/search.rb
+++ b/lib/search.rb
@@ -836,12 +836,18 @@ class Search
         posts = posts.order("posts.like_count DESC")
       end
     else
-      data_ranking = "TS_RANK_CD(post_search_data.search_data, #{ts_query})"
+      data_ranking = <<~SQL
+      TS_RANK_CD(
+        post_search_data.search_data, #{ts_query(weight_filter: weights)}
+      )
+      SQL
+
       if opts[:aggregate_search]
         posts = posts.order("MAX(#{data_ranking}) DESC")
       else
         posts = posts.order("#{data_ranking} DESC")
       end
+
       posts = posts.order("topics.bumped_at DESC")
     end

GitHub sha: 54d3648c

1 Like