我有一个使用太阳黑子/ solr搜索功能的rails应用程序。这个应用程序在开发中运行良好,但现在我正在尝试将它部署到服务器我遇到了麻烦。
我在Ubuntu 14.04上使用Dokku 0.5.4的Digital Ocean水滴一键点击图片。
我第一次尝试让Solr启动并运行时,我按照official sunspot github页面上的说明进行操作。尽管遵循了这封信的指示,但我无法让我的应用与Solr交谈。
由于链接指南中的教程有点陈旧。我决定旋转一个全新的液滴,然后再试一次,这次发现here稍微更近的方向。按照这些说明逐字记录后,我的rails应用程序仍然存在连接问题。
这是我得到的错误
RSolr::Error::ConnectionRefused: Connection refused - {:data=>"<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">Person 3</field><field name=\"type\">Person</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Person</field><field boost=\"2\" name=\"first_name_text\">Joe</field><field name=\"last_name_text\">Schmoe</field><field name=\"email_text\">joe@example.com</field></doc></add>", :headers=>{"Content-Type"=>"text/xml"}, :method=>:post, :params=>{:wt=>:ruby}, :query=>"wt=ruby", :path=>"update", :uri=>#<URI::HTTP http://localhost:8983/solr/solr_sunspot_example/update?wt=ruby>, :open_timeout=>nil, :read_timeout=>nil, :retry_503=>nil, :retry_after_limit=>nil}
我应该指出,当我导航到mydomain.com:8983时,我可以看到solr服务器正在运行。此外,当我运行service solr status
时,我得到以下内容。
Found 1 Solr nodes:
Solr process 1164 running on port 8983
{
"solr_home":"/var/solr/data/",
"version":"5.2.1 1684708 - shalin - 2015-06-10 23:20:13",
"startTime":"2016-04-15T19:38:29.651Z",
"uptime":"0 days, 0 hours, 24 minutes, 17 seconds",
"memory":"93.7 MB (%19.1) of 490.7 MB"}
这是我的sunspot.yml文件
production:
solr:
hostname: localhost
port: 8983
log_level: WARNING
path: /solr/solr_sunspot_example
这是我第一次尝试使用太阳黑子/ solr而我无法看到我搞砸了。我是否以正确的方式设置solr?
答案 0 :(得分:2)
最有可能的是,您的Solr未设置为侦听localhost接口并且只侦听mydomain.com接口。
要验证此假设,请从您的实例中执行curl localhost:8983/solr/solr_sunspot_example
和curl mydomain.com:8983/solr/solr_sunspot_example
。如果第二个命令成功,而第一个命令不成功,那么情况就是如此。
您将有2个选项来解决它:要么指向配置以查询mydomain.com接口,要么将Solr配置更改为在localhost接口上侦听。后者将由sunspot.yml中的主机名设置控制(请参阅上面引用的github wiki页面)。
答案 1 :(得分:0)
生产配置中可能缺少用户和密码?
production:
solr:
hostname: point_to_solr_host
port: 443
log_level: WARNING
path: /solr/solr_sunspot_example
user: <%= ENV["SOLR_USER"] %>
password: <%= ENV["SOLR_PASSWORD"] %>