如何使用acts_as_ferret重建索引?

时间:2010-12-05 09:08:15

标签: ruby ferret acts-as-ferret

我使用acts_as_ferret(0.4.3)进行全文搜索,但是当更新索引我需要重新启动时

雪貂,有什么好方法让它自动更新?谢谢!

1 个答案:

答案 0 :(得分: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 

此任务已简化:我告诉它每小时重建整个索引。我猜测当我的数据集变得足够大时,这将非常慢。在这种情况下,我需要跟踪过去一小时内更新的所有模型实例,并将其编入索引。

最后,我需要一个cron作业来运行rake任务,确保将环境设置为“production”:

cd /rails_app && rake ferret_index RAILS_ENV=production