3

act_as_ferret(0.4.3) を使用して全文検索を行っていますが、インデックスを更新するときに再起動する必要があります

フェレット、それを自動更新させる良い方法はありますか? ありがとう!

4

1 に答える 1

2

私は答えを得た

# ferret_index.rake
desc "Updates the ferret index for the application."
task :ferret_index => [ :environment ] do | t |
  MyModel.rebuild_index
  # here I could add other model index rebuilds
  puts "Completed Ferret Index Rebuild"
end 

このタスクは単純化されています。1 時間ごとにインデックス全体を再構築するように指示しています。データセットが十分に大きくなると、これは非常に遅くなると思います。その場合、過去 1 時間に更新されたすべてのモデル インスタンスを追跡し、インデックスを作成する必要があります。

最後に、rake タスクを実行するための cron ジョブが必要でした。環境を必ず「運用」に設定してください。

cd /rails_app && rake ferret_index RAILS_ENV=production 
于 2010-12-05T15:13:53.027 に答える