因为ElasticSearch默认的中文分词器对中文分词不是很友好,会将中文词语拆分成一个个中文的汉字,因此引入中文分词器:es-ik插件。
官方网站下载:https://github.com/medcl/elasticsearch-analysis-ik/releases
注意:es-ik分词插件版本一定要和es安装的版本对应
安装步骤
第一步 把下载的elasticsearch-analysis-ik-6.7.0.zip重命名为ik.zip并解压
第二步 上传到/opt/application/es6.7.0/plugins下
第三步 重启elasticsearch即可
自定义扩展词典
第一步 在/opt/application/es6.7.0/plugins/ik/config下创建目录:mkdir custom
第二步 在/opt/application/es6.7.0/plugins/ik/config/custom下创建文件:vi new_word.dic,并在该文件内输入新词:
王者荣耀
联通云
硅谷亮城
第三步 在/opt/application/es6.7.0/plugins/ik/config下执行 vi 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>
1 默认分词器
POST http://192.168.86.128:9200/_analyze
{
"analyzer":"standard",
"text":"苹果手机"
}
{
"tokens": [
{
"token": "苹",
"start_offset": 0,
"end_offset": 1,
"type": "<IDEOGRAPHIC>",
"position": 0
},
{
"token": "果",
"start_offset": 1,
"end_offset": 2,
"type": "<IDEOGRAPHIC>",
"position": 1
},
{
"token": "手",
"start_offset": 2,
"end_offset": 3,
"type": "<IDEOGRAPHIC>",
"position": 2
},
{
"token": "机",
"start_offset": 3,
"end_offset": 4,
"type": "<IDEOGRAPHIC>",
"position": 3
}
]
}
2 ik分词器
POST http://192.168.86.128:9200/_analyze
{
"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
}
]
}