如何使用acts_as_ferret重建索引?

发布于 2024-10-06 06:17:47 字数 91 浏览 5 评论 0原文

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

ferret,那么有什么好的方法让它自动更新吗?谢谢!

I am using acts_as_ferret(0.4.3) to do full-text searching, but when update index I need to restart

ferret, so is there any good method to make it update automatic? thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一笔一画续写前缘 2024-10-13 06:17:48

我得到了答案

# 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 任务,确保将环境设置为“生产”:

cd /rails_app && rake ferret_index RAILS_ENV=production 

I got the answer

# 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 

This task is simplified: I'm telling it to rebuild the entire index each hour. I'm guessing when my dataset gets big enough, this will be really slow. In that case I'll need to track all the model instances that got updated in the past hour and just index those.

Finally, I needed a cron job to run the rake task, making sure to set the environment to "production":

cd /rails_app && rake ferret_index RAILS_ENV=production 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文