Elasticsearch Rails Массовая индексация - PullRequest
0 голосов
/ 25 августа 2018

У меня в базе данных postgres около 1,5 млн. Данных, которые мне нужно переиндексировать.Я использовал метод find_each в ActiveRecord в одном работнике sidekiq, чтобы передать эти объекты другому работнику, который выполняет переиндексацию для каждого объекта.

worker1

# Perform in batch of 200 in 2 minutes.
type.find_each(batch_size: 200) do |object|
    Elasticsearch::Worker2.perform_in(2.minutes, :index, type, object.id, "new_index_name")
end

worker2

def index_object(object, index_name)
  object.__elasticsearch__.index_document(index: index_name)
end

Но я столкнулся со следующей проблемой:

[429] {"code":429,"message":"Concurrent request limit exceeded. Please consider batching your requests, or contact support@bonsai.io for help."}

Кто-нибудь знает, как сделать пакетные запросы, используя рельсы эластичного поиска?

...