分词器

一、自定义分词器

 1 #自定义分词器
 2 PUT cunstom_analysis
 3 {
 4   "settings": {
 5     "analysis": {
 6       "char_filter": {
 7         "my_char_filter":{      字符过滤器,在切词时将指定词语进行替换
 8           "type":"mapping",
 9           "mappings":[
10             "& => and",
11             "| =>or"]
12         },
13         "html_char_filter":{      过滤掉html的标签
14           "type":"html_strip",
15           "escaped_tags":["a"]    设置a标签保留
16         }
17       }, 
18       "filter": {                 这里的filter作为停用词,将自定义的词语在切词时直接去除
19         "my_stopword":{
20           "type":"stop",
21           "stopwords":["is","a"]
22         }
23       }, 
24       "tokenizer": {              分词器,在切词时根据指定的标点或者这词语进行切词
25         "my_tokenizer":{
26           "type":"pattern",
27           "pattern":"[,.?]"
28         }
29       }, 
30       "analyzer": {
31         "my_analyzer":{
32           "type":"custom",
33           "char_filter":["my_char_filter","html_char_filter"],
34           "filter":["my_stopword","lowercase"],   filter主要作用是定义停用词、定义大小写转换等
35           "tokenizer":"my_tokenizer"
36         }
37       }
38     }
39   }
40 }

利用自定义分词器进行切词后的结果如上图所示:

1、mapping字符过滤器在切词前将&变为and,将|变为or

2、html_strip字符过滤器在切词前过滤掉了除<a>标签之外的所有html标签

3、filter停用词在切词后将is、a词语去除,使得结果中没有这两个词语

4、tokenizer切词器根据指定的字符”,.?“进行短语的拆分

二、中文分词器

1、安装和部署

  1)     下载:https://github.com/medcl/elasticsearch-analysis-ik

  2)     创建插件文件夹 cd your-es-root/plugins/ && mkdir ik

  3)     将插件解压缩到文件夹 your-es-root/plugins/ik

  4)     重新启动es

2、两种analyzer

  ik_max_word:细粒度

  ik_smart:粗粒度

 

posted @ 2022-02-11 09:56  showMeTheCodes  阅读(225)  评论(0编辑  收藏  举报