Sphinx 无法在 Heroku 上重新索引

问题描述

我有一个使用以下内容的 Rails 应用程序: 狮身人面像 2.2.11-id64-release (95ae9a6) 思考狮身人面像 4.4.1 飞行狮身人面像 1.2.0

目前我能够成功地在开发中重新索引(rake ts:rebuild)。当我这样做时,我看到它生成了 development.sphinx.conf。当我将其推送到 heroku 上时,我运行相同的命令并得到:

I,[2021-05-26T22:25:17.260156 #4]  INFO -- : [RailsAutoscale] Preparing middleware
D,[2021-05-26T22:25:17.404021 #4] DEBUG -- :    (1.5ms)  SET NAMES utf8,@@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode,',STRICT_ALL_TABLES'),NO_AUTO_VALUE_ON_ZERO'),@@SESSION.sql_auto_is_null = 0,@@SESSION.wait_timeout = 2147483
searchd is not currently running.
D,[2021-05-26T22:25:17.988676 #4] DEBUG -- :    (2.5ms)  SET NAMES utf8,@@SESSION.wait_timeout = 2147483
Generating configuration to /app/config/staging.sphinx.conf
Generating configuration to /app/config/staging.sphinx.conf
sh: 1: indexer: not found

The Sphinx indexing command Failed:
  Command: indexer --config "/app/config/staging.sphinx.conf" --all
  Status:  127
  Output:  See above

There may be more information about the failure in /app/log/staging.searchd.log.

我查找了日志,但找不到。我所知道的是暂存配置文件没有生成。如果有人有任何线索可以帮助我解决这个问题,我将永远感激不尽。

解决方法

我认为您可能遇到的情况是,您使用的 gem 比文档预期的要旧。对于 fly-sphinx v1.x,您需要使用 flying-sphinx 可执行文件而不是带有 ts: 前缀的 rake 任务:heroku run bundle exec flying-sphinx rebuild

如果您升级到 fly-sphinx v2.x,那么您将能够在 Heroku 和本地使用 ts rake 任务。 (是的,从一开始这就是理想的行为,但迟到总比不到好!)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...