Elasticsearch实战 分析数据

当传送数据到Elasticsearch的时候,究竟发生了什么?

一、什么是分析

分析是在文档被发送并加入倒排索引之前,Elasticsearch在其主体上进行的操作,在文档被加入索引之前,Elasticsearch让每个被分析字段经过一系列的处理步骤。

    1.字符过滤——使用字符过滤器转变字符

    2.文本切分为分词——将文本切分为单个或多个分词

    3.分词过滤——使用分词过滤器转变每个分词

    4.分词索引——将这些分词存储到索引中

二、为文档使用分析器

有两种方式来指定字段所使用的分析器

1.当创建索引的时候,为特定的索引进行设置

2.在Elasticsearch的配置文件中,设置全局的分析器


在索引创建时增加分析器

设置主分片和副本分片的数量
添加定制分析器

在分析器对象中设置定制分析器、分词器、定制过滤器、字符过滤器、映射


三、使用分析API来分析文本


四、分析器、分词器和分词过滤器

分析器概览

字符过滤器:用来整理一个尚未被分词的字符串,例如移除不需要检索的字符。一个分析器可能有0个或者多个字符过滤器。

分词器:一个分析器必须有一个唯一的分词器。词器把字符串分解成单个词条或者词汇单元

分词过滤器:经过分词,作为结果的词单元流会按照指定的顺序通过指定的词单元过滤器。分词过滤器可以添加、删除、修改词单元。

内置的分析器

1.标准分析器

    包括标准分词器、标准分词过滤器、小写转换分词过滤器和停用词分词过滤器

2.简单分析器

    只使用了小写转换分词器。只在非字母处进行分词,并将分词自动转变为小写

3.空白分析器

    什么事情都不做,只是根据空白将文本切分为若干分词

4.停用词分析器

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

5.关键词分析器

    将整个字段当作一个单独的分词

6.模式分析器

    允许指定一个分词切分的模式。但是由于可能无论如何都要指定模式,通常更有意义的做法是使用定制分析器,组合现有的模式分词器和所需的分词过滤器


分词器

1.标准分词器

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

2.关键词分词器

    是一种简单的分词器,将整个文本作为单个的分词,提供给分词过滤器

3.字母分词器

    根据非字母的符号,将文本切分为分词

4.小写分词器

    结合了常规的字母分词器和小写分词过滤器的行为

5.空白分词器

    通过空白来分隔不同的分词,空白包括空格、制表符、换行等

6.模式分词器

    允许指定一个任意的模式,将文本切分为分词


分词过滤器

1.标准分词过滤器

    什么都没做

2.小写分词过滤器

    将任何经过的分词转换为小写

3.长度分词过滤器

    将长度超出最短和最长限制范围的单词过滤掉

4.停用词分词过滤器

    将停用词从分词流中移除



小结

1.分析是通过文档字段的文本,生成分词的过程。在match查询这样的查询中,搜索字符串会经过同样的过程,如果一篇文档的分词和搜索字符串的分词相匹配,那么他就会和搜索匹配

2.通过映射,每个字段都会分配一个分析器。分析器既可以在Elasticsearch配置或或索引设置中定义,也可以是一个默认的分析器

3.分析器是处理的链条,由一个分词器以及若干再次分析器之前的字符过滤器、在此分词器之后的分词过滤器组成

4.在字符串传送到分词器之前,字符过滤器先处理这些字符串

5.分词器用于将字符串切分为多个分词。例如空白分词器使用空格来划分

6.分词过滤器用于处理分词器所产生的分词。例如可以使用词干提取来讲单词缩减为其词根,并让搜索在该词的复数和单数形式上都可以正常运作

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容