Added groups to search results

This commit is contained in:
mgabdev 2020-01-14 18:13:30 -05:00
parent 3126ba8b3c
commit 81b2c009a1
5 changed files with 13 additions and 1 deletions

View File

@ -43,6 +43,7 @@ export default function search(state = initialState, action) {
accounts: ImmutableList(action.results.accounts.map(item => item.id)),
statuses: ImmutableList(action.results.statuses.map(item => item.id)),
hashtags: fromJS(action.results.hashtags),
groups: fromJS(action.results.groups),
})).set('submitted', true);
default:
return state;

View File

@ -1,5 +1,5 @@
# frozen_string_literal: true
class Search < ActiveModelSerializers::Model
attributes :accounts, :statuses, :hashtags
attributes :accounts, :statuses, :hashtags, :groups
end

View File

@ -5,6 +5,7 @@ class REST::SearchSerializer < ActiveModel::Serializer
has_many :accounts, serializer: REST::AccountSerializer
has_many :statuses, serializer: REST::StatusSerializer
has_many :groups, serializer: REST::GroupSerializer
def hashtags
object.hashtags.map(&:name)

View File

@ -4,4 +4,5 @@ class REST::V2::SearchSerializer < ActiveModel::Serializer
has_many :accounts, serializer: REST::AccountSerializer
has_many :statuses, serializer: REST::StatusSerializer
has_many :hashtags, serializer: REST::TagSerializer
has_many :groups, serializer: REST::GroupSerializer
end

View File

@ -16,6 +16,7 @@ class SearchService < BaseService
results[:accounts] = perform_accounts_search! if account_searchable?
results[:statuses] = perform_statuses_search! if full_text_searchable?
results[:hashtags] = perform_hashtags_search! if hashtag_searchable?
results[:groups] = perform_groups_search!
end
end
end
@ -32,6 +33,14 @@ class SearchService < BaseService
)
end
def perform_groups_search!
Group.search_for(
@query.gsub(/\A#/, ''),
@limit,
@offset
)
end
def perform_statuses_search!
definition = StatusesIndex.filter(term: { searchable_by: @account.id })
.query(multi_match: { type: 'most_fields', query: @query, operator: 'and', fields: %w(text text.stemmed) })