Lucene系列叁:Lucene澳门金沙器详松、完本钱人的
作者:cmsbuy来源:cmsbuy.cn时间:2019-08-27

  (1)org.apache.lucene.analysi.Analyzer

  澳门金沙器,澳门金沙器组件的中心API,它的天职:构建真正对文本终止澳门金沙处理的TokenStream(澳门金沙处理器)。经度过调用它的如次两个方法,违反掉落输入文本的澳门金沙处理器。

  此雕刻两个方法是final方法,不能被掩饰的,在此雕刻两个方法中是何以构建澳门金沙处理器的呢?

  对应源码澳门金沙:

  效实1:从哪里违反掉落了TokenStream?

  从components.getTokenStream()违反掉落了TokenStream

  效实2:方法传入的字符流动Reader 给了谁?

  方法传入的字符流动Reader 终极给了Tokenizer的inputPending(典型:Reader):initReader(fieldName, reader)-components.setReader(r)-source.setReader(reader)-this.inputPending=input;

  效实3: components是什么?components的获取逻辑是怎么?

  components是澳门金沙处理的组件,components的获取逻辑是拥有就直接拿到来用,没拥有拥有就新建壹个,前面邑用新建的此雕刻壹个

  效实4:createComponents(fieldName) 方法是个什么方法?

  是创立澳门金沙处理组件的方法

  效实5:Analyzer能直接创立对象吗?

  Analyzer是壹个笼统类,不能直接创立对象

  效实6:为什么它要此雕刻么设计?

  运用修饰器花样便宜扩展

  效实7:请看壹下Analyzer的完成儿子类拥有哪些?

  

  效实8:要完成壹个己己己的Analyzer,必须完成哪个方法?

  必须完成protected abstract TokenStreamComponents createComponents(String fieldName);

  是Analizer中独壹的笼统方法,扩展点。经度过供该方法的完成到来完本钱人的Analyzer。

  参数说皓:fieldName,假设我们需寻求为不一的字段创立不一的澳门金沙处理器组件,则却根据此雕刻个参数到来判佩。不然,就用不到此雕刻个参数。

  前往值为 TokenStreamComponents 澳门金沙处理器组件。

  我们需寻求在createComponents方法中创立我们想要的澳门金沙处理器组件。

  (3)TokenStreamComponents 对应源码澳门金沙:

  澳门金沙处理器组件:此雕刻个类中查封装拥有供外面部运用的TokenStream澳门金沙处理器。供了对source(源)和sink(供外面部运用澳门金沙处理器)两个属性的拜候方法。

  效实1:此雕刻个类的构造方法拥有几个?区佩是什么?从中能发皓什么?

  两个构造方法:

  区佩是参数不比样,却以发皓source和sink拥有禀接相干

热门推荐

随机推荐
  • 民营银行吸储铰出产智能
  • 2019首家戴帽影视公司:实
  • PE/VC左右扫新叁板:15倍
本站为澳门金沙线上娱乐官网,所有信息和图片来自网络,不代表本站观点!