You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
669 B
31 lines
669 B
3 years ago
|
# frozen_string_literal: true
|
||
|
|
||
|
class Importer::AccountsIndexImporter < Importer::BaseImporter
|
||
|
def import!
|
||
|
scope.includes(:account_stat).find_in_batches(batch_size: @batch_size) do |tmp|
|
||
|
in_work_unit(tmp) do |accounts|
|
||
|
bulk = Chewy::Index::Import::BulkBuilder.new(index, to_index: accounts).bulk_body
|
||
|
|
||
|
indexed = bulk.select { |entry| entry[:index] }.size
|
||
|
deleted = bulk.select { |entry| entry[:delete] }.size
|
||
|
|
||
|
Chewy::Index::Import::BulkRequest.new(index).perform(bulk)
|
||
|
|
||
|
[indexed, deleted]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
wait!
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def index
|
||
|
AccountsIndex
|
||
|
end
|
||
|
|
||
|
def scope
|
||
|
Account.searchable
|
||
|
end
|
||
|
end
|