Я хотел бы иметь четкое представление о том, как бороться со следующим сценарием:
Я добавляю или удаляю атрибут из модели ActiveRecord, поэтому хочу обновить его сопоставление в ElasticSearch в рабочей среде.
Насколько я понял, я должен...
1- создайте новый индекс и импортируйте все из mysql
Это правильная команда? rake environment tire:import CLASS='Bow' INDEX='new-bows'
Чтобы создать правильное сопоставление, я уже должен был обновить свое сопоставление в модели, верно?
2- удалите старое сопоставление и создайте псевдоним с именем bows
для new-bows
Я бы так сделал, это правильно?
old_index_name = Bow.tire.index.name
Bow.tire.index.delete
alias = Tire::Alias.new
alias.name(old_index_name)
alias.index('new-bows')
alias.save
3- перезапустить приложение
Я что-то упускаю или есть более простой способ добиться желаемого с помощью Tire?
В какой момент следует удалить старый индекс? Перед созданием одноименного псевдонима или можно после?
Tire.index(index_name).import batch
. Попробуйте определить, какая часть может занять больше времени. Проблема, вероятно, связана с объемом данных, которые у вас есть для каждой записи. В прошлом я имел дело с миллионами записей, но это было намного быстрее, чем 62,5 тыс. записей в час. - person Robin   schedule 23.06.2014