diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml
index 01ae4b178bc487a635c2b2b659a2b017879e4dc1..529152c7bace6b7d8b3b9fd79eec7720b215fcf8 100644
--- a/.rubocop_todo/gitlab/bounded_contexts.yml
+++ b/.rubocop_todo/gitlab/bounded_contexts.yml
@@ -2907,7 +2907,6 @@ Gitlab/BoundedContexts:
     - 'ee/app/models/elastic/index_setting.rb'
     - 'ee/app/models/elastic/migration_record.rb'
     - 'ee/app/models/elastic/reindexing_slice.rb'
-    - 'ee/app/models/elastic/reindexing_subtask.rb'
     - 'ee/app/models/elastic/reindexing_task.rb'
     - 'ee/app/models/elasticsearch_indexed_namespace.rb'
     - 'ee/app/models/elasticsearch_indexed_project.rb'
diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml
index c8dbb9b7a0e1c7fa433849a435c2aef76be28793..2ed8bc1ae8c6970fd168d3bc75e82d9f7c50c2ca 100644
--- a/.rubocop_todo/rails/inverse_of.yml
+++ b/.rubocop_todo/rails/inverse_of.yml
@@ -60,7 +60,6 @@ Rails/InverseOf:
     - 'ee/app/models/ee/project.rb'
     - 'ee/app/models/ee/service_desk_setting.rb'
     - 'ee/app/models/ee/user.rb'
-    - 'ee/app/models/elastic/reindexing_subtask.rb'
     - 'ee/app/models/geo/event.rb'
     - 'ee/app/models/geo/event_log.rb'
     - 'ee/app/models/geo/job_artifact_registry.rb'
diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml
index 7721a1987bec2facf37c1d13dc3532dd300e9081..3967d117d3b76ea90825bec92e2da75d30d34059 100644
--- a/.rubocop_todo/rspec/feature_category.yml
+++ b/.rubocop_todo/rspec/feature_category.yml
@@ -816,7 +816,6 @@ RSpec/FeatureCategory:
     - 'ee/spec/models/ee/users_statistics_spec.rb'
     - 'ee/spec/models/elastic/index_setting_spec.rb'
     - 'ee/spec/models/elastic/reindexing_slice_spec.rb'
-    - 'ee/spec/models/elastic/reindexing_subtask_spec.rb'
     - 'ee/spec/models/elastic/reindexing_task_spec.rb'
     - 'ee/spec/models/epic_user_mention_spec.rb'
     - 'ee/spec/models/gitlab/seat_link_data_spec.rb'
diff --git a/.rubocop_todo/search/namespaced_class.yml b/.rubocop_todo/search/namespaced_class.yml
index 28479ab5826cc8eb5a3d60b6a498ebdf76621ee1..118f78429906a941f6b38baf128057bf47e9fd7a 100644
--- a/.rubocop_todo/search/namespaced_class.yml
+++ b/.rubocop_todo/search/namespaced_class.yml
@@ -31,7 +31,6 @@ Search/NamespacedClass:
     - 'ee/app/models/elastic/index_setting.rb'
     - 'ee/app/models/elastic/migration_record.rb'
     - 'ee/app/models/elastic/reindexing_slice.rb'
-    - 'ee/app/models/elastic/reindexing_subtask.rb'
     - 'ee/app/models/elastic/reindexing_task.rb'
     - 'ee/app/models/elasticsearch_indexed_namespace.rb'
     - 'ee/app/models/elasticsearch_indexed_project.rb'
diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml
index 6867e5d4eda5e4a8333d991ccdec18ee9ef2baa1..542cbbc3bb22965c0c7aaf133d78babd0dd63972 100644
--- a/.rubocop_todo/style/class_and_module_children.yml
+++ b/.rubocop_todo/style/class_and_module_children.yml
@@ -421,7 +421,6 @@ Style/ClassAndModuleChildren:
     - 'ee/app/models/dast/profile_schedule.rb'
     - 'ee/app/models/ee/ci/job_artifact.rb'
     - 'ee/app/models/elastic/reindexing_slice.rb'
-    - 'ee/app/models/elastic/reindexing_subtask.rb'
     - 'ee/app/models/elastic/reindexing_task.rb'
     - 'ee/app/models/epic/metrics.rb'
     - 'ee/app/models/epic/related_epic_link.rb'
diff --git a/db/docs/elastic_reindexing_subtasks.yml b/db/docs/elastic_reindexing_subtasks.yml
index 5f05170cf166ff639695970e740a1fe2ebd88b9b..ae61b89eef1bbb1e7590cc05cd6527fd6ecd1d94 100644
--- a/db/docs/elastic_reindexing_subtasks.yml
+++ b/db/docs/elastic_reindexing_subtasks.yml
@@ -1,7 +1,7 @@
 ---
 table_name: elastic_reindexing_subtasks
 classes:
-- Elastic::ReindexingSubtask
+- Search::Elastic::ReindexingSubtask
 feature_categories:
 - global_search
 description: TODO
diff --git a/ee/app/models/elastic/reindexing_slice.rb b/ee/app/models/elastic/reindexing_slice.rb
index 83a28ca7213ef46659ad6ca925cae72c709e324e..377924a94ef9051cc7a080b755587c4d2d5fb8ad 100644
--- a/ee/app/models/elastic/reindexing_slice.rb
+++ b/ee/app/models/elastic/reindexing_slice.rb
@@ -3,7 +3,7 @@
 class Elastic::ReindexingSlice < ApplicationRecord
   self.table_name = 'elastic_reindexing_slices'
 
