我遇到了一个问题,当我尝试使用sunspot_rails执行搜索时,出现ECONNREFUSED错误。宝石(sunspot_rails和sunspot_solr)都似乎正确安装。我正在运行版本1.3.3
,并且我的服务器正常运行。使用太阳黑子和Solr在Rails中拒绝连接
我发现了另一篇关于此的帖子,但帖子只推荐启动太阳黑子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环境处于活动状态,这似乎意味着硬编码端口。
我注意到有时候太阳黑子的耙子任务实际上并不会停止solr。这可能会导致下次尝试启动solr时,表示它已启动但实际上失败。尝试手动杀死solr进程。一旦确定它未运行,请尝试从所需的环境开始。 – 2012-07-19 16:46:37
@BenMiller嗯,我在一台Windows机器上 - 发出命令'rake sunspot:solr:stop'时遇到以下消息:'此命令在i386-mingw32上不受支持。使用rake太阳黑子:solr:运行在前台运行 Solr。是否有另一种方法来杀死solr进程? – aardvarkk 2012-07-19 16:54:00
我没有在Windows上使用Sun Spot。不知道该从哪里出发。你可以检查你的任务管理器,并确保没有进程正在运行。 – 2012-07-19 19:35:12