5

私は、リモートサーバ上の1つ以上のサーバ、postgresqlデータベース、およびSphinx検索インデックス上に、単純な複数層のRails 3.1セットアップ(ウェブアプリケーションの設定)を進めています。デルタインデックスを持つリモートデータベースサーバー上のThnkingSphinx(sphinxd)?

私たちはThinkingSphinxとデルタインデックス(delayed_jobを使用)を使用しており、夜間のcronを使用してメインインデックスを更新しています。よく働く。

so:ユーザーがインデックス可能なコンテンツを作成します。アプリはdelayed_jobに更新のスケジュールを指示します。 delta-indexerは新しいコンテンツをdelta-indexに追加します。検索は検索クエリを適切に解決するために両方を検索します。夜間の仕事は単一の主要な索引を作り直す。

ThinkingSphinxのドキュメントがhere near the bottom

を言う最善のアプローチは、スフィンクス、すべてのマシン上で実行しているデータベースや遅延ジョブ処理タスクを持つことです。

しかし、遅延ジョブプロセスに必要な情報を単一のサーバーに送信して実行する方法が不明です。私は共有ファイルシステムを持っていることについていくつかのことを読んできました。私はまだコードを読んでいないが、多分簡単な方法がある?

ここに期待しています!

答えて

4

DB/Sphinxサーバで実行されている遅延作業者は、Railsアプリケーションのコンテキスト内でデータベースを参照しています。そのため、DB/Sphinxサーバにもアプリケーションが必要ですが、 DJワーカー

アプリサーバーの観点から見ると、TSは通常どおりにジョブレコードをデータベースに追加します。

あなたはまた、次の設定を設定することをお勧めします - これはあなたのconfig/application.rbの終わりに行く:

ThinkingSphinx.remote_sphinx = Rails.env.production? 

そして、あなたのconfig/sphinx.ymlにスフィンクスのバージョンを追加します。

production: 
    version: 2.0.1-beta 
+0

ありがとう@pat。新しい索引付け可能なコンテンツ(電子メールの送信など)を作成するときに、他のものに対してdelayed_jobを実行しているため、これは遅延デルタ索引付けが行われた場所であるという考えがありました。もちろん、そうではありません。バンドルexec rake ts:ddは、デルタ索引付けが行われる場所です。これを遅らせ、遅らせた。私はcornfusedを得ました:-)ありがとう! –

関連する問題