Fix account search showing results from domains hidden by user
Fix #8586
This commit is contained in:
parent
52157fdcba
commit
34a62ff423
1 changed files with 14 additions and 4 deletions
|
@ -46,9 +46,19 @@ class AccountSearchService < BaseService
|
||||||
return [] if limit_for_non_exact_results.zero?
|
return [] if limit_for_non_exact_results.zero?
|
||||||
|
|
||||||
@search_results ||= begin
|
@search_results ||= begin
|
||||||
results = from_elasticsearch if Chewy.enabled?
|
results = from_elasticsearch if Chewy.enabled?
|
||||||
results ||= from_database
|
results ||= from_database
|
||||||
results
|
results.reject { |result| excluded_domains.include?(result.domain) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def excluded_domains
|
||||||
|
@excluded_domains ||= begin
|
||||||
|
if account
|
||||||
|
Set.new(account.excluded_from_timeline_domains)
|
||||||
|
else
|
||||||
|
Set.new
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -69,8 +79,8 @@ class AccountSearchService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def from_elasticsearch
|
def from_elasticsearch
|
||||||
must_clauses = [{ multi_match: { query: terms_for_query, fields: likely_acct? ? %w(acct.edge_ngram acct) : %w(acct.edge_ngram acct display_name.edge_ngram display_name), type: 'most_fields', operator: 'and' } }]
|
must_clauses = [{ multi_match: { query: terms_for_query, fields: likely_acct? ? %w(acct.edge_ngram acct) : %w(acct.edge_ngram acct display_name.edge_ngram display_name), type: 'most_fields', operator: 'and' } }]
|
||||||
should_clauses = []
|
should_clauses = []
|
||||||
|
|
||||||
if account
|
if account
|
||||||
return [] if options[:following] && following_ids.empty?
|
return [] if options[:following] && following_ids.empty?
|
||||||
|
|
Loading…
Reference in a new issue