Según lo mencionado por Jason, puede llamar al Sunspot.commit_if_dirty
para emitir un compromiso de su cliente.
Desde el lado de la configuración del servidor, otro enfoque sería establecer la propiedad autoCommit
en su solrconfig.xml
para emitir automáticamente confirmaciones cuando se hayan realizado cambios en su índice. Un maxTime
de 60000 ms (un minuto) debería ser suficiente para la mayoría de los sitios.
El uso de autoCommit
es probablemente la opción más inteligente en las aplicaciones de producción, donde un gran volumen de confirmaciones puede afectar fácilmente el rendimiento de su servidor Solr. De hecho, es una buena práctica con Sunspot para deshabilitar es auto_commit_after_request option
cuando su sitio comienza a obtener una buena cantidad de actualizaciones.
Por último, autoCommit
tiene la ventaja de poder configurarlo y olvidarlo.
En Websolr, nuestro valor predeterminado es ignorar los commits emitidos por el cliente a favor de autoCommit
.
¿podría agregar algunas mejores palabras clave a estas preguntas para que tenga un mejor alcance? – Danny
No creo que esta pregunta esté muy bien redactada, ni tampoco las soluciones. Por un lado, el usuario obviamente está usando 'sunspot_rails', no solo' sunspot '. Para dos, las respuestas sugirieron discutir cosas que son discutibles debido a las configuraciones de manchas solares predeterminadas de sunspot_rails. – nessur
También estoy interesado en una prueba rspec para confirmaciones de modelo, para asegurarme de que está funcionando. –