我如何確保當我的輸入字符串包含像C++這樣的術語時,lucene會將相關搜索結果返回給我? Lucene似乎忽略了++字符。在Lucene搜索中處理+作爲特殊字符
代碼詳細信息: 當我執行這一行時,我得到一個空白的搜索查詢。
queryField = multiFieldQueryParser.Parse(inpKeywords);
keywordsQuery.Add(queryField, BooleanClause.Occur.SHOULD);
這裏是我的自定義分析:
public class CustomAnalyzer : Analyzer
{
private static readonly WhitespaceAnalyzer whitespaceAnalyzer = new WhitespaceAnalyzer();
public override TokenStream TokenStream(String fieldName, System.IO.TextReader reader)
{
TokenStream result = whitespaceAnalyzer.TokenStream(fieldName, reader);
result = new StandardTokenizer(reader);
result = new LowerCaseFilter(result);
result = new StopFilter(result, stop_words);
return result;
}
}
而且我執行的搜索查詢是這樣的:
indexSearcher.Search(searchQuery, collector);
我曾嘗試QUERYFIELD = multiFieldQueryParser.Parse(QueryParser.Escape (inpKeywords)),但它仍然不起作用。這是查詢得到執行並返回零命中。 「+(())」
謝謝。
現在用WhiteSpaceAnalyzer只有...但仍然+字符將被忽略 – 2009-10-27 08:33:41