C# Lucene没有搜索具有'-';
我使用标准分析器来存储文本,也使用相同的分析器进行搜索 以下是用于搜索文本的代码:C# Lucene没有搜索具有'-';,c#,.net,lucene,C#,.net,Lucene,我使用标准分析器来存储文本,也使用相同的分析器进行搜索 以下是用于搜索文本的代码: Analyzer analyzer = GetAnalyzer(); QueryParser parser = new QueryParser("Text", analyzer); parser.SetAllowLeadingWildcard(true); Query query; que
Analyzer analyzer = GetAnalyzer();
QueryParser parser = new QueryParser("Text", analyzer);
parser.SetAllowLeadingWildcard(true);
Query query;
query = parser.Parse(finalSearch);
Hits hits = searcher.Search(query);
下面是我如何存储文本的代码:
fieldText = new Field("Text", text.ToLower(), Field.Store.YES, Field.Index.TOKENIZED);
document.Add(fieldText);
尝试使用
'\'
转义字符<代码>'-'将是'\-'
从
Lucene支持转义作为查询语法一部分的特殊字符。当前列表中的特殊字符为
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
要转义这些字符,请在字符前使用\。例如,要搜索(1+1):2请使用以下查询:
\(1\+1\)\:2
请说明问题。也许可以举个例子。我正在使用QueryParser.Escape(“Hello-Break”),它会返回我“Hello-Break”,但当我执行QueryParser.Parse(“Hello-Break”)时,它会删除该backslack…知道吗?您是否在程序中手动输入第二条语句?尝试QueryParser.Parse(@“Hello \-Break”);传递一个普通字符串?它仍然没有返回任何结果:(你能发布完整的代码示例吗?你在问题中发布的代码示例中没有-)。