You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
850 B
25 lines
850 B
# 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)
|
|
|