-  belongs_to :elastic_reindexing_subtask, class_name: 'Elastic::ReindexingSubtask'
+  belongs_to :elastic_reindexing_subtask, class_name: 'Search::Elastic::ReindexingSubtask'
 
   validates :elastic_slice, :elastic_max_slice, :retry_attempt, presence: true, numericality: { greater_than_or_equal_to: 0 }
 
diff --git a/ee/app/models/elastic/reindexing_subtask.rb b/ee/app/models/elastic/reindexing_subtask.rb
deleted file mode 100644
index 9793e1f8b0d50a0fa75326e339e9a0dc33a95ebc..0000000000000000000000000000000000000000
--- a/ee/app/models/elastic/reindexing_subtask.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-class Elastic::ReindexingSubtask < ApplicationRecord
-  self.table_name = 'elastic_reindexing_subtasks'
-
-  belongs_to :elastic_reindexing_task, class_name: 'Elastic::ReindexingTask'
-
-  has_many :slices, class_name: 'Elastic::ReindexingSlice', foreign_key: :elastic_reindexing_subtask_id
-
-  validates :index_name_from, :index_name_to, presence: true
-
-  scope :order_by_alias_name_asc, -> { order(alias_name: :asc) }
-end
diff --git a/ee/app/models/elastic/reindexing_task.rb b/ee/app/models/elastic/reindexing_task.rb
index f1dbc09c63305b2af0b8816041c71e96ca943695..7acb414e39ad1983e7156438a6de4777b963e482 100644
--- a/ee/app/models/elastic/reindexing_task.rb
+++ b/ee/app/models/elastic/reindexing_task.rb
@@ -11,7 +11,7 @@ class Elastic::ReindexingTask < ApplicationRecord
 
   attribute :options, :ind_jsonb # for indifferent access
 
-  has_many :subtasks, class_name: 'Elastic::ReindexingSubtask',
+  has_many :subtasks, class_name: 'Search::Elastic::ReindexingSubtask',
     foreign_key: :elastic_reindexing_task_id, inverse_of: :elastic_reindexing_task
 
   enum state: {
diff --git a/ee/app/models/search/elastic/reindexing_subtask.rb b/ee/app/models/search/elastic/reindexing_subtask.rb
new file mode 100644
index 0000000000000000000000000000000000000000..80f6b9fe3245589062a79afb90210d2f2c155fde
--- /dev/null
+++ b/ee/app/models/search/elastic/reindexing_subtask.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+module Search
+  module Elastic
+    class ReindexingSubtask < ApplicationRecord
+      self.table_name = 'elastic_reindexing_subtasks'
+
+      belongs_to :elastic_reindexing_task, class_name: 'Elastic::ReindexingTask'
+
+      has_many :slices, class_name: 'Elastic::ReindexingSlice',
+        foreign_key: :elastic_reindexing_subtask_id, inverse_of: :elastic_reindexing_subtask
+
+      validates :index_name_from, :index_name_to, presence: true
+
+      scope :order_by_alias_name_asc, -> { order(alias_name: :asc) }
+    end
+  end
+end
diff --git a/ee/spec/factories/elastic/reindexing_subtasks.rb b/ee/spec/factories/elastic/reindexing_subtasks.rb
index e77c03aaeae9abab061851aeb93583abd6daa5b5..dc7607109d7562af6ff980f5d855ed889b9e0e8c 100644
--- a/ee/spec/factories/elastic/reindexing_subtasks.rb
+++ b/ee/spec/factories/elastic/reindexing_subtasks.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 FactoryBot.define do
-  factory :elastic_reindexing_subtask, class: 'Elastic::ReindexingSubtask' do
+  factory :elastic_reindexing_subtask, class: 'Search::Elastic::ReindexingSubtask' do
     association :elastic_reindexing_task, in_progress: false, state: :success
     sequence(:index_name_from) { |n| "old_index_name_#{n}" }
     sequence(:index_name_to) { |n| "new_index_name_#{n}" }
diff --git a/ee/spec/models/elastic/reindexing_subtask_spec.rb b/ee/spec/models/search/elastic/reindexing_subtask_spec.rb
similarity index 68%
rename from ee/spec/models/elastic/reindexing_subtask_spec.rb
rename to ee/spec/models/search/elastic/reindexing_subtask_spec.rb
index 460716fa710373196db0905e8380aa3705a45091..87435d2f2608dcc19f978d7598a5a523cbb47fb0 100644
--- a/ee/spec/models/elastic/reindexing_subtask_spec.rb
+++ b/ee/spec/models/search/elastic/reindexing_subtask_spec.rb
@@ -2,9 +2,10 @@
 
 require 'spec_helper'
 
-RSpec.describe Elastic::ReindexingSubtask, type: :model do
+RSpec.describe Search::Elastic::ReindexingSubtask, type: :model, feature_category: :global_search do
   describe 'relations' do
     it { is_expected.to belong_to(:elastic_reindexing_task) }
+    it { is_expected.to have_many(:slices) }
   end
 
   describe 'validations' do