|
|
|
@ -2,23 +2,14 @@ |
|
|
|
|
|
|
|
|
|
class Importer::PublicStatusesIndexImporter < Importer::BaseImporter |
|
|
|
|
def import! |
|
|
|
|
indexable_statuses_scope.find_in_batches(batch_size: @batch_size) do |batch| |
|
|
|
|
in_work_unit(batch.map(&:status_id)) do |status_ids| |
|
|
|
|
scope.select(:id).find_in_batches(batch_size: @batch_size) do |batch| |
|
|
|
|
in_work_unit(batch.pluck(:id)) do |status_ids| |
|
|
|
|
bulk = ActiveRecord::Base.connection_pool.with_connection do |
|
|
|
|
Chewy::Index::Import::BulkBuilder.new(index, to_index: Status.includes(:media_attachments, :preloadable_poll).where(id: status_ids)).bulk_body |
|
|
|
|
Chewy::Index::Import::BulkBuilder.new(index, to_index: Status.includes(:media_attachments, :preloadable_poll, :preview_cards).where(id: status_ids)).bulk_body |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
indexed = 0 |
|
|
|
|
deleted = 0 |
|
|
|
|
|
|
|
|
|
bulk.map! do |entry| |
|
|
|
|
if entry[:index] |
|
|
|
|
indexed += 1 |
|
|
|
|
else |
|
|
|
|
deleted += 1 |
|
|
|
|
end |
|
|
|
|
entry |
|
|
|
|
end |
|
|
|
|
indexed = bulk.count { |entry| entry[:index] } |
|
|
|
|
deleted = bulk.count { |entry| entry[:delete] } |
|
|
|
|
|
|
|
|
|
Chewy::Index::Import::BulkRequest.new(index).perform(bulk) |
|
|
|
|
|
|
|
|
@ -35,7 +26,7 @@ class Importer::PublicStatusesIndexImporter < Importer::BaseImporter |
|
|
|
|
PublicStatusesIndex |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def indexable_statuses_scope |
|
|
|
|
Status.indexable.select('"statuses"."id", COALESCE("statuses"."reblog_of_id", "statuses"."id") AS status_id') |
|
|
|
|
def scope |
|
|
|
|
Status.indexable |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|