From b7949ad72274013d421d6c333a7e745a253975f3 Mon Sep 17 00:00:00 2001 From: Rolf Schmidt Date: Tue, 17 Oct 2023 17:27:06 +0200 Subject: [PATCH] Fixes #4888 - Warning messages: `Scoped order is ignored, it's forced to be... --- app/models/concerns/has_search_index_backend.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/has_search_index_backend.rb b/app/models/concerns/has_search_index_backend.rb index 4bbf272fd125..146d6315ce63 100644 --- a/app/models/concerns/has_search_index_backend.rb +++ b/app/models/concerns/has_search_index_backend.rb @@ -182,9 +182,12 @@ def search_index_reload(silent: false, worker: 0) query = reorder(created_at: :desc) total = query.count record_count = 0 + offset = 0 batch_size = 200 - query.in_batches(of: batch_size) do |records| + while query.offset(offset).limit(batch_size).count.positive? + records = query.offset(offset).limit(batch_size) + Parallel.map(records, { in_processes: worker }) do |record| next if record.ignore_search_indexing?(:destroy) @@ -198,6 +201,8 @@ def search_index_reload(silent: false, worker: 0) end end + offset += batch_size + next if silent record_count += records.count