Come menzionato da Jason, è possibile chiamare Sunspot.commit_if_dirty
per inviare un commit dal proprio client.
Dal lato della configurazione del server, un altro approccio sarebbe quello di impostare la proprietà autoCommit
nel proprio solrconfig.xml
per emettere commit automaticamente quando sono state apportate modifiche all'indice. A maxTime
di 60000 ms (un minuto) dovrebbe essere sufficiente per la maggior parte dei siti.
L'utilizzo di autoCommit
è probabilmente la scelta più saggia nelle applicazioni di produzione, in cui un elevato volume di commit può facilmente influire sulle prestazioni del server Solr. In effetti, è una buona pratica con Sunspot a disabilitare il suo auto_commit_after_request option
quando il tuo sito inizia a ricevere una quantità decente di aggiornamenti.
Infine, autoCommit
ha il vantaggio di essere in grado di impostarlo e dimenticarlo.
Al Websolr, il nostro valore predefinito è di ignorare i commit emessi dal client in favore di autoCommit
.
fonte
2010-12-13 02:01:19
potresti aggiungere alcune parole chiave migliori a queste domande in modo da ottenere una migliore copertura? – Danny
Non penso che questa domanda sia molto ben formulata, né le soluzioni. Per uno, l'utente ovviamente usa 'sunspot_rails', non solo 'sunspot'. Per due, le risposte suggerite discutono cose che sono discutibili a causa delle impostazioni di sunspot predefinite di sunspot_rails. – nessur
Mi interessa anche un test rspec per il commit del modello, per assicurarmi che funzioni. –