TransportAction  基类

ElasticSearch 源码分析16 TransportAnalyzeAction 分析

执行的时候会调用到execute,然后执行requestFilterChain.proceed方法

ElasticSearch 源码分析16 TransportAnalyzeAction 分析

ElasticSearch 源码分析16 TransportAnalyzeAction 分析

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TransportAnalyzeAction 用来执行对请求request的analyze分析,父类是TransportSingleShardAction

看核心方法shardOperation,分片情况下操作

1.如果shardId不为空,就根据shardId的index,获取indexService

2.如果request的field不为空,此时校验indexService不能为空

3.fieldType如果是tokenized,就获取该fieldType的analyzer;没有根据KeywordFieldType获取analyzer

4.如果indexService不为空,field为空,就设置默认的field

5.先获取analyzer,校验不为空

6.如果request的tokenizer不为空,就获取tokenizerFactory,解析tokenFilterFactoryList,然后新建customerAnalyzer

ElasticSearch 源码分析16 TransportAnalyzeAction 分析

7.调用simpleAnalyze进行解析,解析出tokenStream

  然后解析stream,返回tokens结果

ElasticSearch 源码分析16 TransportAnalyzeAction 分析

 

 

 

相关文章: