Question

Alors chaque matin pour démarrer mon serveur, je dois faire les tâches suivantes ..

>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server

Est-il possible que je peux faire un raccourci dans mon ~ / .profile comme un alias pour effectuer tout cela pour moi sans me taper tous les jours?

Comme cela si ça ne fonctionne pas?

alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
Était-ce utile?

La solution

Peut-être que cela va soulager une partie de la douleur?

#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
  Organization.reindex
  Event.reindex
  Deal.reindex
end

Alors chaque course matinale

> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server

Autres conseils

Ceci est mon premier post StackOverflow et c'est une vieille question, mais je sentais que je pouvais contribuer en quelque sorte: D La reconstruction de l'index Solr est périodiquement une tâche très coûteuse, vous devriez éviter de faire des choses comme ça dans la production! Ce que vous cherchez peut être mieux réalisé de trois façons:

1 - modifier vous sunspot.yml et ajoutez la ligne

auto_commit_after_request = true

Ceci va dire de mettre à jour sunspot l'index chaque une nouvelle entrée de modèle est enregistré (ou supprimé). Cela permet de garder votre index mis à jour, mais peut être coûteux.

2 - créer une tâche de râteau (peut être exécuté avec Cron dans un travailleur DelayedJob) comme ceci

task :update_index => :environment do
Sunspot.commit_if_dirty
end

Ceci est beaucoup moins cher que de faire une livraison après chaque mise à jour du modèle, mais gardez à l'esprit que cela pose le problème de la cohérence éventuelle à l'index, ce qui est bien pour ajoute, mais peut être méchant pour supprime: il va générer des entrées orphelines dans votre index. Ceci est également un problème avec la troisième façon de résoudre ce problème ->

3 - modifier votre fichier solrconfig.xml et définissez la fonction autoCommit avec un maxTime un intervalle arbitraire entre commits (souvenez-vous d'utiliser des temps en millisecondes). 5 minutes serait bien pour la plupart des applications, mais vous devez tester vous-même.

Hope this helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top