【发布时间】: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