Отключить Solr во время восстановления базы данных

#ruby-on-rails #solr #sunspot #sunspot-rails

#ruby-on-rails #solr #солнечное пятно #sunspot-rails

Вопрос:

Я работаю над проектом rails, в котором используется драгоценный камень solr sunspot. Я оставил поведение по умолчанию для автоматического обновления индекса при сохранении модели, но мне было интересно, есть ли способ временно отключить индексацию при массовом создании объектов, например, во время процесса rake db: seed. При использовании начальной команды я надеялся, что она добавит все объекты, а затем выполнит один большой вызов reindex для обновления всей таблицы. Есть идеи?

Спасибо!

Ответ №1:

Вы могли бы установить для сеанса Sunspot значение StubSessionProxy.

Комментарии:

1. Потрясающе! Итак, я делаю Sunspot::Rails::StubSessionProxy.new(Sunspot.session). Нужно ли мне повторно запускать сеанс после завершения заполнения? Я не уверен, как это сделать. Вы можете помочь?

Ответ №2:

Также есть это.

В принципе, вы должны иметь возможность добавить это в sunspot.yml:

 development:
    disabled: true
  

Это отлично работает, если вы выполняете некоторые задачи или запросы непосредственно в БД. Однако, если вы запускаете свое приложение с этим параметром и в любом месте вашего кода у вас есть что-то вроде:

 Sunspot.config.pagination.default_per_page = 50
  

Затем вы столкнетесь с ошибкой, подобной этой:

 undefined method `config' for #<Sunspot::Rails::StubSessionProxy:0x007ff6ee33df28>