Module: Elasticsearch::Model::Adapter::Mongoid::Importing

Defined in:
lib/elasticsearch/model/adapters/mongoid.rb

Instance Method Summary collapse

Instance Method Details

#__find_in_batches(options = {}, &block) ⇒ Object

Fetch batches of records from the database



82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/elasticsearch/model/adapters/mongoid.rb', line 82

def __find_in_batches(options={}, &block)
  batch_size = options[:batch_size] || 1_000
  query = options[:query]
  named_scope = options[:scope]
  preprocess = options[:preprocess]

  scope = all
  scope = scope.send(named_scope) if named_scope
  scope = query.is_a?(Proc) ? scope.class_exec(&query) : scope.where(query) if query
  
  scope.no_timeout.each_slice(batch_size) do |items|
    yield (preprocess ? self.__send__(preprocess, items) : items)
  end
end

#__transformObject



97
98
99
# File 'lib/elasticsearch/model/adapters/mongoid.rb', line 97

def __transform
  lambda {|a|  { index: { _id: a.id.to_s, data: a.as_indexed_json } }}
end