From 54d3648c55b997ef9e22efbdfc9cb402a397d64c Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 20 Mar 2019 15:24:23 +0800 Subject: [PATCH] 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. --- lib/search.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/search.rb b/lib/search.rb index a78937e87e8..33ae811ff18 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