我正在尝试使用带有mongoid的太阳黑子,但太阳黑子没有连接到Solr。尝试连接Solr时Rails报告错误。
Errno::ECONNREFUSED (Connection refused - connect(2))
我使用bundle exec rake sunspot:solr:start
来运行Solr并且我已经确认Solr正在开发端口(8982)上运行,如config / sunspot.yml中所定义
当我在Rails控制台中运行Sunspot.config
时,我看到了:
@properties={:url=>"http://127.0.0.1:8983/solr"}
然后我将开发/生产端口更改为8984/8985,Solr从新的dev端口(8984)开始,但Rails控制台中的Sunspot.config仍返回http://127.0.0.1:8983/solr
(8984或8985,这意味着它没有根本没读过sunspot.yml)
我是否错过了Rails中Sunspot的一些初始化步骤?
我使用以下版本:
答案 0 :(得分:2)
回答我自己的问题。实际上我的问题原来是sunspot_mongoid,当安装为gem时,它不是rails感知的,我不得不将它作为rails插件添加到thr rails项目中,然后正确加载config / sunspot.yml
答案 1 :(得分:0)
您是否退出控制台,再次启动并检查?
答案 2 :(得分:0)
我在尝试从控制台使用sunspot_index_queue时遇到了类似的问题,结果是太阳黑子没有从sunspot_rails获取所需的配置(从sunspot.yml获取它)对environment.rb文件稍作修改应该做的伎俩。这就是我在我的情况下必须做的事情(如果有人从谷歌找到这个页面发布它):
<code>
SunspotConfig = Sunspot::Rails::Configuration.new
Sunspot.session = Sunspot::IndexQueue::SessionProxy.new(
Sunspot::IndexQueue.new(
:session => Sunspot::Session.new{|config| config.solr.url = "http://#{SunspotConfig.hostname}:#{SunspotConfig.port}/solr"}
)
)
</code>
要在没有队列的情况下使用,本地线程代理应该自动从sunspot.yml恢复,因此您不必担心。如果您对sunspot.yml文件中的任何内容感兴趣,请尝试使用Sunspot::Configuration
或Sunspot::Rails::Configuration
。 (记得要实例化!)