From 2ad8b7a809119e1a6a1dfa95de76e159c9406bf7 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Thu, 29 Feb 2024 18:05:21 -0500 Subject: [PATCH] Fast follow on follow suggestion efficiency (#20709) --- app/queries/users/suggest_prominent.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/queries/users/suggest_prominent.rb b/app/queries/users/suggest_prominent.rb index 85e34b102..a0628f427 100644 --- a/app/queries/users/suggest_prominent.rb +++ b/app/queries/users/suggest_prominent.rb @@ -26,14 +26,13 @@ module Users def fetch_and_pluck_user_ids filtered_articles = if tags_to_consider.any? - Article.cached_tagged_with_any(tags_to_consider) + Article.published.cached_tagged_with_any(tags_to_consider) else - Article.featured + Article.published.featured end - order = Arel.sql("(hotness_score * (feed_success_score - clickbait_score)) DESC") - user_ids = filtered_articles.order(order).limit(RETURNING * 2).pluck(:user_id) - [user.id] + user_ids = filtered_articles.order("hotness_score DESC").limit(RETURNING * 2).pluck(:user_id) - [user.id] if user_ids.size > (RETURNING / 2) - user_ids + user_ids.sample(RETURNING) else # This is a fallback in case we don't have enough users to return # Will generally not be called — but maybe for brand new forems