1

我正在将我的网站推送到 heroku 并且遇到了飞行狮身人面像的问题。

我在开发中实现了一个有效的 Thinking-Sphinx 搜索功能。它工作得很好。我获得了飞行狮身人面像。但是,当我运行时:

heroku run flying-sphinx configure

我收到以下错误消息:

Connecting to database specified by DATABASE_URL
/app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/sphinx_configuration.rb:24:in `content': undefined method `generate' for #<ThinkingSphinx::Configuration:0x00000004648e90> (NoMethodError)
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/sphinx_configuration.rb:8:in `upload_to'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/cli.rb:32:in `configure'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/cli.rb:20:in `block in run'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/cli.rb:20:in `each'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/cli.rb:20:in `all?'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/lib/flying_sphinx/cli.rb:20:in `run'
    from /app/vendor/bundle/ruby/1.9.1/gems/flying-sphinx-0.8.5/bin/flying-sphinx:5:in `<top (required)>'
    from /app/bin/flying-sphinx:19:in `load'
    from /app/bin/flying-sphinx:19:in `<main>

以下是我使用的版本:

Rails 3.2.11
Thinking-Sphinx 3.0.2
Flying-Sphinx 0.8.5
MySQL2 0.3.12

(我的数据库在 PostGresql 上运行 - MySQL2 仅用于 Sphinx)

4

1 回答 1

3

我已经在其他地方与 Laurent 一起解决了这个问题,但它的核心是:flying-sphinx 的 gem 版本(最高 0.8.5)不支持 Thinking Sphinx v3。我确实为此准备了一些东西,只是等待其他依赖项合并一些提交并发布他们自己的 gem 更新。

同时,您可以通过 git 使用最新最好的(这将适用于 v1/v2/v3 的 Thinking Sphinx 的最新版本):

gem 'pusher-client',
  :git    => 'git://github.com/pat/pusher-ruby-client.git',
  :branch => 'catch-io',
  :ref    => '608cc28d1a'
gem 'flying-sphinx',
  :git    => 'git://github.com/flying-sphinx/flying-sphinx.git',
  :branch => 'master',
  :ref    => 'e1395e724a'

如果您使用的是 Ruby 1.8.7,您还需要以下 gem 来覆盖标准库中 OpenSSL 的一些限制:

gem 'openssl-nonblock', '0.2.1'
于 2013-04-05T00:53:22.343 回答