module Elasticsearch::Model::Adapter::Mongoid::Importing

Public Instance Methods

__find_in_batches(options={}) { |preprocess ? __send__: items| ... } click to toggle source

Fetch batches of records from the database

@see github.com/mongoid/mongoid/issues/1334 @see github.com/karmi/retire/pull/724

# 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
__transform() click to toggle source
# 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