在Rails中使用Sunspot和Solr拒绝连接

时间:2012-07-19 16:23:54

标签: ruby-on-rails ruby solr sunspot

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

1 个答案:

答案 0 :(得分:0)

原来这是太阳黑子中的一个错误。以下是我提交完整说明的问题的链接:

https://github.com/sunspot/sunspot/issues/262

我的解决方法是编辑.yml文件并将所有端口(测试,开发和生产)更改为8983.