Comme mentionné par Jason, vous pouvez appeler Sunspot.commit_if_dirty
pour émettre un commit de votre client. Du côté de la configuration du serveur, une autre approche consiste à définir la propriété autoCommit
dans votre solrconfig.xml
pour émettre automatiquement des validations lorsque des modifications ont été apportées à votre index. Un maxTime
de 60000 ms (une minute) devrait suffire pour la plupart des sites. L'utilisation de autoCommit
est probablement le choix le plus judicieux dans les applications de production, où un volume élevé de validations peut facilement affecter les performances de votre serveur Solr. En fait, c'est une bonne pratique avec Sunspot pour désactiver son auto_commit_after_request option
lorsque votre site commence à obtenir une quantité décente de mises à jour.
Enfin, autoCommit
a l'avantage de pouvoir le régler et l'oublier.
A Websolr, notre défaut est d'ignorer les commits émis par le client en faveur de autoCommit
.
pourriez-vous ajouter quelques meilleurs mots-clés à ces questions afin qu'il soit mieux accessible? – Danny
Je ne pense pas que cette question soit très bien formulée, pas plus que les solutions. D'une part, l'utilisateur utilise évidemment 'sunspot_rails', pas seulement 'sunspot'. Pour deux, les Réponses ont suggéré de discuter des choses qui sont sans intérêt en raison des paramètres de taches solaires par défaut de sunspot_rails. – nessur
Je suis également intéressé par un test rspec pour les validations de modèles, pour s'assurer qu'il fonctionne. –