Lucene.Net QueryParser抛出IOException(读取过去的eof)

Jer*_*rry 5 c# lucene.net

我有以下代码,我传递一个搜索值和一个分析器:

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

Parse方法中抛出异常.

结果正确返回,所以一切正常; 这只是一个恼人的例外.我想忽略它吗?它是Lucene.Net的默认行为吗?我正在使用3.0.3版.

之前发现帖子,但答案中提到的所有要点均不适用.索引没有损坏 - 在Luke.Net和Lucene的CheckIndex类中检查.写权限没有问题,因为我可以写入索引,而其他任何东西都没有使用索引文件.

Bar*_*cki 8

Lucene和Lucene.net都设计了Exceptions,用于确定代码的控制流.调试器符号运行时,您将看到异常.但是,应该在库中隔离和处理异常.如果您没有处理异常并在UI中抛出错误,那么这就是一个问题.

我实际上在非常具体的场景中删除了Lucene中的一些例外,并获得了巨大的性能提升......但我确信不建议这样做.