我遇到一个问题,当我尝试使用sunspot_rails执行搜索时出现ECONNREFUSED错误。宝石(sunspot_rails和sunspot_solr)似乎都安装得很好。我正在运行版本1.3.3
,我让服务器正常运行。
我发现了另外一篇关于此的帖子,但帖子只建议启动太阳黑子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环境处于活动状态,这似乎意味着硬编码端口。
答案 0 :(得分:0)
原来这是太阳黑子中的一个错误。以下是我提交完整说明的问题的链接:
https://github.com/sunspot/sunspot/issues/262
我的解决方法是编辑.yml文件并将所有端口(测试,开发和生产)更改为8983.