diff --git a/app/assets/javascripts/search/topbar/components/app.vue b/app/assets/javascripts/search/topbar/components/app.vue
index d0fcbb0d83bb9d704f4b78eadfd2db35994a2e13..22ebf99862001c5aed039c2f4630f16369b523fc 100644
--- a/app/assets/javascripts/search/topbar/components/app.vue
+++ b/app/assets/javascripts/search/topbar/components/app.vue
@@ -20,12 +20,12 @@ export default {
   },
   mixins: [glFeatureFlagsMixin()],
   props: {
-    groupInitialData: {
+    groupInitialJson: {
       type: Object,
       required: false,
       default: () => ({}),
     },
-    projectInitialData: {
+    projectInitialJson: {
       type: Object,
       required: false,
       default: () => ({}),
@@ -72,11 +72,11 @@ export default {
       </div>
       <div v-if="showFilters" class="gl-mb-4 gl-lg-mb-0 gl-lg-mx-2">
         <label class="gl-display-block">{{ __('Group') }}</label>
-        <group-filter :initial-data="groupInitialData" />
+        <group-filter :initial-data="groupInitialJson" />
       </div>
       <div v-if="showFilters" class="gl-mb-4 gl-lg-mb-0 gl-lg-mx-2">
         <label class="gl-display-block">{{ __('Project') }}</label>
-        <project-filter :initial-data="projectInitialData" />
+        <project-filter :initial-data="projectInitialJson" />
       </div>
     </div>
     <hr v-if="hasVerticalNav" class="gl-mt-5 gl-mb-0 gl-border-gray-100" />
diff --git a/app/assets/javascripts/search/topbar/index.js b/app/assets/javascripts/search/topbar/index.js
index 87316e10e8d498c01bec1c6a8f6fbc3cd6606b28..d6e16085c280609ca7bcd6426af20a3eef9b9921 100644
--- a/app/assets/javascripts/search/topbar/index.js
+++ b/app/assets/javascripts/search/topbar/index.js
@@ -11,10 +11,18 @@ export const initTopbar = (store) => {
     return false;
   }
 
-  let { groupInitialData, projectInitialData } = el.dataset;
+  const {
+    groupInitialJson,
+    projectInitialJson,
+    elasticsearchEnabled,
+    defaultBranchName,
+  } = el.dataset;
 
-  groupInitialData = JSON.parse(groupInitialData);
-  projectInitialData = JSON.parse(projectInitialData);
+  const groupInitialJsonParsed = JSON.parse(groupInitialJson);
+  const projectInitialJsonParsed = JSON.parse(projectInitialJson);
+  const elasticsearchEnabledParsed = elasticsearchEnabled
+    ? JSON.parse(elasticsearchEnabled)
+    : false;
 
   return new Vue({
     el,
@@ -22,8 +30,10 @@ export const initTopbar = (store) => {
     render(createElement) {
       return createElement(GlobalSearchTopbar, {
         props: {
-          groupInitialData,
-          projectInitialData,
+          groupInitialJson: groupInitialJsonParsed,
+          projectInitialJson: projectInitialJsonParsed,
+          elasticsearchEnabled: elasticsearchEnabledParsed,
+          defaultBranchName,
         },
       });
     },
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index 5351e3e9e770461a18e62facf6db10ec29e0b9e6..9fb7a1835972ab12a6cb7fec67a4d1be5918ffcc 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -32,7 +32,7 @@ def self.search_rate_limited_endpoints
   before_action only: :show do
     push_frontend_feature_flag(:search_page_vertical_nav, current_user)
   end
-
+  before_action :elasticsearch_in_use, only: :show
   rescue_from ActiveRecord::QueryCanceled, with: :render_timeout
 
   layout 'search'
@@ -118,6 +118,11 @@ def autocomplete
   def opensearch
   end
 
+  def elasticsearch_in_use
+    search_service.respond_to?(:use_elasticsearch?) && search_service.use_elasticsearch?
+  end
+  strong_memoize_attr :elasticsearch_in_use
+
   private
 
   # overridden in EE
diff --git a/app/views/search/show.html.haml b/app/views/search/show.html.haml
index 9d812e77ad470e68246d78c3bf8348ea7fd4eaab..c58f492f6332f62d5bc3e52f1a5d5d87857e62d2 100644
--- a/app/views/search/show.html.haml
+++ b/app/views/search/show.html.haml
@@ -20,7 +20,7 @@
   = render_if_exists 'search/form_elasticsearch', attrs: { class: 'mb-2 mb-sm-0 align-self-center' }
 
 .gl-mt-3
-  #js-search-topbar{ data: { "group-initial-data": group_attributes.to_json, "project-initial-data": project_attributes.to_json } }
+  #js-search-topbar{ data: { "group-initial-json": group_attributes.to_json, "project-initial-json": project_attributes.to_json, "elasticsearch-enabled": @elasticsearch_in_use.to_s, "default-branch-name": @project&.default_branch } }
 - if @search_term
   - if Feature.disabled?(:search_page_vertical_nav, current_user)
     = render 'search/category'