关于Tokenizer与TokenFilter的区别
Lucene Analyzer包含两个核心组件,Tokenizer以及TokenFilter。两者的区别在于,前者在字符级别处理流,而后者则在词语级别处理流。Tokenizer是Analyzer的第一步,其构造函数接收一个Reader作为参数,而TokenFilter则是一个类似拦截器的东东,其参数可以使TokenStream、Tokenizer,甚至是另一个TokenFilter。整个Lucene Analyzer的过程如下图所示:
上图中的一些名词的解释如下表所示:
类 | 说明 |
Token | 表示文中出现的一个词,它包含了词在文本中的位置信息 |
Analyzer | 将文本转化为TokenStream的工具 |
TokenStream | 文本符号的流 |
Tokenizer | 在字符级别处理输入符号流 |
TokenFilter | 在字符级别处理输入符号流,其输入可以是TokenStream、Tokenizer或者TokenFilter |