【问题标题】:Heroku - RSolr::Error::Http (RSolr::Error::Http - 404 Not FoundHeroku - RSolr::Error::Http (RSolr::Error::Http - 404 Not Found
【发布时间】:2014-10-24 13:03:34
【问题描述】:
在 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 消息并且应用程序崩溃。有没有人遇到过这个并设法解决它?
【问题讨论】:
标签:
ruby-on-rails
heroku
sunspot
websolr
【解决方案1】:
澄清一下,Sunspot 默认与 Solr 捆绑在一起,但这与您的 websolr 索引完全分开。 Websolr 索引通过仪表板进行管理,您可以通过运行heroku addons:open websolr 来查看该仪表板。所有的配置设置都在那里应用;您无法从命令行启动/停止/重新启动 websolr。
根据documentation:
默认情况下,Sunspot 1.3.0 支持您的 Heroku 应用程序在生产中使用的 WEBSOLR_URL 环境变量。这让 Sunspot 无需进一步配置即可对您的索引执行操作,从而允许用户快速启动和运行搜索,而无需更改其应用程序的代码库。
如果您想更细粒度地控制您在不同环境中使用的 Solr 服务器,您可以从应用程序根目录中的命令行运行 script/generate sunspot,以在 config/sunspot.yml 创建一个 Sunspot 配置文件。
因此您应该能够简单地删除 sunspot.yml 文件,Sunspot 将简单地使用您的 WEBSOLR_URL 的值。或者,您可以使用以下内容:
production:
solr:
hostname: index.websolr.com
port: 80
log_level: WARNING
path: /solr/a1b2c3d4e5 (whatever your key is)
【解决方案2】:
试试这个:
- 停止 Solr
- 从您的项目文件夹中删除 solr 文件夹
- 将“路径:/solr/production”更改为:“路径:/solr/default”
- 重启机器
- 启动 solr
这很奇怪,但对我有用。