diff --git a/app/models/note.rb b/app/models/note.rb
index 54e7389136f9f6821a6439d815b24bac894d6d72..b9b884b88c5ccb26736e3a2100a5c989593571a9 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -172,7 +172,6 @@ class Note < ApplicationRecord
              project: [:project_members, :namespace, { group: [:group_members] }])
   end
   scope :with_metadata, -> { includes(:system_note_metadata) }
-  scope :with_web_entity_associations, -> { preload(:project, :author, :noteable) }
 
   scope :for_note_or_capitalized_note, ->(text) { where(note: [text, text.capitalize]) }
   scope :like_note_or_capitalized_note, ->(text) { where('(note LIKE ? OR note LIKE ?)', text, text.capitalize) }
@@ -291,6 +290,10 @@ def simple_sorts
     def cherry_picked_merge_requests(shas)
       where(noteable_type: 'MergeRequest', commit_id: shas).select(:noteable_id)
     end
+
+    def with_web_entity_associations
+      preload(:project, :author, :noteable)
+    end
   end
 
   # rubocop: disable CodeReuse/ServiceClass
diff --git a/ee/app/models/ee/note.rb b/ee/app/models/ee/note.rb
index d69bd11eb283b0f0e29ab9079893591faffdf7f1..d03b5320eb8a655215a676c3d8a6e6a72494d31d 100644
--- a/ee/app/models/ee/note.rb
+++ b/ee/app/models/ee/note.rb
@@ -19,10 +19,17 @@ module Note
     end
 
     class_methods do
-      # override
+      extend ::Gitlab::Utils::Override
+
+      override :use_separate_indices?
       def use_separate_indices?
         true
       end
+
+      override :with_web_entity_associations
+      def with_web_entity_associations
+        super.preload(project: [:group, { namespace: :route }])
+      end
     end
 
     # Original method in Elastic::ApplicationSearch
diff --git a/ee/spec/requests/search_controller_spec.rb b/ee/spec/requests/search_controller_spec.rb
index 6b5af914885fd0b58294c64282c2ac0b14ed6620..fdebb13a6cfcd80ef55599c2d9c556c3eb3ecdd2 100644
--- a/ee/spec/requests/search_controller_spec.rb
+++ b/ee/spec/requests/search_controller_spec.rb
@@ -48,8 +48,8 @@ def send_search_request(params)
 
       context 'for issues scope' do
         let(:object) { :issue }
-        let(:creation_args) { { project: project } }
-        let(:params) { { search: '*', scope: 'issues' } }
+        let(:creation_args) { { project: project, title: 'foo' } }
+        let(:params) { { search: 'foo', scope: 'issues' } }
         # some N+1 queries still exist
         # each issue runs an extra query for project routes
         let(:threshold) { 4 }
@@ -60,8 +60,8 @@ def send_search_request(params)
       context 'for merge_request scope' do
         let(:creation_traits) { [:unique_branches] }
         let(:object) { :merge_request }
-        let(:creation_args) { { source_project: project } }
-        let(:params) { { search: '*', scope: 'merge_requests' } }
+        let(:creation_args) { { source_project: project, title: 'foo' } }
+        let(:params) { { search: 'foo', scope: 'merge_requests' } }
         # some N+1 queries still exist
         # each merge request runs an extra query for project routes
         let(:threshold) { 4 }
@@ -72,8 +72,8 @@ def send_search_request(params)
       context 'for project scope' do
         let(:creation_traits) { [:public] }
         let(:object) { :project }
-        let(:creation_args) { {} }
-        let(:params) { { search: '*', scope: 'projects' } }
+        let(:creation_args) { { name: 'foo' } }
+        let(:params) { { search: 'foo', scope: 'projects' } }
         # some N+1 queries still exist
         # each project requires 3 extra queries
         #   - one count for forks
@@ -90,11 +90,9 @@ def send_search_request(params)
       context 'for notes scope' do
         let(:creation_traits) { [:on_commit] }
         let(:object) { :note }
-        let(:creation_args) { { project: project } }
-        let(:params) { { search: '*', scope: 'notes' } }
-        # some N+1 still exist
-        # each project makes and extra call to get the namespace routes
-        let(:threshold) { 6 }
+        let(:creation_args) { { project: project, note: 'foo' } }
+        let(:params) { { search: 'foo', scope: 'notes' } }
+        let(:threshold) { 0 }
 
         it_behaves_like 'an efficient database result'
       end
@@ -102,7 +100,7 @@ def send_search_request(params)
       context 'for milestones scope' do
         let(:object) { :milestone }
         let(:creation_args) { { project: project } }
-        let(:params) { { search: '*', scope: 'milestones' } }
+        let(:params) { { search: 'title', scope: 'milestones' } }
         let(:threshold) { 0 }
 
         it_behaves_like 'an efficient database result'