发布自己写的Lucene中文分析器–NGramAnalyzer

Gavin [搜索引擎/SEO]

2008.11.15

毕业设计期间,因需要自己写了一个基于Lucene的中文分析器NGramAnalyzer,它包括三个类,分别是:
NGramAnalyzer
NGramFilter
NGramTokenizer
该分析器基于ChineseAnalyzer而实现,但不同于ChineseAnalyzer和车东写的CJKAnalyzer, NGramAnalyzer不仅仅支持“切字”和“切二字词”,它可以支持任意长度词的切分。这点特性使得NGramAnalyzer特别适合做 NGram的中文分析。事实上,它也是我为了做NGram的中文分析而特意写的(因此,也把它的名字取为“NGram*”的形式)。这里特拿出来跟大家分享!希望对有兴趣的朋友有点点帮助,也希望大家能多给我意见,让我可以做更多的改进,^_^
这里,把这NGramAnalyzer的三个类贴出来。在每个类的编写过程中,我都做了很详细的注释,读者应该比较容易看明白。
下面是第一个类,也是最主要的一个类:NGramTokenizer。


全文检索引擎工具包Lucene源码分析--analysis包

Gavin [搜索引擎/SEO]

2008.11.15

我的毕业设计是基于全文检索引擎工具包Luncene的analysis包而实现的,期间查看了该包的源码并作了一些分析,现在贴出来以供参考。
注:这里分析的只是analysis包的一些基本类,而不是全部。
1、Token类: