3.1 下载IK分词器插件
https://github.com/medcl/elasticsearch-analysis-ik/releases
找到与自己ElasticSearch对应版本的进行下载,下载之后解压,在ElasticSearch目录中的plugins目录下新建一个名为的ik文件夹,将解压后文件夹中的所有内容复制到ik文件夹下
捕获.PNG
如果你的ElasticSearch部署了多个节点,则别忘了在每个节点都要重复上述操作,即将ik文件夹下的所有文件复制到其他节点。
在linux环境下:
[elastic@node1 plugins]$ scp -r ik elastic@node2:/opt/elasticsearch-6.2.3/plugins/
3.2 重启ElasticSearch
捕获.PNG可以在倒数第三行的可以看出,ik分词器插件已经被加载。
3.3 测试IK中文分词器的基本功能
(1)ik_smart
其中pretty本意”漂亮的”,表示以美观的形式打印出JSON格式响应。
GET _analyze?pretty
{
"analyzer": "ik_smart",
"text":"安徽省长江流域"
}
分词结果
{
"tokens": [
{
"token": "安徽省",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
},
{
"token": "长江流域",
"start_offset": 3,
"end_offset": 7,
"type": "CN_WORD",
"position": 1
}
]
}
20180106185937040.png
(2)ik_max_word
GET _analyze?pretty
{
"analyzer": "ik_max_word",
"text":"安徽省长江流域"
}
分词结果
{
"tokens": [
{
"token": "安徽省",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
},
{
"token": "安徽",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
},
{
"token": "省长",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 2
},
{
"token": "长江流域",
"start_offset": 3,
"end_offset": 7,
"type": "CN_WORD",
"position": 3
},
{
"token": "长江",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
},
{
"token": "江流",
"start_offset": 4,
"end_offset": 6,
"type": "CN_WORD",
"position": 5
},
{
"token": "流域",
"start_offset": 5,
"end_offset": 7,
"type": "CN_WORD",
"position": 6
}
]
}
20180106185937040.png
(3)新词
GET _analyze?pretty
{
"analyzer": "ik_smart",
"text": "王者荣耀"
}
分词结果
{
"tokens": [
{
"token": "王者",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 0
},
{
"token": "荣耀",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 1
}
]
}
3.4 扩展字典
(1)查看已有词典
已有词典在ik文件夹下的config下
171159280704hik.png
自定义词典:
linux环境下:
[es@node1 analysis-ik]$ mkdir custom
[es@node1 analysis-ik]$ vi custom/new_word.dic
[es@node1 analysis-ik]$ cat custom/new_word.dic
老铁
王者荣耀
洪荒之力
共有产权房
一带一路
[es@node1 analysis-ik]$
在windows环境下只需要在对应文件夹下创建对应字典文件(xxxx.dic)即可
(3)更新配置
[es@node1 analysis-ik]$ vi IKAnalyzer.cfg.xml
[es@node1 analysis-ik]$ cat IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom/new_word.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
[es@node1 analysis-ik]$
(4)重启elasticsearch
(5)重启Kibana
重启Kibana后,从新执行下面命令:
GET _analyze?pretty
{
"analyzer": "ik_smart",
"text":"王者荣耀"
}
分词结果
{
"tokens": [
{
"token": "王者荣耀",
"start_offset": 0,
"end_offset": 4,
"type": "CN_WORD",
"position": 0
}
]
}
网友评论