class Mongoid::Elasticsearch::Index

Public Class Methods

new(es) click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 4
def initialize(es)
  @es = es
end

Public Instance Methods

create() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 36
def create
  unless options == {} || exists?
    force_create
  end
end
delete() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 46
def delete
  if exists?
    force_delete
  end
end
exists?() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 32
def exists?
  indices.exists index: name
end
force_create() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 42
def force_create
  indices.create index: name, body: options
end
force_delete() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 52
def force_delete
  indices.delete index: name
end
indices() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 28
def indices
  @es.client.indices
end
klass() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 8
def klass
  @es.klass
end
name() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 12
def name
  klass.es_index_name
end
options() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 24
def options
  klass.es_index_options
end
refresh() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 56
def refresh
  indices.refresh index: name
end
reset() click to toggle source
# File lib/mongoid/elasticsearch/index.rb, line 60
def reset
  delete
  create
end
type() click to toggle source

mapping names should not be specified, it will direclty use the type from here, which will default to document. if specified, mapping name should be document. this was modified to set the type of all documents as “document”, because in newer versions elasticsearch supports only one mapping/type per index.

# File lib/mongoid/elasticsearch/index.rb, line 19
def type
  "document"
  #klass.model_name.collection.singularize
end