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

标签 c# lucene.net

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

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/

相关文章:

c# - 使用 GetInvocationList 取消订阅事件处理程序

c# - 在Dockerfile中公开具有不同名称的环境变量

c# - Windows 服务循环 - 如何?

java - lucene只能排序搜索什么都不行吗?

c# - 避免在处理控件时调用 Invoke

c# - 创建安装程序,错误文件夹路径 '.' 包含无效字符

.net - 是否可以合并 Lucene.NET 索引

c# - 使用 Lucene.NET 和 C# 对 blob 内的数据建立索引

.net - memcached 或 lucene.net 与 nhibernate

Lucene.Net 赋予一个字段比另一个字段更大的权重