我正在使用Lucene.Net(版本2.9)。我想保留推文'@name'或'#Note'。在Lucene.Net中令牌化標籤#
使用Lucene AnalyzerViewer工具(http://www.codeproject.com/KB/cs/lucene_analysis.aspx?msg=3326095#xx3326095xx)查看不同分析器產生的令牌。
例如,從本文產生的令牌:「#注意:運動,活得更長。」
- 空白分析:#Note:] [鍛鍊; Tibial,] [於] [直播] [更長。]
- 標準分析儀:[注] [鍛鍊; Tibial] [生活] [長]
- 簡單分析器:[note] [練習] [to] [live] [更長]
'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] [longer。]
任何建議使用過濾器,其中'#','@'標記保留並刪除標點符號?
在此先感謝。
感謝您的建議。將密切關注PatternAnalyzer的.Net端口。與此同時,我們正在考慮提取tweet帖子(即'@name','#Note'等)並存儲在單獨的Lucene字段並使用Whitespace Analyzer的解決方法。 – user707501 2011-04-17 23:51:24
不客氣!如果它還不存在,我建議你將自己的端口寫入.net。它只會是幾行代碼;) – csupnig 2011-04-18 14:32:21