mastodon/lib/chewy/index_extensions.rb

26 lines
850 B
Ruby

# frozen_string_literal: true
module Chewy
module IndexExtensions
def index_preset(base_options = {})
case ENV['ES_PRESET'].presence
when 'single_node_cluster', nil
base_options.merge(number_of_replicas: 0)
when 'small_cluster'
base_options.merge(number_of_replicas: 1)
when 'large_cluster'
base_options.merge(number_of_replicas: 1, number_of_shards: (base_options[:number_of_shards] || 1) * 2)
end
end
def update_specification
client.indices.close index: index_name
client.indices.put_settings index: index_name, body: { settings: { analysis: settings_hash[:settings][:analysis] } }
client.indices.put_mapping index: index_name, body: root.mappings_hash
client.indices.open index: index_name
end
end
end
Chewy::Index.extend(Chewy::IndexExtensions)