@ -26,10 +26,17 @@ class AccountsIndex < Chewy::Index
define_type :: Account . searchable . includes ( :account_stat ) , delete_if : - > ( account ) { account . destroyed? || ! account . searchable? } do
define_type :: Account . searchable . includes ( :account_stat ) , delete_if : - > ( account ) { account . destroyed? || ! account . searchable? } do
root date_detection : false do
root date_detection : false do
field :id , type : 'long'
field :id , type : 'long'
field :display_name , type : 'text' , analyzer : 'edge_ngram' , search_analyzer : 'content'
field :acct , type : 'text' , analyzer : 'edge_ngram' , search_analyzer : 'content' , value : - > ( account ) { [ account . username , account . domain ] . compact . join ( '@' ) }
field :display_name , type : 'text' , analyzer : 'content' do
field :following_count , type : 'long' , value : - > ( account ) { account . active_relationships . count }
field :edge_ngram , type : 'text' , analyzer : 'edge_ngram' , search_analyzer : 'content'
field :followers_count , type : 'long' , value : - > ( account ) { account . passive_relationships . count }
end
field :acct , type : 'text' , analyzer : 'content' , value : - > ( account ) { [ account . username , account . domain ] . compact . join ( '@' ) } do
field :edge_ngram , type : 'text' , analyzer : 'edge_ngram' , search_analyzer : 'content'
end
field :following_count , type : 'long' , value : - > ( account ) { account . following . local . count }
field :followers_count , type : 'long' , value : - > ( account ) { account . followers . local . count }
field :last_status_at , type : 'date' , value : - > ( account ) { account . last_status_at || account . created_at }
field :last_status_at , type : 'date' , value : - > ( account ) { account . last_status_at || account . created_at }
end
end
end
end