module Elasticsearch::Model::Adapter::ActiveRecord::Importing

Public Instance Methods

__find_in_batches(options={}) { |batch| ... } click to toggle source

Fetch batches of records from the database (used by the import method)

@see api.rubyonrails.org/classes/ActiveRecord/Batches.html ActiveRecord::Batches.find_in_batches

# File lib/elasticsearch/model/adapters/active_record.rb, line 96
def __find_in_batches(options={}, &block)
  query = options.delete(:query)
  named_scope = options.delete(:scope)
  preprocess = options.delete(:preprocess)

  scope = self
  scope = scope.__send__(named_scope) if named_scope
  scope = scope.instance_exec(&query) if query

  scope.find_in_batches(**options) do |batch|
    batch = self.__send__(preprocess, batch) if preprocess
    yield(batch) if batch.present?
  end
end
__transform() click to toggle source
# File lib/elasticsearch/model/adapters/active_record.rb, line 111
def __transform
  lambda { |model|  { index: { _id: model.id, data: model.__elasticsearch__.as_indexed_json } } }
end