下载&安装
下载
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
安装
# 进入elasticsearch的插件目录cd plugins# 创建目录 ik 并进入mkdir ik && cd ik# 拷贝或移动刚下载的文件到 ik 目录cp /home/es/download/elasticsearch-analysis-ik-7.6.2.zip .# 解压缩unzip elasticsearch-analysis-ik-7.6.2.zip
完成后重启es
验证分词器
使用crul命令,输入下面的URL地址,验证分词器是否成功。
curl -X GET -H "Content-Type: application/json" "http://localhost:9200/_analyze?pretty=true" -d'{"text":"我的老家就住在这个屯"}'
ik_max_word和ik_smart
- ik_max_word: 将文本按最细粒度的组合来拆分。
- ik_smart: 将文本按最粗粒度的拆分。
说明:如果不添加分词类别,Elastic对于汉字默认使用standard,将汉字拆分成一个个的汉字,而我们ik则更加的智能,下面通过几个案例来说明。
案例1-ik_smart
curl -X GET -H "Content-Type: application/json" "http://localhost:9200/_analyze?pretty=true" -d'{"text":"我的老家就住在这个屯","analyzer": "ik_smart"}'
结果
我,的,老家,就住,在,这个,屯
案例2-ik_max_word
curl -X GET -H "Content-Type: application/json" "http://localhost:9200/_analyze?pretty=true" -d'{"text":"我的老家就住在这个屯","analyzer": "ik_max_word"}'
结果
我,的,老家,就住,住在,在这,这个,屯
由以上两种结果可知,分词结果并不能百分百满足我们的分词需求。
docker环境下安装
说明:一定要保证ElasticSearch和ElasticSearch插件的版本一致
在线安装
# 进入docker容器docker exec -it elasticsearch /bin/bash# 在线下载并安装./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip# 退出并重启镜像exitdocker restart elasticsearch