2010-12-05 5 views
3

J'utilise acts_as_ferret (0.4.3) pour effectuer une recherche en texte intégral, mais lorsque l'index de mise à jour doit redémarrer, furet, y a-t-il une bonne méthode pour le mettre à jour automatiquement? Merci!Comment reconstruire l'index avec acts_as_ferret?

+0

désolé, il est « reconstruire » – why

+0

vous devriez envisager de passer à la pensée-sphynx , C'est beaucoup mieux –

Répondre

2

J'ai obtenu la réponse

# 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 

Cette tâche est simplifiée: Je dis pour reconstruire l'index entier chaque heure. Je devine quand mon ensemble de données devient assez grand, ce sera vraiment lent. Dans ce cas, j'ai besoin de suivre toutes les instances de modèles qui ont été mises à jour au cours de la dernière heure et de les indexer.

Enfin, il me fallait un travail cron pour exécuter la tâche de coupe, en veillant à mettre l'environnement à la « production »:

cd /rails_app && rake ferret_index RAILS_ENV=production 
Questions connexes