在es中内置了一些分词器:standard,simple,whitespace,stop,keyword,pattern,language,Fingerprint,具体的一些介绍如下:内置分词器,分词器其实可以由三部分组成:character filter,tokenizer和token filterhttps://www.elastic.co/guide/en/elasticsearch/reference/current/analyzer-anatomy.html#_tokenizer
1.character filter:是最早处理字符串的一个组件,他可以对整个串进行处理,如下
GET _analyze
{
"tokenizer" : "whitespace",
"filter" : ["lowercase"],
"char_filter" : ["html_strip"],
"text" : "this is a <b>test</b>"
}
首先对串进行cha_filter,html_strip是内置的一个fiter,用于去除串中的html标签,去完标签后,串变为 this is a test,交给 tokenizer来处理
2.tokenizer:进行分词,切分的规则,可以根据空格来切分(whitespace)或者不切分,如keyword,上面被tokenizer分词后,变为 this,is,a,test,交给token filter
3.token filter:就是对处理经过tokenizer切割后每一个token,比如上面的lowercase,将所有的大写变成小写,或者指定停用词,去掉this is 等等
网友评论