ruby-on-rails - 在 Rails 中使用 Sunspot 和 Solr 连接被拒绝

标签 ruby-on-rails ruby solr sunspot

我遇到一个问题,当我尝试使用 sunspot_rails 执行搜索时出现 ECONNREFUSED 错误。 gems(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

注意它应该在端口 8982 上用于开发,但无论我做什么,它似乎都会在端口 8983 上不断重启服务器.知道这是怎么发生的吗?

谢谢!

更新:我找到了一个潜在的原因。在我的项目文件夹中,文件 /solr/conf/scripts.conf包含以下内容:solr_port=8983 .这似乎暗示着无论 Rails 环境处于何种事件状态,都有一个硬编码的端口。

最佳答案

事实证明这是 Sunspot 中的一个错误。这是我为完整描述而提交的问题的链接:

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

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

关于ruby-on-rails - 在 Rails 中使用 Sunspot 和 Solr 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11565149/

相关文章:

ruby-on-rails - 调用 bool 实例方法作为 'scope'

ruby - ActiveRecord 不带 Rails 和现有 ID 列

ruby-on-rails - 捆绑安装时 Openshift ssh ruby​​ 版本不正确?

ruby - 如何: Ruby Range that doesn't include the first value

lucene - 推荐的标题提升?

ruby-on-rails - 使用新设备对移动应用进行身份验证

ruby-on-rails - 在rails中使用has_and_belongs_to_many关系记录数据

mysql - rails : auto increment column with scope

solr - Solr排序无法正常工作

mysql - 在 Apache Solr 中索引 MySQL