【问题标题】:Connection refused using Sunspot and Solr in Rails在 Rails 中使用 Sunspot 和 Solr 拒绝连接
【发布时间】:2012-07-19 16:23:53
【问题描述】:

我遇到了一个问题,当我尝试使用 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

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

谢谢!

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

【问题讨论】:

  • 我注意到有时太阳黑子的 rake 任务实际上不会停止 solr。这可能会导致您下次尝试启动 solr 时,它说它已启动但实际上失败了。尝试手动终止 solr 进程。一旦确定它没有运行,请尝试从所需的环境开始。
  • @BenMiller 嗯,我在 Windows 机器上 -- 发出命令 rake sunspot:solr:stop 会遇到消息:This command is not supported on i386-mingw32. Use rake sunspot:solr:run to run Solr in the foreground. 还有其他方法可以杀死 solr 进程吗?
  • 我没有在 Windows 上使用过 Sun Spot。不知道从这里去哪里。你可以检查你的任务管理器,确保没有进程在运行。
  • 这是一个来自太阳黑子的错误。正如我所看到的,你知道的 :) github.com/sunspot/sunspot/issues/262
  • @AdrienGiboire 哈,是的,我昨晚想通了并提交了错误。哎呀,我会给你赏金的另一个,我自己回答这个。感谢您的调查!

标签: ruby-on-rails ruby solr sunspot


【解决方案1】:

原来这是 Sunspot 中的一个错误。这是我提交的问题的完整描述链接:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多