【问题标题】:sunspot with jruby太阳黑子与 jruby
【发布时间】:2011-05-13 01:42:57
【问题描述】:

你好 sunspot 可以与 jruby 一起使用,这里也是我的应用程序详细信息

jruby-1.6.1
rails 3.0.7 

when i install all the gems and run rake sunspot:solr:start it gives me the following error 

Gem::LoadError: Could not find RubyGem sunspot (>= 0)

  report_activate_error at /Users/dpatel/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems.rb:861
               activate at /Users/dpatel/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems.rb:255
                    gem at /Users/dpatel/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems.rb:1215
                 (root) at /Users/dpatel/.rvm/gems/jruby-1.6.1@solr/bin/sunspot-solr:18

但是,当我运行 rake sunspot:solr:run 时,它运行良好。

另外,当我使用 Model.search 搜索时,它工作正常,但是当我在浏览器上启动 solr webapp 并搜索某些内容时,它不起作用。

谁能告诉我发生了什么事,太阳黑子的新手。

-谢谢

【问题讨论】:

  • 太阳黑子的 gemfile 条目是什么样的?
  • gem 'sunspot', '1.2.rc4' gem 'sunspot_rails', '1.2.rc4'

标签: solr jruby jrubyonrails sunspot sunspot-rails


【解决方案1】:

嗨,我想通了,我在 jruby 上,并且 jruby 上不允许分叉,并且 rake sunspot:solr:start 尝试分叉并抛出错误,但是 rake sunspot:solr:run 在前台启动 solr 并且工作正常,有点痛苦但一切都很好:-)

-D

【讨论】:

    【解决方案2】:

    您已经解决了分叉问题,所以如果您想留在单个 shell 中进行开发和测试,我发现这些别名对于在特定的 rails 环境中运行 sunspot 非常有用,然后在我发现并终止该进程时完成了:

    如果您保留默认端口:

    alias sunspot_run_test="RAILS_ENV=test sunspot-solr run &"
    alias sunspot_kill_test="fuser -n tcp 8982 -k"
    alias sunspot_run_dev="RAILS_ENV=test sunspot-solr run &"
    alias sunspot_kill_dev="fuser -n tcp 8982 -k
    

    如果您更改端口,则需要更改自动生成的 sunspot.yml 或将 sunspot.rb 放入 config>initializers 中,您可以在运行别名的 & 之前添加 -p{$port_num} 并更改明确的端口号到 {$port_num} 的 kill 别名。

    正如弗拉德所说,从您的解释中很难知道浏览器中发生了什么。如果您是 sunspot 的新手,可能会遇到的一件事是,在您尝试对数据库中的任何内容进行 CRUD 之前,您需要在开发环境中运行一个实例(使用 sunspot_run_dev 别名),否则您将收到连接被拒绝错误。

    请参阅bash aliases not recognized by a bash function: sunspot_rails, jruby, rspec,了解更多有关包装需要 sunspot 的命令的功能的故障排除。

    【讨论】:

      【解决方案3】:

      对于 rake 问题:

      gem install sunspot -v 1.2.rc4
      

      对于“在浏览器中不起作用”:您的意思是它不起作用?

      • 如果没有返回结果:

      您可以通过比较您在脚本/控制台上手动发出的 Solr 请求和服务器发出的请求来调试它。默认情况下,sunspot gem 在 'logs/sunspot-solr-development.log' 中记录请求

      • 错误(哪个?)

      【讨论】:

      • 嗨,我想通了,我在 jruby 上,并且 jruby 上不允许分叉,并且 rake sunspot:solr:start 尝试分叉并在后台运行 solr
      • 太好了,然后添加您的评论作为回复(您可以回复您自己的问题)并将其标记为正确答案! :)
      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多