in lib/core/elastic_connector_actions.rb [307:326]
def ensure_index_exists(index_name, body = {})
if client.indices.exists?(:index => index_name)
return unless body[:mappings]
Utility::Logger.debug("Index #{index_name} already exists. Checking mappings...")
Utility::Logger.debug("New mappings: #{body[:mappings]}")
response = client.indices.get_mapping(:index => index_name)
existing = response[index_name]['mappings']
if existing.empty?
Utility::Logger.debug("Index #{index_name} has no mappings. Adding mappings...")
client.indices.put_mapping(:index => index_name, :body => body[:mappings], :expand_wildcards => 'all')
Utility::Logger.debug("Index #{index_name} mappings added.")
else
Utility::Logger.debug("Index #{index_name} already has mappings: #{existing}. Skipping...")
end
else
client.indices.create(:index => index_name, :body => body)
Utility::Logger.debug("Created index #{index_name}")
end
end