中文分词就是将一句话的语义,分红一个个的词,之因此要分词是由于须要保证搜索的准确度。Elasticsearch 默认对于英文分词的支持较好,毕竟是老外开发的,而且英文自己的语言特性也利于分词,只须要按空格、逗号、分号隔开便可。但中文不同,Elasticsearch 对中文分词的时候,也是和英文同样,一个个词的分,因此就会致使搜索的准确度较差。例如我想搜中国这个词,却会返回学习中、开车中、出国事项等包含中字和国字的数据。所以咱们须要使用一些中文的分词插件来解决这种问题。git
Elasticsearch 有许多中文分词的插件,其中较为流行的是elasticsearch-analysis-ik,GitHub地址以下:github
https://github.com/medcl/elasticsearch-analysis-ikbash
咱们来安装一下这个插件,这里以es1节点为例,首先Elasticsearch 安装目录并下载该插件:elasticsearch
[root@ecs-55e5 ~]# cd /usr/share/elasticsearch/ [root@ecs-55e5 elasticsearch]# wget https://github.com/medcl/elasticsearch-analysis-ik/archive/master.zip
而后在es的plugins目录下建立ik目录,并解压下载的安装包到该目录下:学习
[root@ecs-55e5 ~]# cd /usr/share/elasticsearch/ [root@ecs-55e5 elasticsearch]# mkdir ./plugins/ik #建立ik目录 [root@ecs-55e5 elasticsearch]# mv master.zip ./plugins/ik/ # 移动压缩文件 [root@ecs-55e5 elasticsearch]# cd plugins/ik/ [root@ecs-55e5 ik]# unzip master.zip # 解压 [root@ecs-55e5 ik]# rm -rf master.zip # 删除空目录 [root@ecs-55e5 ik]# ls # 该插件所包含的文件以下 commons-codec-1.9.jar config httpclient-4.5.2.jar plugin-descriptor.properties commons-logging-1.2.jar elasticsearch-analysis-ik-6.5.4.jar httpcore-4.4.4.jar plugin-security.policy
其余节点也是和上面同样的步骤,这里就不赘述了。最后需重启elasticsearch节点:插件
[root@ecs-55e5 ~]# service elasticsearch restart