我遇到了一个问题,当我尝试使用 sunspot_rails 执行搜索时出现 ECONNREFUSED 错误。宝石(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
请注意,它应该在 port 上8982
进行开发,但无论我做什么,它似乎都会继续在 port 上重新启动服务器8983
。知道这是怎么发生的吗?
谢谢!
更新:我找到了一个潜在的原因。在我的项目文件夹中,该文件/solr/conf/scripts.conf
包含以下内容:solr_port=8983
. 无论什么 Rails 环境处于活动状态,这似乎都意味着硬编码端口。