ElasticSearch基础 分词器归纳

es 自带分词器_analyze 但是分词器不支持中文 如‘中文’会被默认分割成‘中’‘文’2个词

POST _analyze
{
  "analyzer": "standard",
  "text": "The 2 Brown-Foxes bone."//定义的分词 空格隔开
}

因此需要安装插件ik分词器

https://github.com/medcl/elasticsearch-analysis-ik/releases

ik版本应与es一致

ik解压文件放在es的plugins目录下

再测试分词

GET _analyze
{
   "analyzer": "ik_smart", 
   "text":"我是中国人"  //分词为 '我''是''中国人'
}

//上例改成 ik_max_word更细粒化分词 分词为'我''是''中国人''中国''国人'

 

 

自定义分词的方法:

ik分词文件在plugins/ik/config路径下
里面配置了一些分词规则
main.dic:ik原生内置的中文词库,总共有27万多条
quantifier.dic:放了一些单位相关的词
suffix.dic:放了一些后缀
surname.dic:中国的姓氏
stopword.dic:英文停用词


自定义分词配置文件是IKAnalyzer.cfg.xml
中如:
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">xx.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">xxstop.dic</entry>

新建xx.dic文件中新增分词 或新建xxstop.dic文件中加上禁止的分词

 

posted @ 2021-04-12 02:20  小白小白小白小白  阅读(109)  评论(0编辑  收藏  举报