C# Lucene.net 3.0.3意外的语法异常

C# Lucene.net 3.0.3意外的语法异常,c#,lucene,lucene.net,C#,Lucene,Lucene.net,我使用RamDirectory实现了一个搜索。目录被填充一次,并且从那里开始只读取 有时我会遇到无法解释的错误(见下文)。大多数时候,他们说查询无法解析,但是查询venlo或venlo*看起来很适合这种情况 我也不明白“marburg”是什么意思,因为marburg是索引中的一个值,但它不是查询的一部分 Lucene.Net.QueryParsers.ParseException: Cannot parse 'venlo OR venlo\*': Encountered " <TERM

我使用RamDirectory实现了一个搜索。目录被填充一次,并且从那里开始只读取

有时我会遇到无法解释的错误(见下文)。大多数时候,他们说查询无法解析,但是查询venlo或venlo*看起来很适合这种情况

我也不明白“marburg”是什么意思,因为marburg是索引中的一个值,但它不是查询的一部分

 Lucene.Net.QueryParsers.ParseException: Cannot parse 'venlo OR
 venlo\*': Encountered " <TERM> "marburg "" at line 1, column 0. Was
 expecting one of: <NOT> ... "+" ... "-" ... "(" ... "*" ... <QUOTED>
 ... <TERM> ... <PREFIXTERM> ...
我的代码如下所示

 private static Query ParseQuery(string searchQuery, Analyzer analyzer)
 {
    var parser = new MultiFieldQueryParser(global::Lucene.Net.Util.Version.LUCENE_30, new[] { "SimpleName", "SimpleNativeName" }, analyzer)
    {
        FuzzyMinSim = 0.3f,
        AllowLeadingWildcard = false,
        MultiTermRewriteMethod = MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE
    };

    Query query;

    try
    {
        query = parser.Parse(searchQuery.Trim());
    }
    catch (Exception)
    {
        query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
    }
    return query;
}

作为输入,该方法得到venlo或venlo*
SimpleAnalyzer

当您将
venlo或venlo*
作为搜索字符串传递时,您的意图是什么?搜索以字符串开头或包含该字符串的城市。为什么?查询格式有问题吗?第二次运行时,查询成功,因此我可以假设问题不应该与查询本身有关。我查看了日志,发现查询nice~中还有一个错误条目。当您将
venlo或venlo*
作为搜索字符串传递时,您的意图是什么?搜索以字符串开头或包含该字符串的城市。为什么?查询格式有问题吗?还有第二次运行查询成功,因此我假设问题不应该与查询本身有关。我查看了日志,发现查询nice~中还有一个错误条目。
 private static Query ParseQuery(string searchQuery, Analyzer analyzer)
 {
    var parser = new MultiFieldQueryParser(global::Lucene.Net.Util.Version.LUCENE_30, new[] { "SimpleName", "SimpleNativeName" }, analyzer)
    {
        FuzzyMinSim = 0.3f,
        AllowLeadingWildcard = false,
        MultiTermRewriteMethod = MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE
    };

    Query query;

    try
    {
        query = parser.Parse(searchQuery.Trim());
    }
    catch (Exception)
    {
        query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
    }
    return query;
}