ElasticSearch一看就懂之分析器的流程

用ElasticSearch,一般都会自写一些特别需求的分析器(analyzer)吧,其中涉及到字符过滤器(character filter)、分词器(tokenizer)和过滤器(filter)的使用。
那么,这些涉及到的部分是如何在一次分析中执行的呢?顺序又是如何的呢?且看下文。

当一个分析器被执行时,会按如下顺序对待分析的字段做处理:

  1. 字符过滤器(character filter):使用字符过滤器转变字符。
  2. 分词器(tokenizer):将文本(档)分为单个或多个分词。
  3. 过滤器(filter):使用分词过滤器转变每个分词。

看着很简单是吧,事实上,理解了也确实很简单,但玩儿法其实很多。

比如一些插件提供了分词器和过滤器,你可以选择使用人家的分词器,也可以选择自己的分词器,配合插件提供的过滤器来实现目标功能。

最常见的一种用法就是pinyin插件,用自写的分词器分词,然后使用pinyin插件的首字母或者全拼的过滤器,最终将结果转换为我们所需的分析结果。

点到即止。

 


未经允许不得转载:阿藏博客 » ElasticSearch一看就懂之分析器的流程

赞 (0) 打赏