在Rails中使用Sunspot和Solr拒绝连接
我遇到一个问题,当我尝试使用sunspot_rails执行搜索时出现ECONNREFUSED错误。 gem(sunspot_rails和sunspot_solr)似乎都安装得很好。 我正在运行1.3.3
版本,我的服务器运行正常。
我发现了另一篇关于此的post,但post只建议启动太阳黑子solr服务器。 我肯定已经这样做了,但错误仍然存在。
我认为问题是由于服务器所在的端口。 当我查看RAILS_ENV=development rake sunspot:solr:run
,它显示服务器正在端口8983
上运行。 我也尝试过命令RAILS_ENV=production rake sunspot:solr:run
以相同的效果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环境处于活动状态,这似乎意味着硬编码端口。
事实certificate这是太阳黑子中的一个错误。 以下是我提交完整说明的问题的链接:
https://github.com/sunspot/sunspot/issues/262
我的解决方法是编辑.yml文件并将所有端口(测试,开发和生产)更改为8983。