背景:
Centos7.3服务器上现有elasticsearch 5.4.0集群,共三台机器。
安装ik插件必须和es版本对应!


一、官网下载安装

该插件Github官网地址:https://github.com/medcl/elasticsearch-analysis-ik

我们可以清楚地看到:

ELK有分词功能吗 elasticsearch ik分词安装_ik


有两个选项,其中第二个选项是直接通过命令行安装,但是v5.5.1版本之后才支持,哎,我的5.4.0版本只能手动安装咯。

关于5.4.0版本插件安装的方式总体来说一共有两种,一是直接下载编译后的zip包,二是先下载源码包,再mvn编译安装。

当然,第一种方式简单直接。建议先用第一种方式安装,不行再考虑第二种。

方式1:安装编译后的zip包

选择es对应版本:(我的版本为5.4.0)

ELK有分词功能吗 elasticsearch ik分词安装_es_02


ELK有分词功能吗 elasticsearch ik分词安装_elasticsearch_03

或直接下载:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.4.0/elasticsearch-analysis-ik-5.4.0.zip

将解压包放在es主目录的plugins目录下,然后unzip解压后将elasticsearch-analysis-ik-5.4.0 改名为 ik

ELK有分词功能吗 elasticsearch ik分词安装_es_04


注意目录结构,elasticsearch-5.4.0/plugins/ik

再将ik目录发送到elasticsearch集群的其他两台机器:

scp -r ik/ root@10.3.1.9:/home/es/elasticsearch-5.4.0/plugins/
scp -r ik/ root@10.3.1.13:/home/es/elasticsearch-5.4.0/plugins/

然后把三台机器的ik目录的用户及用户组权限都改为es用户:

sudo chown -R es /home/es/elasticsearch-5.4.0/plugins/ik
sudo chgrp -R es /home/es/elasticsearch-5.4.0/plugins/ik

然后就可以启动es了,可以看到:

ELK有分词功能吗 elasticsearch ik分词安装_ELK有分词功能吗_05


在启动日志中可以看到加载ik插件成功!

方式2:安装源码包

ELK有分词功能吗 elasticsearch ik分词安装_ik_06


或:wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v5.4.0.zip

下载后随便找一目录解压:

ELK有分词功能吗 elasticsearch ik分词安装_es_07

下面进行编译,没安装Maven的请先安装Maven:

//进入一个目录
cd /home/
//创建一个文件夹
mkdir maven
//下载maven的tar包
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
//解压tar包
tar -xvf apache-maven-3.5.2-bin.tar.gz 
再配置好环境变量后:source /etc/profile
查看是否安装成功:mvn --verison

安装完maven后到ik目录下执行:

mvn install

ELK有分词功能吗 elasticsearch ik分词安装_es_08


编译成功后可以看到多了一个target目录:

ELK有分词功能吗 elasticsearch ik分词安装_ik_09


再进入到 /target/releases/ 目录下看到elasticsearch-analysis-ik-5.4.0.zip

ELK有分词功能吗 elasticsearch ik分词安装_ELK有分词功能吗_10


在es主目录下plugins目录下创建ik目录:

再把releases下的elasticsearch-analysis-ik-5.4.0.zip解压到ik目录:

ELK有分词功能吗 elasticsearch ik分词安装_ELK有分词功能吗_11


即ik插件安装成功!

二、简单使用测试:

es默认分词模式为standard

ELK有分词功能吗 elasticsearch ik分词安装_ik_12


ik插件提供了两种分词模式:ik_max_word和ik_smart

ik_max_word:会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;

ik_smart:会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。

ELK有分词功能吗 elasticsearch ik分词安装_ik_13


ELK有分词功能吗 elasticsearch ik分词安装_中分分词_14