我使用标准分析器存储文本以及用于搜索的同一分析器
以下是搜索文字的代码:
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);
答案 0 :(得分:0)
尝试使用'\'
转义字符。 '-'
将为'\-'
。
来自http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Escaping%20Special%20Characters
Lucene支持转义属于查询语法的特殊字符。当前列表的特殊字符是
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
要逃避这些角色,请在角色前使用\。例如,要搜索(1 + 1):2,请使用查询:
\(1\+1\)\:2