一、分词器
分词器 就是把一段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换)。主要作用就是:切分词语,normalization(提升recall召回率)。
normalization: 建立倒排索引的时候,会执行一个操作,对拆分出的各个单词进行相应处理,以提升后面搜索的时候能够搜索到的相关联的文档的概率。像时态转换、单复数转换、大小写转换等。
recall(召回率): 搜索的时候,增加能够搜索到的结果的数量
二、分词器的功能
- character filter:在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签。例:
<span>hello<span> --> hello
,& --> and,I&you --> I and you
- tokenizer:分词:
hello you and me --> hello, you, and, me
- token filter:单复数转换、大小写转换,近义词转换,去掉a/an/the等。l
在分词器将文本进行各种处理后,最后处理好的结果才会拿去建立倒排索引。
三、es内置分词器
- standard analyzer(默认使用):大小写、去符号、按照基本空格拆分,也会按照
-、_
拆分。 - simple analyzer:相当于standard,但更简单。
- whitespace analyzer:不做大小写转换,且只按照空格拆分。
- language analyzer:特定的语言的分词器,比如说,english,英语分词器。
四、测试分词器
GET /_analyze
{
"analyzer": "standard",
"text": "Text to analyze"
}