ElasticSearch的分词解析

es 作为搜素引擎界的神器深入了解也是很有必要的,本文围绕es的分析器、分词器、分词过滤器 通过剖析他们的关系及作用帮助大家更好的理解es的分词。

分析器

分析器的包括一个可选的字符过滤器、一个单词分词器、0或多个单词过滤器。

下面是内置的常用分析器

标准分析器

标准分析器为默认的文本分析器,包括标准分词器、标准分词过滤器、小写转换分词过滤器和停用词分析器。

简单分析器

简单分析器只使用了小写转换分词器,这表示仅在非字母处进行分词,并将分词自动转换为小写。

空白分析器

空白分析器什么都不做,只是根据空白将文本切割为多个分词。

停用分析器

停用分析器和简单分析器的行为很相似,只是在分词流中额外的过滤了停用词。

关键词分析器

关键词分析(keywaord_analyzer)将整个字段作为一个单独的分词。请记住最好是将index设置为 not_analyzer,而不是在映射中使用关键词分析器。

模板分析器

模板分析器允许指定一个分词切分的模式。但是相比于此,通常使用定制过滤器更有意义,使用定制过滤器可以组合现有的模式分词器和所需的分词过滤器。

雪球分析器

雪球分析器 除了使用标准的分词器和分词过滤器(和标准分析器相同),也使用了小写分词过滤器和停用词过滤器。它还使用了雪球词干器对文本就行词干提取。

IK 分析器(外置)

IK分析器作为我们常用的中文分词是通过字典的模式进行分词,在ES中使用时需要配置插件才可使用。

分词器

标准分词器

标准分词器是一个基于语法的分词器,分词默认的最大长度为255。它也移除了逗号和句号这样的标点符号。

关键词分词器

关键词分词器十分简单,将字段的整个文本作为单个的分词,然后提供给分词过滤器。

字母分词器

字母分词器根据非字母的符号,将文本切分成分词。

小写分词器

小写分词器结合了常规的字母分词器和小写分词器(将字母都转为小写)。

空白分词器

空白分词器通过空白来分隔不同的分词,空白包括空格、制表符、换行符等。注意:这种分词不会删除任何标点符号。

模式分词器

模式分词器允许指定一个任意的模式,将文本切分为分词。被指定的模式可以用于匹配间隔符号。

分词过滤器

分词过滤器的作用是接收分词器产生的所有分词,然后将分词处理后用于索引建立。

标准分词过滤器

标准的没有任何操作!

小写分词过滤器

小写分词过滤器只是做了一件事:将任何经过的分词都转换为小写。

长度分词过滤器

长度分词过滤器可以将超出最短或最长限制范围的单词过滤掉。

停用词分词过滤器

停用词分词过滤器将停用词从分词流中移除。停用词列表可自定义哦!

颠倒分词过滤器

颠倒分词过滤器是将每个分词都进行颠倒,例如 foo 颠倒为 oof ,当进行后置模糊匹配搜索时此分词过滤器将十分有效。