太阳黑子与jruby

时间:2011-05-13 01:42:58

标签: solr jruby jrubyonrails sunspot sunspot-rails

你可以使用太阳黑子和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并搜索某些东西时,它不起作用。

任何人都可以告诉我发生了什么,是太阳黑子的新手。

-Thanks

3 个答案:

答案 0 :(得分:2)

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

-D

答案 1 :(得分:1)

你已经找到了分叉问题,所以如果你想留在一个shell进行开发和测试,我发现这些别名对于在特定的rails环境中运行太阳黑子特别有用,然后当我找到并杀死那个进程时我完成了:

如果保留默认端口:

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或在config>初始值设定项中放置sunspot.rb,然后您可以在& amp;之前添加-p {$ port_num}。在运行别名上,将显式端口号更改为{$ port_num}以获取kill别名。

正如弗拉德所说,很难从你的解释中知道浏览器中发生了什么。如果你是sunspot的新手,可以抓住你的一件事是你需要在开发环境中运行一个实例(使用sunspot_run_dev别名),然后再尝试CRUD数据库中的任何东西,否则你会得到连接拒绝错误。

请参阅bash aliases not recognized by a bash function: sunspot_rails, jruby, rspec以获取更多故障排除功能,以包装需要太阳黑子的命令。

答案 2 :(得分:0)

对于佣金问题:

gem install sunspot -v 1.2.rc4

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

  • 如果没有返回结果:

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

中记录请求
  • 错误(哪个?)