我真的需要在每次部署时重新启动 Sphinx 吗?

Do I really need to restart Sphinx on each deploy?

我目前正在使用 Sphinx with ThinkingSphinx gem Rails。

我正在通过 cron 使用带有计划索引的增量索引。问题是,对于每次部署,我都会重新启动 searchd 进程。我每天部署大约 5 次,每次我都无法接受搜索失败。真的有必要每次都重启sphinx吗?当然,有一种方法可以实现不停机吗?

顺便说一下,我正在使用 Engineyard and this particular cookbook from EY, Thinking Sphinx 3 Cookbook

它有点旧,它说了以下内容:

You will also need to add a deploy hook to restart Sphinx on deploy.

有什么想法吗?是否有更多更新的 Sphinx 食谱?

EngineYard 文档确实已经过时了。正如 Barry 在评论中提到的,如果您以某种方式更改了 Sphinx 配置,则只需要重新启动 Sphinx。

Thinking Sphinx 文档曾经建议重新启动 - 这也许就是 EY 文档提出相同建议的原因 - 但这仅适用于您没有为 Sphinx 使用共享路径的情况。特定于部署的路径(以前的方法)意味着 Sphinx 文件在每次部署时都位于不同的位置,因此需要重新启动才能使用最新的发布目录。不过,共享路径意味着 Sphinx 文件始终位于同一位置,与特定部署无关,因此您无需每次都重新启动。