diff --git a/app/services/search/cluster.rb b/app/services/search/cluster.rb index 290202a11..9f73e019f 100644 --- a/app/services/search/cluster.rb +++ b/app/services/search/cluster.rb @@ -9,11 +9,16 @@ module Search end def setup_indexes + update_settings create_indexes add_aliases update_mappings end + def update_settings + SearchClient.cluster.put_settings(body: default_settings) + end + def create_indexes SEARCH_CLASSES.each do |search_class| next if SearchClient.indices.exists(index: search_class::INDEX_NAME) @@ -39,6 +44,18 @@ module Search search_class.delete_index end end + + private + + def default_settings + { + persistent: { + action: { + auto_create_index: false + } + } + } + end end end end diff --git a/lib/tasks/search.rake b/lib/tasks/search.rake index bca2f676c..a92458d33 100644 --- a/lib/tasks/search.rake +++ b/lib/tasks/search.rake @@ -16,6 +16,6 @@ namespace :search do exit end - Search::Cluster.destroy_indexes + SearchClient.indices.delete(index: "*") end end diff --git a/spec/services/search/cluster_spec.rb b/spec/services/search/cluster_spec.rb index 123c614b9..8681d9b11 100644 --- a/spec/services/search/cluster_spec.rb +++ b/spec/services/search/cluster_spec.rb @@ -66,4 +66,13 @@ RSpec.describe Search::Cluster, type: :service do expect(described_class::SEARCH_CLASSES).to all(have_received(:update_mappings)) end end + + describe "::update_settings" do + it "updates cluster settings" do + described_class.update_settings + cluster_settings = SearchClient.cluster.get_settings + auto_create_setting = cluster_settings.dig("persistent", "action", "auto_create_index") + expect(auto_create_setting).to eq("false") + end + end end