我正在使用Lucene.Net(版本2.9)。我想保留推文'@name'或'#Note'。
使用Lucene AnalyzerViewer工具(http://www.codeproject.com/KB/cs/lucene_analysis.aspx?msg=3326095#xx3326095xx)查看由不同分析仪生成的令牌。
例如,下面从本文中产生的代币:“#注意:运动,活得更久。”
'Whitespace Analyzer'保留哈希标记。我创建了一个自定义分析器,它使用WhitespaceTokenizer和小写。
自定义分析器代码......
public class CustomAnalyzer : Analyzer
{
public override TokenStream TokenStream(string fieldName, System.IO.TextReader reader)
{
TokenStream result = new Lucene.Net.Analysis.WhitespaceTokenizer(reader);
// Makes sure everything is lower case
result = new LowerCaseFilter(result);
//Return the built token stream.)
return result;
}
}
然而,自定义分析仪会留下标点符号。自定义分析器生成的标记:[#note:] [excercise,] [to] [live] [更长。]
使用过滤器的任何建议,其中'#','@'标签保留并删除了标点符号?
提前致谢。
答案 0 :(得分:0)
在lucene的java版本中有一个PatternAnalyzer,它允许您指定将用于拆分标记的模式。
你可以留意这个分析仪的.net版本或者你自己的端口。