RSolr :: Error :: Http:RSolr :: Error :: Http - 生成的Rails 4和Jetty Solr服务器找不到404

时间:2014-06-18 14:17:11

标签: ruby-on-rails ruby-on-rails-4 solr sunspot

我正在使用带有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专家提供帮助。

1 个答案:

答案 0 :(得分:3)

问题解决了!基于博客,solr服务器将安装在collection1下,因此路径和solr_home应该是&#39; path:/ solr / collection1&#39;和&#39; solr_home:solr&#39;