lucene 自定义分词器

1月 25, 2019 |

基于lucene-core 4.10.3接口, 亲测ok

假设要自定义一个keyword分词器,以省、市、县、镇、区将地址分词。
1、扩展Tokenizer 实现自定义的分词器MyKeywordTokenizer,主要待实现的方法有
a)incrementToken()。 没有term时return false, 否则return true并将term的字符拷贝到CharTermAttribute中, 将该词的偏移量拷贝到OffsetAttribute,OffsetAttribute的另一个名字叫做term vector, 主要用于词组的高亮。
b)reset()。 reset重置该类的状态,必须要调用super.reset不然状态不一致。

2、protected createComponents 创建TokenStreamComponents对象, Analyzer 很多时候是Tokenizer+Filter的包装类,比如分完词后进行同义词处理等。

当手动操作TokenStream时,记得调用reset和close方法

Posted in: Lucene

Comments are closed.