重写lucene.net的分词器支持3.0.3.0版本
lucene.net中每个分词器都是一个类,同时有一个辅助类,这个辅助类完成分词的大部分逻辑。分词类以Analyzer结尾,辅助类通常以Tokenizer结尾。分类词全部继承自Analyzer类,辅助类通常也会继承某个类。
首先在Analysis文件夹下建立两个类,EasyAnalyzer和EasyTokenizer。
1 using Lucene.Net.Analysis; 2 using System.IO; 3 4 namespace LuceneNetTest 5 { 6 public class EasyTokenizer : CharTokenizer 7 { 8 private TextReader reader; 9 public EasyTokenizer(TextReader reader) 10 : base(reader) 11 { 12 this.reader = reader; 13 } 14 protected override bool IsTokenChar(char c) 15 { 16 //return true; //整行输出 17 //return c != ','; //逗号分隔 18 return c != ' '; //空格划分 19 } 20 } 21 }
1 using Lucene.Net.Analysis; 2 using System.IO; 3 4 namespace LuceneNetTest 5 { 6 public class EsayAnalyzer : Analyzer 7 { 8 public override TokenStream TokenStream(string fieldName, TextReader reader) 9 { 10 return new EasyTokenizer(reader); 11 } 12 } 13 }