Cuando el código se ejecuta a continuación, supongo que el archivo de palabras vacías se lee del sistema de archivos cada vez que analizo una consulta. En lugar de hacer esto, ¿puedo reutilizar la misma instancia del analizador en lugar de crear uno nuevo? ¿Es seguro para subprocesos? (Después de mucho googlear no puedo encontrar ninguna información sobre este)Lucene.NET, StandardAnalyzer, stopwords y seguridad de hilos
var stopwordsFile = new FileInfo("C:\MyStopWordsFile.txt");
var analyzer = new StandardAnalyzer(stopwordsFile);
var queryParser = new QueryParser("", analyzer);
var query = queryParser.Parse(stringToParse);
Sí, me di cuenta de eso. Me parece extraño que Lucene vuelva a cargar y analizar el archivo de palabras vacías del sistema de archivos para cada consulta. Debido a razones de rendimiento, pero también creo que puede haber problemas de bloqueo del sistema de archivos también cuando 2 hilos leen el archivo al mismo tiempo. Iv también vio muestras donde interpretaría que es posible reutilizar el analizador, aunque la nota en el documento parece contradecir eso. –
@Alex, no habrá bloqueo u otros problemas de acceso si el archivo se abre solo para lectura y no está bloqueado exclusivamente. – zihotki
Sí, eso es cierto, suponiendo que Lucene lo haga de esa manera. Como una nota dice que la clase no es segura para subprocesos, se puede suponer que esa suposición podría ser incorrecta. –