3

嗨,太阳黑子可以与 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 并搜索某些内容时,它不起作用。

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

-谢谢

4

3 回答 3

2

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

-D

于 2011-05-20T20:59:46.687 回答
1

您已经解决了分叉问题,因此如果您想留在单个 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 函数无法识别的 bash 别名:sunspot_rails、jruby、rspec,以了解更多有关包装需要 sunspot 的命令的功能的故障排除。

于 2011-12-08T15:26:13.433 回答
0

对于 rake 问题:

gem install sunspot -v 1.2.rc4

对于'在浏览器中不起作用':你是什么意思它不起作用?

  • 如果没有返回结果:

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

  • 错误(哪个?)
于 2011-05-18T17:22:17.007 回答