ここ数日、オートコンプリート機能のバックエンドを強化するために、Sphinx に慣れてきました。何人かの SO ユーザー (BarryHunter が最も役に立ちます) のおかげで、いくつかのインデックス、デルタ インデクサーなどを備えた完全に機能するセットアップができました。
あとは、デルタの再インデックス作成とコア インデックスへのマージを実行する自動化方法を決定するだけです。
私の意図は、デルタ インデックスを 5 分ごとに更新し、コア インデックス/デルタ インデックスを 24 時間ごとにマージすることです。
私の理解では、これは最も単純な形式で、cron ジョブを設定することによって達成されます。ただし、完了までにかかる時間について 100% の確信が持てない場合に cron ジョブを実行するのは本当に嫌いです。インデックスは非常に急速に成長するため、再インデックスの cron ジョブに対処しなければならず、すべてが停止してしまうことは避けたいと考えています。
このため、私は Gearman がワークロードをより効果的に管理することを検討していることに気付きました。
経験豊富な sphinx ユーザー (特に、gearman を使用して同様のセットアップを実行したことがある場合) から知りたいことは次のとおりです。
- 手始めに、これは良い考えですか?
- これは必要ですか (2,000 万行を超えるインデックスは、完了するまでに 5 分以上かかりますか)
- Gearman を使用したことがない場合、注意すべき落とし穴はありますか?
- リアルタイムの属性変更を管理するために Gearman を使用するのはどうですか? 即時のインデックス削除などを提供するために。
したがって、これは、この種のセットアップに関する特定の質問 (許可されていることを願っています) ではなく、一般的なアドバイスの質問です。今後 24 時間かけて Gearman とやり取りして、Sphinx インデックスを管理するための適切なソリューションではないことに気付くよりも、ここで質問したいと思います。
注: この 1 時間、正確な設定に関する情報を探していましたが、ほとんど見つかりませんでした。したがって、SOでここに質問する理由です。
提供されたアドバイスを事前に感謝します。