Analyer作为数据分析的主要数据模型,他通过TokenStreams分析文本。也可以说它是从文本中提取索引字段的一种策略。为了实现分析的目的,内部采用
TokenStreamComponents组件进行实现。Analyzer本身集成自Closable接口,即调用Close方法,可以释放资源。该对象通过
tokenStream方法获取TokenStream对象。
TokenStream方法的处理流程先通过
reuseStrategy获取
TokenStreamComponents对象。如果对象为空,创建该对象,并根据字段设置Analyzer对象;如果对象不为空,则直接将Reader直接写入
TokenStreamComponents。
StandAnalyzer是作为标准的一个文本分析器,其处理的流程包括字符小写和停用词处理。而其中的路程处理上采用流式的管道处理。即首先将字符按照字符的分割规范将其处理为流式的字符流,根据字符处理流在进行大小写和停用词的处理。流程的处理需要StandardTokenizer和Tokenizer两个对象。StandardTokenizer是将是将输入字符转换为流式字符,其中具体的实施类为
StandardTokenizerImpl。管道处理类都继承自
TokenFilter,StandAnalyzer的流式处理采用
LowerCaseFilter和
StopFilter对象。处理完成后返回
TokenStreamComponents,Lucene根据TokenStreamComponenets构造索引字段。