2017-07-04 1 views
0

私はThinkingSphinxのデルタベースのインデックスをリアルタイムのものに変換しようとしています。サンウ、ThinkingSphinxリアルタイムインデックスを使ってレコードを破棄する場合

after_save ThinkingSphinx::RealTime.callback_for(:location)

レコードを追加して更新するだけで正常に動作:ドキュメントごとに、私はこのコールバックを追加しました。私の問題は、Railsドキュメントによれば、after_saveコールバックを引き起こさないレコードを削除することです。私はこれを私のスフィンクスインデックスから削除されないレコードを削除することで確認しました。

私は

after_destroy ThinkingSphinx::RealTime.callback_for(:location)

を試してみました。しかし、これは(リアルタイムのコールバックがafter_destroyをサポートしていないとして)エラーが発生します。

リアルタイムインデックスを使用しているときにインデックスからエントリを削除するにはどうすればよいですか?スフィンクスを考える

thinking-sphinx 3.3.0rails 5.0.4、それは場合に役立ちます)

答えて

1

は、自動的にすべてのインデックス付きのモデルに独自のafter_destroyコールバックを追加しますので、リアルタイムのインデックスからこれらのレコードの除去は、あなたが任意のコードを追加する必要なしに起こるべき。

+0

ありがとうございます(このタグを監視していただきありがとうございます)。 'after_save'コールバックが必要ですか、それとも自動的に追加されますか? –

+0

after_saveは自動的に呼び出されないため、コード内に保持する必要があります。おそらく、私がもう一度時間を過ごせば、after_destroyも(アプリのコードを無謀に侵入するよりも明示的なルートを取っている)どちらでもないだろう。 – pat

+0

ドックには私が取り組むことができるレポがあるようには見えませんが、ドキュメント内のメモでさえ遠くになってしまいます。私の開発ログは、私が破壊を行うと、特にSphinxのクエリを表示しません。 –

関連する問題