遇到“<EOF>”Lucene.net 3.0.3 QueryParser 错误
Encountered "<EOF>" Lucene.net 3.0.3 QueryParser Error
当搜索文本在短语末尾包含 'AND' 时出现错误。
搜索查询:"Text AND"
private static Query parseQuery(string searchQuery, QueryParser parser)
{
Query query;
try
{
query = parser.Parse(searchQuery.Trim());
}
catch (ParseException e)
{
query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
}
return query;
}
更新它涵盖了我的所有场景。
我的问题已解决。当我得到异常时,我将搜索查询替换为小写字母。
searchQuery:"Text AND"
将其替换为小写字母后,它将如下所示:
searchQuery:"text and"
它适用于我的情况,涵盖了我所有的场景。
private static Query parseQuery(string searchQuery, QueryParser parser)
{
Query query;
try
{
query = parser.Parse(searchQuery);
}
catch (ParseException e)
{
query = null;
}
if (query == null)
{
string replacedQuery;
cooked = Regex.Replace(searchQuery, @"\B[A-Z]", m => "" + m.ToString().ToLower());
cooked = Regex.Replace(cooked, "[^a-zA-Z0-9]+", " ");
query = parser.Parse(replacedQuery);
}
return query;
}
现在此解决方案适用于以下查询类型:
- "Text +"
- "Text =" 注意:字符串末尾的任何特殊字符。
- "Text AND" 注意: 字符串末尾的任何布尔运算符。
"Text AND Data"
注意: 其余查询语法作为 lucene.net 提供所有查询语法(即短语语法、布尔运算符语法、通配符查询)
当搜索文本在短语末尾包含 'AND' 时出现错误。
搜索查询:"Text AND"
private static Query parseQuery(string searchQuery, QueryParser parser)
{
Query query;
try
{
query = parser.Parse(searchQuery.Trim());
}
catch (ParseException e)
{
query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
}
return query;
}
更新它涵盖了我的所有场景。
我的问题已解决。当我得到异常时,我将搜索查询替换为小写字母。
searchQuery:"Text AND"
将其替换为小写字母后,它将如下所示:
searchQuery:"text and"
它适用于我的情况,涵盖了我所有的场景。
private static Query parseQuery(string searchQuery, QueryParser parser)
{
Query query;
try
{
query = parser.Parse(searchQuery);
}
catch (ParseException e)
{
query = null;
}
if (query == null)
{
string replacedQuery;
cooked = Regex.Replace(searchQuery, @"\B[A-Z]", m => "" + m.ToString().ToLower());
cooked = Regex.Replace(cooked, "[^a-zA-Z0-9]+", " ");
query = parser.Parse(replacedQuery);
}
return query;
}
现在此解决方案适用于以下查询类型:
- "Text +"
- "Text =" 注意:字符串末尾的任何特殊字符。
- "Text AND" 注意: 字符串末尾的任何布尔运算符。
"Text AND Data"
注意: 其余查询语法作为 lucene.net 提供所有查询语法(即短语语法、布尔运算符语法、通配符查询)