Pregunta Lucene.Net QueryParser lanza una IOException (leer eof pasado)


Tengo el siguiente código, donde paso un valor de búsqueda y un analizador:

private static Query Query(string searchValue, StandardAnalyzer analyzer)
{
    var queryParser = new QueryParser(Version.LUCENE_30, "Data", analyzer);
    return queryParser.Parse(searchValue);
}

La excepción está siendo lanzada en el método Parse.

Los resultados se están devolviendo correctamente, por lo que todo funciona bien; Es solo esa molesta excepción. ¿Debo ignorarlo? ¿Es un comportamiento predeterminado de Lucene.Net? Estoy usando la versión 3.0.3.

Encontró esta publicar antes, sin embargo, ninguno de los puntos mencionados en la respuesta se aplican. El índice no está dañado; se verificó en Luke.Net y por la clase CheckIndex de Lucene. No hay ningún problema con el permiso de escritura, ya que puedo escribir en el índice y nada más está usando los archivos de índice.


5
2017-09-18 10:48


origen


Respuestas:


Tanto Lucene como Lucene.net han sido diseñados con excepciones que determinan el flujo de control del código. Verás excepciones por todas partes cuando se ejecuten los símbolos del depurador. Sin embargo, las excepciones deben aislarse y manejarse dentro de la biblioteca. Si tiene excepciones que no se manejan y arroja errores en su UI, entonces eso es un problema.

De hecho, eliminé algunas excepciones en Lucene en escenarios muy específicos y obtuve una gran mejora en el rendimiento ... pero estoy seguro de que no es recomendable.


8
2017-09-20 05:12



Lucene.NET (en el momento de la versión 3.0.3) usaba IOExceptions para administrar varias partes del flujo del analizador. Esto tuvo un impacto negativo en el rendimiento (hasta 90 ms en mi máquina de desarrollo).

Una buena noticia es que la versión actualmente está en su repositorio de código fuente en http://lucenenet.apache.org/community.html Parece haber eliminado las excepciones específicas que estaban causando esto. Ciertamente para mí, esto ha mejorado mucho el rendimiento. Espero que esto ayude.


3
2017-07-22 20:32