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.
This commit is contained in:
Guo Xiang Tan 2019-03-20 15:24:23 +08:00
parent cc8082138f
commit 54d3648c55

View File

@ -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