estoy usando lucene para indexar documentos y realizar una búsqueda, después de lo cual, los borro inmediatamente. todo esto puede ser considerado como una acción un tanto atómico que incluye los siguientes pasos:lucene buenas prácticas y seguridad de hilos
índice (escritor) -> de búsqueda (buscador) -> obtener documentos por puntuación (lector) -> docs de borrado (lector)
esta acción puede llevarse a cabo por múltiples procesos simultáneos en el mismo índice (utilizando FSDirectory
).
NOTA IMPORTANTE: cada hilo maneja un conjunto separado de documentos para un hilo no tocará los documentos de otro hilo
para tal fin tengo un par de preguntas:
1) ¿Debo usar un único instancias (para todos los hilos) de IndexWriter
, IndexReader
y IndexSearcher
? (se supone que son seguros para hilos)
2) ¿puede un IndexWriter
manipular un índice mientras y IndexReader
borra documentos? ¿Necesito cerrar uno para que el otro haga lo suyo? es decir, ¿puede un hilo escribir en un índice mientras otro lo elimina (como mencioné anteriormente, puedo garantizar que manejan conjuntos separados de datos)
3) cualquier otra buena práctica y sugerencia que pueda tener será más apreciado.
muchas gracias!
gracias por la rápida y bien escrita respuesta! – levtatarov