Как перестроить индекс с acts_as_ferret? - PullRequest
3 голосов
/ 05 декабря 2010

Я использую act_as_ferret (0.4.3) для полнотекстового поиска, но при обновлении индекса мне нужно перезапустить

ferret, так есть ли хороший способ сделать автоматическое обновление?спасибо!

1 Ответ

2 голосов
/ 05 декабря 2010

Я получил ответ

# 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 
...