当我的输入字符串包含像c ++这样的术语时,我如何确保lucene能够返回相关的搜索结果?Lucene似乎忽略了++字符.
代码详细信息:当我执行此行时,我得到一个空白的搜索查询.
queryField = multiFieldQueryParser.Parse(inpKeywords);
keywordsQuery.Add(queryField, BooleanClause.Occur.SHOULD);
Run Code Online (Sandbox Code Playgroud)
这是我的自定义分析器:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在以这种方式执行搜索查询:
indexSearcher.Search(searchQuery, collector);
Run Code Online (Sandbox Code Playgroud)
我确实尝试过queryField = multiFieldQueryParser.Parse(QueryParser.Escape(inpKeywords));,但它仍然无效.这是执行的查询并返回零点击."+(())"
谢谢.
| 归档时间: |
|
| 查看次数: |
4477 次 |
| 最近记录: |