Module: Elasticsearch::Model::Indexing::ClassMethods
- Included in:
 - Proxy::ClassMethodsProxy
 
- Defined in:
 - lib/elasticsearch/model/indexing.rb
 
Instance Method Summary collapse
- 
  
    
      #create_index!(options = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Creates an index with correct name, automatically passing ‘settings` and `mappings` defined in the model.
 - 
  
    
      #delete_index!(options = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Deletes the index with corresponding name.
 - 
  
    
      #index_exists?(options = {})  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Returns true if the index exists.
 - #load_settings_from_io(settings) ⇒ Object
 - 
  
    
      #mapping(options = {}, &block)  ⇒ Object 
    
    
      (also: #mappings)
    
  
  
  
  
  
  
  
  
  
    
Defines mappings for the index.
 - 
  
    
      #refresh_index!(options = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Performs the “refresh” operation for the index (useful e.g. in tests).
 - 
  
    
      #settings(settings = {}, &block)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Define settings for the index.
 
Instance Method Details
#create_index!(options = {}) ⇒ Object
Creates an index with correct name, automatically passing ‘settings` and `mappings` defined in the model
      232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 232 def create_index!(={}) = .clone target_index = .delete(:index) || self.index_name settings = .delete(:settings) || self.settings.to_hash mappings = .delete(:mappings) || self.mappings.to_hash delete_index!(.merge index: target_index) if [:force] unless index_exists?(index: target_index) .delete(:force) self.client.indices.create({ index: target_index, body: { settings: settings, mappings: mappings } }.merge()) end end  | 
  
#delete_index!(options = {}) ⇒ Object
Deletes the index with corresponding name
      277 278 279 280 281 282 283 284 285 286 287 288 289 290  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 277 def delete_index!(={}) target_index = .delete(:index) || self.index_name begin self.client.indices.delete index: target_index rescue Exception => e if e.class.to_s =~ /NotFound/ && [:force] client.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.logger nil else raise e end end end  | 
  
#index_exists?(options = {}) ⇒ Boolean
Returns true if the index exists
      261 262 263 264 265  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 261 def index_exists?(={}) target_index = [:index] || self.index_name self.client.indices.exists(index: target_index, ignore: 404) end  | 
  
#load_settings_from_io(settings) ⇒ Object
      213 214 215  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 213 def load_settings_from_io(settings) YAML.load(settings.read) end  | 
  
#mapping(options = {}, &block) ⇒ Object Also known as: mappings
Defines mappings for the index
The ‘mappings` and `settings` methods are accessible directly on the model class, when it doesn’t already define them. Use the ‘__elasticsearch__` proxy otherwise.
      145 146 147 148 149 150 151 152 153 154 155 156  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 145 def mapping(={}, &block) @mapping ||= Mappings.new() @mapping..update() unless .empty? if block_given? @mapping.instance_eval(&block) return self else @mapping end end  | 
  
#refresh_index!(options = {}) ⇒ Object
Performs the “refresh” operation for the index (useful e.g. in tests)
      304 305 306 307 308 309 310 311 312 313 314 315 316 317  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 304 def refresh_index!(={}) target_index = .delete(:index) || self.index_name begin self.client.indices.refresh index: target_index rescue Exception => e if e.class.to_s =~ /NotFound/ && [:force] client.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.logger nil else raise e end end end  | 
  
#settings(settings = {}, &block) ⇒ Object
Define settings for the index
You can read settings from any object that responds to :read as long as its return value can be parsed as either YAML or JSON.
      199 200 201 202 203 204 205 206 207 208 209 210 211  | 
    
      # File 'lib/elasticsearch/model/indexing.rb', line 199 def settings(settings={}, &block) settings = YAML.load(settings.read) if settings.respond_to?(:read) @settings ||= Settings.new(settings) @settings.settings.update(settings) unless settings.empty? if block_given? self.instance_eval(&block) return self else @settings end end  |