首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4: RSolr::Error::Http (RSolr::Error::HTP-404未找到)

Rails 4: RSolr::Error::Http (RSolr::Error::HTP-404未找到)
EN

Stack Overflow用户
提问于 2013-11-30 18:42:30
回答 3查看 7.6K关注 0票数 9

我正在升级我的应用程序到Rails 4,现在有我的rails服务器,以及太阳黑子solr,经过大量的修补,运行,我可以访问Solr管理页面。然而,当我尝试从我的rails开发应用程序访问solr来执行搜索或索引时,我会得到以下错误

代码语言:javascript
复制
RSolr::Error::Http (RSolr::Error::Http - 404 Not Found
Error:     Not Found

Request Data: "fq=type%3AMatch&fq=date_in_utc_d%3A%7B2013%5C-11%5C-29T21%5C%3A00%5C%3A00Z+TO+%2A%7D&fq=approval__s%3AAPPROVED&sort=date_d+asc&q=london&fl=%2A+score&qf=caption_text%5E10+city_name_text%5E10+team_name_text%5E10+&defType=edismax&start=0&rows=30"

Backtrace: /Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in `adapt_response'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in `execute'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/rsolr-1.0.9/lib/rsolr/client.rb:161:in `send_and_receive'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/sunspot_rails-2.1.0/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-4.0.1/lib/active_support/notifications.rb:159:in `block in instrument'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-4.0.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-4.0.1/lib/active_support/notifications.rb:159:in `instrument'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/sunspot_rails-2.1.0/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'
(eval):2:in `post'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/sunspot-2.1.0/lib/sunspot/search/abstract_search.rb:45:in `execute'
/Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/sunspot-2.1.0/lib/sunspot/session.rb:59:in `search'):
  <a href="txmt://open?url=file:///Users/bashar/rails-projects/myapp/app/models/match.rb&amp;line=474&amp;column=1">app/models/match.rb:474:in `upcoming_games'</a>
  <a href="txmt://open?url=file:///Users/bashar/rails-projects/myapp/app/controllers/tickets_controller.rb&amp;line=34&amp;column=1">app/controllers/tickets_controller.rb:34:in `search'</a>


  Rendered /Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.4ms)
  Rendered /Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
  Rendered /Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
  Rendered /Users/bashar/.rvm/gems/ruby-2.0.0-p353/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (17.3ms)

这是sunspot.yml文件。

代码语言:javascript
复制
production:
  solr:
    hostname: ENV['WEBSOLR_URL']
    port: 80
    log_level: WARNING
    path: /solr/production
    # read_timeout: 2
    # open_timeout: 0.5
development:
  solr:
    hostname: 192.168.0.11
    port: 8981
    log_level: INFO
    path: /solr/development
test:
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING
    path: /solr/test

我验证了solr is数据在正确的路径上。我知道有类似的帖子,但他们的解决方案行不通。我试图注释path:,或者使用/solr/default,或者只使用/solr,或者使用ip而不是本地主机,但都没有效果。

有什么想法吗?关于我如何能够看到rails太阳黑子solr请求试图到达的位置的提示?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-03 08:32:12

解决了!下面是回答suggested here的步骤,几乎没有什么变化:

  1. 停止所有运行的solr进程
  2. 删除solr文件夹,但保留一个可访问的副本,以防您需要一些旧的配置、同义词和类似的
  3. gem卸载所有相关的宝石
  4. 捆绑安装
  5. rails生成sunspot_rails:install
  6. 启动solr
  7. reindex solr:现在我使用mongoid,rake太阳黑子:reindex似乎不起作用,但是从控制台开始执行Sunspot.index!(Model.all)是为我做的。
票数 14
EN

Stack Overflow用户

发布于 2014-06-16 13:40:41

我对这个问题的修正是:在config/sunpot.yml配置文件中注释path参数(默认配置)。

默认值是:#path: /solr/development.

在这之后,

  • 停止solr的所有进程, ps aux grep 'solr‘杀死PROCESS_ID
  • 删除"solr“文件夹,该文件夹位于应用程序目录中。 rm -rf solr

这将删除以前的配置。

  • 那么,rake sunspot:solr:start
  • 启动solr服务器后,再次尝试重新索引, 雷克太阳黑子:再索引

问题应该解决。

我已经使用太阳黑子solr全文搜索我的一个项目,在那里我已经解决了上述问题。

例如参考链接- http://moreaboutsports.com/

票数 10
EN

Stack Overflow用户

发布于 2014-03-19 01:01:31

我遇到的问题是,gem试图为Jetty tempDirectory使用自己的gem目录,当然它没有写权限,因此服务器从未启动。它似乎是在后台启动的,但它并没有真正运行。当试图在前台rake sunspot:solr:run中运行它时,它会显示一些错误,但我仍然必须将其跟踪到gem中的配置文件。您必须编辑创业板配置来修复它。我在GitHub中添加了一个问题:

https://github.com/sunspot/sunspot/issues/561

问题是太阳黑子_solr-2.1.0/bin/ The /solr.xml文件。您必须将tempDirectory设置为具有写权限的东西,比如/tmp,而不是'.',创业板目录。

如果启动Solr仍有问题,请尝试删除tmp目录并重新启动服务器。我遇到了一种奇怪的情况,它指向/tmp目录并在工作,但是当我重新启动服务器时,它一直给我带来404错误!不知怎么的,所有的文件都被删除了,这是它所依赖的!由于目录仍然存在,所以它没有复制和扩展WAR。如果删除tmp目录,那么它将重新复制并重新展开WAR。

代码语言:javascript
复制
ls /tmp/solr-webapp/

当然,这是除了编辑/usr/local/rvm/gems/ruby-2.0.0-p247.../gems/sunspot_solr-2.1.0/solr/contexts/solr.xml文件之外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20304160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档