配置Thinking Sphinx和Flying Sphinx时出现错误

11

我有一个运行在Heroku上的Rails 3应用程序。我将Thinking Sphinx搜索引擎引入了我的应用程序中。为了使其能够在Heroku上正常工作,我按照Heroku文档中的建议在gemfile中添加了flying-sphinx gem。

这是我gemfile中的内容

gem 'thinking-sphinx', '2.0.11' 
gem 'flying-sphinx',   '0.7.0'
根据这里提到的步骤 https://devcenter.heroku.com/articles/flying_sphinx, 在添加了 flying-sphinx addon 后 (Heroku addons:add flying_sphinx:wooden), 当我运行 heroku run flying-sphinx configure 时,出现以下错误:

/app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/sphinx_configuration.rb:2:in 'initialize': uninitialized constant FlyingSphinx::SphinxConfiguration::ThinkingSphinx (NameError)
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:31:in 'new'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:31:in 'configure'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:20:in 'block in run'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:20:in 'each'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:20:in 'all?'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/lib/flying_sphinx/cli.rb:20:in 'run'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.0/bin/flying-sphinx:5:in ''
    from vendor/bundle/ruby/1.9.1/bin/flying-sphinx:19:in 'load'
    from vendor/bundle/ruby/1.9.1/bin/flying-sphinx:19:in ''
然后我无法继续进行。

看起来 flying_sphinx 现在已经更新到了 0.8.5 版本(或者是 0.7.1)。您可以尝试更新一下这个 gem,看看效果如何。 - Bert Goethals
我有完全相同的问题。有人想到了解决方法吗? - Laurent
2个回答

1

我在Rails 3中的工作Gemfile设置如下:

gem 'thinking-sphinx', "~> 2.0.10", require: 'thinking_sphinx'
gem 'flying-sphinx',   '0.8.4'

or

# sphinx 
gem 'thinking-sphinx', '3.0.3'
gem 'flying-sphinx', '1.0.0'

1

仅回答原问题 - 根据堆栈跟踪,看起来您正在使用飞行猫 Sphinx 0.8.0版本 - 这显然是有缺陷的,因此需要使用更新的版本。希望您遵循Bert的建议并尝试使用0.8.5版本(Rails 2.3的最新版本为0.7.1)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接