ElasticSearch分词器

2020-09-07  本文已影响0人  蓝色Hippie

一、什么是分词

把文本转换为一个个的单词,分词称为analysis。es默认只对英文语句做分词,中文不支持。每个中文都会被拆分为独立的个体

分词测试:  POST   url/_analyze

body:

{

    "analyzer": "standard",

    "text": "i  am   a  hero, i  love  the  world"

}

二、es内置分词器

1.内置英文分词器

standard:默认分词器,单词会被拆分,大小写会转换为小写

simple::按照非字母分词,大写转为小写

whitespace:按照空格分词,忽略大小写

stop:去除无意义的单词,例如 the  a   an  is

keyword:不做分词,把整个文本作为一个单独的关键字

2.安装中文分词器插件

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

2.1下载后安装到服务器,解压后放到指定文件夹,重启即可。

2.2中文分词器  ik_max_word 

会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query

2.3中文分词器  ik_smart 

会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询

2.4自定义中文词库

在{es}/plugins/conf下,创建文件:vim custom.dic,并录入自定义词汇

在{es}/plugins/conf/IKAnalyzer.cfg.xml,增加配置<entry key="ext_dict">custom.dic</entry>

重启即可

上一篇下一篇

猜你喜欢

热点阅读