2012-07-19 46 views
2

我遇到了一个问题,当我尝试使用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环境处于活动状态,这似乎意味着硬编码端口。

+1

我注意到有时候太阳黑子的耙子任务实际上并不会停止solr。这可能会导致下次尝试启动solr时,表示它已启动但实际上失败。尝试手动杀死solr进程。一旦确定它未运行,请尝试从所需的环境开始。 – 2012-07-19 16:46:37

+0

@BenMiller嗯,我在一台Windows机器上 - 发出命令'rake sunspot:solr:stop'时遇到以下消息:'此命令在i386-mingw32上不受支持。使用rake太阳黑子:solr:运行在前台运行 Solr。是否有另一种方法来杀死solr进程? – aardvarkk 2012-07-19 16:54:00

+0

我没有在Windows上使用Sun Spot。不知道该从哪里出发。你可以检查你的任务管理器,并确保没有进程正在运行。 – 2012-07-19 19:35:12

回答