Lucene没有搜索有' - '的单词

时间:2011-12-21 15:03:48

标签: c# .net lucene

我使用标准分析器存储文本以及用于搜索的同一分析器

以下是搜索文字的代码:

        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);

1 个答案:

答案 0 :(得分:0)

尝试使用'\'转义字符。 '-'将为'\-'

来自http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Escaping%20Special%20Characters

Lucene支持转义属于查询语法的特殊字符。当前列表的特殊字符是

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

要逃避这些角色,请在角色前使用\。例如,要搜索(1 + 1):2,请使用查询:

\(1\+1\)\:2