diff --git a/app/models/account.rb b/app/models/account.rb index a7bda15d3..b27fc748f 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -513,7 +513,8 @@ class Account < ApplicationRecord <<-SQL.squish SELECT accounts.*, - (count(f.id) + 1) * #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank + #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank, + count(f.id) AS followed FROM accounts LEFT OUTER JOIN follows AS f ON (accounts.id = f.account_id AND f.target_account_id = :id) OR (accounts.id = f.target_account_id AND f.account_id = :id) LEFT JOIN users ON accounts.id = users.account_id @@ -523,7 +524,7 @@ class Account < ApplicationRecord AND accounts.moved_to_account_id IS NULL AND (accounts.domain IS NOT NULL OR (users.approved = TRUE AND users.confirmed_at IS NOT NULL)) GROUP BY accounts.id, s.id - ORDER BY rank DESC + ORDER BY followed DESC, rank DESC LIMIT :limit OFFSET :offset SQL end