class Supple::Config
Public Class Methods
new(model)
click to toggle source
# File lib/supple/model.rb, line 67 def initialize(model) @model = model @index_name_method = Supple.config.index.default_index_name @document_type_method = Supple.config.index.default_document_type end
Public Instance Methods
client()
click to toggle source
# File lib/supple/model.rb, line 64 def client Supple.client end
document_type(&block)
click to toggle source
# File lib/supple/model.rb, line 79 def document_type(&block) @document_type_method = block if block_given? @document_type ||= @document_type_method.call(@model) end
index_name(&block)
click to toggle source
# File lib/supple/model.rb, line 74 def index_name(&block) @index_name_method = block if block_given? @index_name ||= @index_name_method.call(@model) end
index_scope()
click to toggle source
# File lib/supple/model.rb, line 90 def index_scope @model.all end
mappings(&block)
click to toggle source
# File lib/supple/model.rb, line 84 def mappings(&block) @mappings ||= {} @mappings = DSL::Mapping.new(&block).to_hash if block_given? @mappings end
reindex()
click to toggle source
# File lib/supple/model.rb, line 101 def reindex alias_name = index_name new_index_name = alias_name + "_" + Time.now.strftime("%Y%m%d%H%M%S%L") document_mappings = {} document_mappings[document_type] = mappings client.indices.create index: new_index_name, body: { settings: settings, mappings: document_mappings } if client.indices.exists_alias(name: alias_name) existing_alias = client.indices.get_alias(name: alias_name) Importer.new(index_scope, new_index_name, document_type).execute! client.indices.delete index: existing_alias.keys client.indices.put_alias index: new_index_name, name: alias_name else client.indices.put_alias index: new_index_name, name: alias_name Importer.new(index_scope, new_index_name, document_type).execute! end end
settings(data = {})
click to toggle source
# File lib/supple/model.rb, line 94 def settings(data = {}) @settings ||= {} @settings.merge! data @settings end