我遇到一个问题,当我尝试使用 sunspot_rails 执行搜索时出现 ECONNREFUSED 错误。 gems(sunspot_rails 和 sunspot_solr)似乎都已正确安装。我正在运行版本 1.3.3
我的服务器运行正常。
我找到了另一篇关于此的帖子,但该帖子只建议启动 sunspot solr 服务器。我肯定已经这样做了,但错误仍然存在。
我认为问题出在服务器所在的端口上。当我查看 RAILS_ENV=development rake sunspot:solr:run
的输出时, 它表明服务器正在端口 8983
上运行.我也试过命令 RAILS_ENV=production rake sunspot:solr:run
效果相同。
如果我检查 sunspot.yml
配置文件,它显示如下:
production:
solr:
hostname: localhost
port: 8983
log_level: WARNING
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
注意它应该在端口 8982
上用于开发,但无论我做什么,它似乎都会在端口 8983
上不断重启服务器.知道这是怎么发生的吗?
谢谢!
更新:我找到了一个潜在的原因。在我的项目文件夹中,文件 /solr/conf/scripts.conf
包含以下内容:solr_port=8983
.这似乎暗示着无论 Rails 环境处于何种事件状态,都有一个硬编码的端口。
最佳答案
事实证明这是 Sunspot 中的一个错误。这是我为完整描述而提交的问题的链接:
https://github.com/sunspot/sunspot/issues/262
我的解决方法是编辑 .yml 文件并将所有端口(测试、开发和生产)更改为 8983。
关于ruby-on-rails - 在 Rails 中使用 Sunspot 和 Solr 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11565149/