diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index 3c9e73c124..57e01c0914 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -133,8 +133,12 @@ class AccountSearchService < BaseService
   end
 
   def must_clause
-    fields = %w(username username.* display_name display_name.*)
-    fields << 'text' << 'text.*' if options[:use_searchable_text]
+    if options[:start_with_hashtag]
+      fields = %w(text text.*)
+    else
+      fields = %w(username username.* display_name display_name.*)
+      fields << 'text' << 'text.*' if options[:use_searchable_text]
+    end
 
     [
       {
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index 05d2d0e7ce..778ea85fb4 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -33,7 +33,8 @@ class SearchService < BaseService
       resolve: @resolve,
       offset: @offset,
       use_searchable_text: true,
-      following: @following
+      following: @following,
+      start_with_hashtag: @query.start_with?('#')
     )
   end
 
@@ -91,11 +92,11 @@ class SearchService < BaseService
   def full_text_searchable?
     return false unless Chewy.enabled?
 
-    statuses_search? && !@account.nil? && !((@query.start_with?('#') || @query.include?('@')) && !@query.include?(' '))
+    statuses_search? && !@account.nil? && !(@query.include?('@') && !@query.include?(' '))
   end
 
   def account_searchable?
-    account_search? && !(@query.start_with?('#') || (@query.include?('@') && @query.include?(' ')))
+    account_search? && !(@query.include?('@') && @query.include?(' '))
   end
 
   def hashtag_searchable?
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 497ec74474..123bd4f560 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -68,7 +68,7 @@ describe SearchService, type: :service do
           allow(AccountSearchService).to receive(:new).and_return(service)
 
           results = subject.call(query, nil, 10)
-          expect(service).to have_received(:call).with(query, nil, limit: 10, offset: 0, resolve: false, use_searchable_text: true, following: false)
+          expect(service).to have_received(:call).with(query, nil, limit: 10, offset: 0, resolve: false, start_with_hashtag: false, use_searchable_text: true, following: false)
           expect(results).to eq empty_results.merge(accounts: [account])
         end
       end
@@ -92,15 +92,6 @@ describe SearchService, type: :service do
           expect(Tag).to_not have_received(:search_for)
           expect(results).to eq empty_results
         end
-
-        it 'does not include account when starts with # character' do
-          query = '#tag'
-          allow(AccountSearchService).to receive(:new)
-
-          results = subject.call(query, nil, 10)
-          expect(AccountSearchService).to_not have_received(:new)
-          expect(results).to eq empty_results
-        end
       end
     end
   end