【发布时间】:2009-10-21 02:39:21
【问题描述】:
当我的输入字符串包含像 c++ 这样的术语时,如何确保 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));,但它仍然不起作用。这是执行并返回零命中的查询。 "+(())"
谢谢。
【问题讨论】:
标签: lucene lucene.net