我正在使用带有sunspot_rails 2.1.1的Rails 4.0.5。我在使用jetty在Production上启动的solr服务器有问题。这是我每次运行 rake sunspot时遇到的错误:solr:reindex :
rake aborted!
RSolr::Error::Http: RSolr::Error::Http - 404 Not Found
Error: Not Found
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:GadgetModel</query></delete>"
Backtrace: /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rsolr-1.0.10/lib/rsolr/client.rb:283:in 'adapt_response'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/rsolr-1.0.10/lib/rsolr/client.rb:190:in `execute'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/rsolr-1.0.10/lib/rsolr/client.rb:176:in `send_and_receive'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/activesupport-4.0.5/lib/active_support/notifications.rb:159:in `block in instrument'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/activesupport-4.0.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/activesupport-4.0.5/lib/active_support/notifications.rb:159:in `instrument'
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'`
我按照http://blogs.pigrider.com/blogs/26的说明设置了我的生产服务器。
从上面的链接中,我尝试在jetty上部署我的solr,这种方法运行良好,直到我从Rails 3升级到Rails 4。
我意识到,从上面的链接开始,1)solr-jetty服务器(service solr start
)和2)sunspot_solr服务器(rake sunspot:solr:start
)都已启动。但是,我希望独立的1)solr-jetty服务器能够运行我的rails应用程序。
我的config / sunspot.yml文件是这样的:
production:
solr:
hostname: localhost
port: 8983
log_level: WARNING
path: /opt/solr
solr_home: /opt/solr/solr/collection1
# read_timeout: 2
# open_timeout: 0.5
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
path: /solr/development
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
path: /solr/test
请注意,当我按照博客的说明操作时,我已将路径和 solr_home 设置为我认为适用于我的配置。
我还检查了/opt/solr/logs/solr.log下的日志文件。从reindex命令返回404错误时,日志不会捕获任何内容。
奇怪的是,当我停止我的1)solr-jetty服务器(service solr stop
)并运行2)sunspot_solr时,它可以工作(rake sunspot:solr:start
)。但是当然我不希望将sunspot_solr服务器用于我的生产,因为每次服务停止时,我都需要重新索引。
我的宝石列表是这样的:
sunspot (2.1.1)
sunspot_rails (2.1.1)
sunspot_solr (2.1.1)
rsolr (1.0.10)
我怀疑我的sunspot.yml文件配置错误但我已多次尝试更改它们但服务器仍然返回404错误。
stackoverflow中其他地方的其他解决方案对我不起作用。在这个问题上花费了1周但仍未解决:(感谢任何solr / rails专家提供帮助。
答案 0 :(得分:3)
问题解决了!基于博客,solr服务器将安装在collection1下,因此路径和solr_home应该是&#39; path:/ solr / collection1&#39;和&#39; solr_home:solr&#39;