sunspot_rails не читает sunspot.yml для его конфигурации - PullRequest
2 голосов
/ 07 февраля 2012

Я пытаюсь использовать солнечное пятно с монгоидом, но солнечное пятно не соединяется с Solr.Следующая ошибка, о которой сообщает Rails при попытке подключения к Solr.

Errno::ECONNREFUSED (Connection refused - connect(2))

Я использую bundle exec rake sunspot:solr:start для запуска Solr, и я подтвердил, что Solr работает на порте разработки (8982), как определено в config /sunspot.yml

Когда я запускаю Sunspot.config в консоли Rails, я вижу, что:

   @properties={:url=>"http://127.0.0.1:8983/solr"}

Затем я изменил порты разработки / производства на 8984/8985, Solr запускается с новогоdev port (8984), но Sunspot.config в консоли Rails по-прежнему возвращает http://127.0.0.1:8983/solr (ни 8984, ни 8985, что означает, что он вообще не читает sunspot.yml)

Я пропустил некоторые шаги инициализации для Sunspotв Rails?

Я использую следующие версии:

  • ruby ​​1.9.3
  • rails (3.2.1)
  • sunspot (1.3.0)
  • sunspot_rails (1.3.0)
  • sunspot_mongoid (0.4.1)

Ответы [ 3 ]

2 голосов
/ 11 февраля 2012

Отвечая на мой собственный вопрос. На самом деле моя проблема оказалась sunspot_mongoid, которая не поддерживает rails при установке в качестве гема, мне пришлось добавить его в проект thra rails как плагин rails, который затем корректно загружает config / sunspot.yml

0 голосов
/ 10 февраля 2012

У меня была похожая проблема при попытке использовать sunspot_index_queue из консоли, и оказалось, что sunspot не получает нужную ему конфигурацию из sunspot_rails (который получает его из вашего sunspot.yml) Некоторые небольшие изменения в вашем файле environment.rb должен сделать свое дело. Вот что я должен был сделать в моем случае (опубликовать его, если кто-нибудь найдет эту страницу в Google):

<code>
SunspotConfig = Sunspot::Rails::Configuration.new
Sunspot.session = Sunspot::IndexQueue::SessionProxy.new(
  Sunspot::IndexQueue.new(
    :session => Sunspot::Session.new{|config| config.solr.url = "http://#{SunspotConfig.hostname}:#{SunspotConfig.port}/solr"}
  )
)
</code>

Чтобы использовать без очереди, прокси локального потока должен автоматически восстановиться из вашего sunspot.yml, так что вам не о чем беспокоиться. Попробуйте вместо этого Sunspot::Configuration или Sunspot::Rails::Configuration, если вас интересует что-нибудь из вашего файла sunspot.yml. (Не забудьте создать экземпляр!)

0 голосов
/ 07 февраля 2012

Вы вышли из консоли, запустите ее снова и проверили?

...