ElasticSearch系列——分词器
分词器
分词和分词器
Analysis∶文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词
Analysis是通过Analyzer来实现的。分词就是将文档通过Analyzer分成一个一个的Term,每一个Term都指向包含这个Term的文档。
分词器的组成
- character filters(字符过滤器) : 在文本进行过滤前需要先进行预先处理
- tokenizers(分词器) : 对词句进行响应的分词
- token filter(token过滤器) : 将切分的单词进行加工,如大小写转化,去除介词等
在ES中默认会使用标准分词器standardAnalyer,其中英语会进行单词分词,中文则是单字分词
分词顺序
character filter ===> tokenizers ===> token filter
构成数量
character filter(大于等于0) ===> tokenizers(至少有1个) ===> token filter(大于等于0)
ES中的分词器
- Standard Analyzer : 默认分词器,小写处理
- Simple Analyzer-按照单词切分(符号被过滤),小写处理,中文按照空格进行分词
- Stop Analyzer -小写处理,停用词过滤(the,a,is)
- Whitespace Analyzer-按照空格切分,不转小写
- Keyword Analyzer-不分词,直接将输入当作输出
测试分词器
其中将standard修改为你要测试的即可
# 分词器
POST /_analyze
{
"analyzer": "standard",
"text": "你好我是张三 i am very happy"
}
指定分词器
分词器需要在指定映射的时候进行设置
#设置分词器
PUT /analy
{
"mappings": {
"properties": {