我有以下代码,我在其中传递了一个搜索值和一个分析器:
private static Query Query(string searchValue, StandardAnalyzer analyzer)
{
var queryParser = new QueryParser(Version.LUCENE_30, "Data", analyzer);
return queryParser.Parse(searchValue);
}
在 Parse 方法中抛出异常。
结果被正确返回,所以一切正常;这只是那个烦人的异常(exception)。我应该忽略它吗?这是 Lucene.Net 的默认行为吗?我使用的是 3.0.3 版。
找到 this之前发布,但是答案中提到的所有要点均不适用。索引未损坏 - 在 Luke.Net 和 Lucene 的 CheckIndex 类中检查。写权限没有问题,因为我可以写入索引,没有其他东西正在使用索引文件。
最佳答案
Lucene 和 Lucene.net 都设计有确定代码控制流的异常。当调试器符号运行时,您会看到到处都是异常。但是,应该在库内部隔离和处理异常。如果您有未处理的异常并在您的 UI 中抛出错误,那么这就是一个问题。
我实际上在非常具体的场景中删除了 Lucene 中的一些异常,并获得了巨大的性能改进......但我确信不推荐这样做。
关于c# - Lucene.Net QueryParser 抛出 IOException(读取过去的 eof),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18870181/