解读Elasticsearch分析器中的重要术语

版权声明:本文为博主原创文章,未经博主允许禁止转载(http://blog.csdn.net/napoay) https://blog.csdn.net/napoay/article/details/78992835

导读:Elasticsearch分析器中的Analysis、Analyzer、Tokenizer、Token Filter、Character Filter,你知道是什么含义吗?

一、什么是Analysis ?

Analysis翻译为分析器,其功能是把文本切分成词项(词项是倒排索引中的基本单位)。

二、什么是Analyzer?

分析器的功能主要是通过分词器(Analyzer)来实现的。

三、什么是Tokenizer?

tokenizer 接收字符流,分成多个token(通常是一个个的单词),然后输出一个token序列。例如,whitespace tokenizer按空格切分字符序列,输入:

 "Quick brown fox!"

输出:

[Quick, brown, fox!]

特别声明一下:token还不能和单词、term对等,fox!是一个很好的子,fox!是一个token,但是不是一个单词,也不算一个term。

tokenizer 还会记录单词的位置信息(可用于紧邻查询)和每个单词首尾字母在字符串中的位置(主要用于高亮搜索)。

四、什么是Token Filter?

文本经过Tokenizer之后,输出一个token序列。Token Filter用于对Tokenizer输出的序列做修改(eg.单词的大小写转换)、删除(eg.删除停用词)、增加(eg.增加同义词)等动作。

五、什么是Character Filter?

Character Filter用于对字符序列进入Tokenizer之前的预处理。一个character filter会接收原始文本作为字符序列,中间加上添加、删除、修改等动作,例如把古印度的阿拉伯数字(٠‎١٢٣٤٥٦٧٨‎٩‎) 转化为(0123456789),剥离HTML标签等,都是由character filter完成的。

阅读更多

扫码向博主提问

mydpp

博客专家

熟悉Lucene、ES、ELK
去开通我的Chat快问
换一批

没有更多推荐了,返回首页