一、下载ik分词器
不同的es有不同的ik版本对应,可在releases找到对应的版本,直接下载zip文件即可。
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases ,这里你需要根据你的Es的版本来下载对应版本的IK,这里我使用的是7.9.1的ES,所以就下载ik-7.9.1.zip的文件。
二、解压–>将文件复制到 es的安装目录/plugins/ik目录
三、重启ElasticSearch,测试效果
未使用ik分词器的时候测试分词效果:
POST http://IP:9200/shop1/_analyze
{
“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
},
{
"token": "架",
"start_offset": 4,
"end_offset": 5,
"type": "<IDEOGRAPHIC>",
"position": 4
},
{
"token": "构",
"start_offset": 5,
"end_offset": 6,
"type": "<IDEOGRAPHIC>",
"position": 5
}
]
}
使用IK分词器之后,结果如下:
POST http://IP:9200/shop1/_analyze
{
“analyzer”: “ik_max_word”,
“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
},
{
"token": "架构",
"start_offset": 4,
"end_offset": 6,
"type": "CN_WORD",
"position": 2
}
]
}
注意
如果未安装ik分词器,那么你写 “analyzer”: “ik_max_word”,程序就会报错,因为你没有安装ik分词器
如果你安装了ik分词器之后,你不指定分词器,不加上 “analyzer”: “ik_max_word” 这句话,那么其分词效果跟你没有安装ik分词器是一致的,也是分词成每个汉字。