Elasticsearch(010):es中中文分词器IK-Analyzer实战
程序员文章站
2022-03-11 08:26:16
...
中文分词器(IK-Analyzer)
1. 下载ik分词器
网址:https://github.com/medcl/elasticsearch-analysis-ik
下载对照ES版本的分词器版本。
注意
ik分词器的版本需要es保持一致。
2. 安装分词器
将分词器拷贝到服务器的ES安装目录plugins
文件夹下,新建ik
文件夹,解压
到其中即可。
三台机器
分别执行一样的操作,然后重新启动
es服务。
3. 测试
#测试中文分词器
GET _analyze
{
"text":"测试分词器,spring cloud实战",
"analyzer":"ik_max_word"
}
结果如下
{
"tokens" : [
{
"token" : "测试",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "分词器",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "分词",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "器",
"start_offset" : 4,
"end_offset" : 5,
"type" : "CN_CHAR",
"position" : 3
},
{
"token" : "spring",
"start_offset" : 5,
"end_offset" : 11,
"type" : "ENGLISH",
"position" : 4
},
{
"token" : "cloud",
"start_offset" : 12,
"end_offset" : 17,
"type" : "ENGLISH",
"position" : 5
},
{
"token" : "实战",
"start_offset" : 17,
"end_offset" : 19,
"type" : "CN_WORD",
"position" : 6
}
]
}
由此可见分词器起作用了。
4. 拓展使用
ik分词器有两种分词模式:ik_max_word和ik_smart模式。
4.1 ik_max_word
会将文本做最细粒度的拆分,比如会将“*人民大会堂
”拆分为“*
、中华人民
、中华
、华人
、人民*
、人民
、*
、大会堂
、大会
、会堂
等词语。
4.2 ik_smart
会做最粗粒度的拆分,比如会将“*人民大会堂
”拆分为*
、人民大会堂
。
4.3 自定义词库
如果要让分词器支持一些专有词语,可以自定义词库。iK分词器自带一个main.dic的文件,此文件为词库文件。在上边的目录中新建一个my.dic文件,配置文件中配置my.dic即可。
上一篇: 正则的几个基本概念
下一篇: 为什么需要NAT?NAPT?