Elasticsearch-20-分词器详解

什么是分词器

作用: 拆分词语,进行normalization操作(提升recall召回率)

比如说,有一个句子,然后将这个句子拆分成一个一个的单词,同时对每个单词进行normalization(时态转换,单复数转换等等).

recall召回率:简单来说就是搜索的时候,增加能够搜索到的结果的数量.

分词器一共做了三件事:
character filter:在一段文本进行分词之前,先进行预处理,比如说过滤html标签(<span>123</span> 转换为123), & 转换为 and
tokenizer:分词,比如 hello me 分为 hello 和 me
token filter:进行大小写转换,停用词去掉,近义词转换等normalization操作,比如 dogs –> dog, liked –> like, Tom –> tom, a/an/the去掉,等等

分词器很重要,讲一段文本进行各种处理,最后处理好的结果才会拿去建立倒排索引.

内置分词器的介绍

比如某个document中的某一个field的值是: Set the shape to semi-transparent by calling set_trans(5)

  • standard analyzer(标准分词器) :将句子拆分为set, the, shape, to, semi, transparent, by, calling, set_trans, 5,做了大写转小写,-去除,()去除等操作
  • simple analyzer(简单分词器):拆分为set,the,shape,to,semi,transparent,by,calling,set,trans,可以看到做了大写转小写,-去除,(5)去除,_去除 等操作
  • whitespace analyzer(空格分词器):Set,the,shape,semi-transparent,by,calling,set_trans(5), 简单的按照空格进行分词
  • language analyzer(语言分词器,比如说英语分词器):set,shape,semi,transpar,call,set_tran,5,可以看到大写转小写,the没有任何含义,被干掉了,以及一些拆分的,transparent转换成了transpar,calling转化时态call,等等

默认的分词器是standard analyzer(标准分词器)