Analyzer主要用来分词,一个是对数据的分词,对分析出来的关键词建索引,第二个就是对查询语句分词,使其能更好的匹配,下面就添加一个最简单的analyzer,功能为如果词是"afei",就能形成关键字。。。不是就忽略。。。这个分词器其实已经失去了意义。。。因为只能返回一个词。。。悲哀。。。
Analyzer:在新建 IndexWriter时会传入Analyzer,并调用tokenStream获得相应的tokenStream,我们这里就获得自己定义 的 AfeiCIGenFilter,它就是一个TokenStream.
Filter:
在lucene中会不停的调用incrementToken() 判断是否还有新的词,如果有就放在 termAtt中,这个termAtt是在初始化Filter时添加上去的,呵呵。这样就行了,最简单的分词器。因为我们在AfeiCiGenFilter中传入的tokenStream是LowerCaseTokenizer,所以得到的是已经小写化的英文单词,呵呵,LUCENE这种分析器的设计实在在太漂亮了,好好学习啊,呵呵
使用的时候只需要在新建IndexWriter时传入我们的Analyzer就行了,呵呵
附一段测试 Analyzer和tokenStream的代码,呵呵, 发现相当的有用,哈哈