Heroku - RSolr:: Ошибка::Http (RSolr:: Ошибка::Http - 404 Не найдено
В config/sunspot.yml
production:
solr:
hostname: http://index.websolr.com/solr/...
port: 8983
log_level: WARNING
path: /solr/production
...
И моя переменная конфигурации Heroku
http://index.websolr.com/solr/...
И все остальное, кажется, настроено в соответствии с документами, но я продолжаю получать 404 сообщения в журнале, и приложение вылетает. Кто-нибудь сталкивался с этим раньше и сумел это исправить?
2 ответа
Чтобы уточнить, Sunspot поставляется в комплекте с Solr по умолчанию, но это совершенно отдельно от вашего индекса Websolr. Индексы Websolr управляются через панель инструментов, которую вы можете увидеть, запустив heroku addons:open websolr
, Все настройки конфигурации применяются там; Вы не можете запустить / остановить / перезапустить websolr из командной строки.
Согласно документации:
По умолчанию Sunspot 1.3.0 поддерживает
WEBSOLR_URL
Переменная окружения, используемая вашим приложением Heroku на производстве. Это позволяет Sunspot выполнять действия с вашим индексом без дальнейшей настройки, позволяя пользователям быстро приступить к поиску и запуску без необходимости вносить изменения в кодовую базу своего приложения.Если вы хотите более детально контролировать, какие серверы Solr вы используете в разных средах, вы можете запустить
script/generate sunspot
из командной строки в корневом каталоге вашего приложения, чтобы создать файл конфигурации Sunspot по адресуconfig/sunspot.yml
,
Таким образом, вы сможете просто удалить файл sunspot.yml, а Sunspot просто использует значение вашего WEBSOLR_URL
, В качестве альтернативы вы можете использовать что-то вроде этого:
production:
solr:
hostname: index.websolr.com
port: 80
log_level: WARNING
path: /solr/a1b2c3d4e5 (whatever your key is)
Попробуй это:
- Стоп Солр
- Удалить папку Solr из папки вашего проекта
- Измените путь: /solr/production на: путь: /solr/default
- Перезагрузите машину
- Начать Solr
Это странно, но у меня работает.