elasticsearch6.2.2安装中文分词插件IK analyzer

哎,装了一下午的ik终于装上了,发现自己真的是非常笨了,并且es重启过程中遇到了很多的问题,下面我将手把手教大家如何安装ik,尽可能细致些.

1. 首先我们需要到git上下载对应的安装包

输入如下网址可以看到很多ik的安装包,这边我们选择第一个 
https:///medcl/elasticsearch-analysis-ik

2. 进入到我们es的目录下,soft是我的文件根目录

cd /soft/elasticsearch-6.2.2/plugins
  • 1

①git克隆到plugins目录下

git clone https:///medcl/elasticsearch-analysis-ik
  • 1

es数据库修改分词器类型_elasticsearch

② 进行打jar包,每条语句都会有绿色的 BUILD SUCCESS

cd elasticsearch-analysis-ik/ 
mvn clean 
mvn compile 
mvn package 

es数据库修改分词器类型_es数据库修改分词器类型_02

 


es数据库修改分词器类型_analyzer_03

 


es数据库修改分词器类型_es数据库修改分词器类型_04

③在es pluings目录下新建ik目录

sudo mkdir ik

④把ik目录里target目录下release中的zip复制到ik文件夹中

sudo mv target/releases/elasticsearch-analysis-ik-6.2.2.zip ../ik 

es数据库修改分词器类型_elasticsearch_05

 


es数据库修改分词器类型_analyzer_06

⑤解压此压缩包

sudo unzip elasticsearch-analysis-ik-6.2.2.zip 

es数据库修改分词器类型_es数据库修改分词器类型_07

 


解压后可以看到ik目录下有解压后文件目录,但是es在load加载ik的时候是直接在ik文件下寻找config,bootstrap会寻找plugin-descriptor.properties,所以此时需要把elasticsearch这一层目录里的东西全部上移一层移动到ik目录下,一定要注意路径 


sudo cp -r elasticsearch/* ./ 


es数据库修改分词器类型_es数据库修改分词器类型_08

⑥将plugins中的除ik目录其余的删除掉 

es数据库修改分词器类型_es数据库修改分词器类型_09

⑦这里我的es是最新的6.2.2,所以不需要修改配置,有的5.x之前的据说需要,大家注意一下,如果需要打开es.yml,在最后一行加上如下内容

vim /etc/elasticsearch/elasticsearch.yml

index.analysis.analyzer.ik.type: "ik"
  • 1

注意这里添加内容的格式,开头需要加一个空格, 冒号:前可加可不加空格,后必须加空格,如果报错可以参考一篇同学的blog,是空格导致错误的一些常见问题 

3. 重新启动elasticsearch即可

有的同学是service elasticsearch restart就可以重启,我的是到es的bin目录下./elasticsearch才可以重启 

es数据库修改分词器类型_es数据库修改分词器类型_10

可以看到plugin [analysis-ik] loaded,表示配置成功 
4. 下面可以做个简单的测试 
本人使用的es搭配kibana插件,具体的操作与head相似,不必纠结工具 
①创建索引

PUT /index

②创建mapping

POST index/employ/_mapping 
 { 
 “properties”: { 
 “content”: { 
 “type”: “text”, 
 “analyzer”: “ik_max_word”, 
 “search_analyzer”: “ik_max_word” 
 } 
 } 
 }

es数据库修改分词器类型_elasticsearch_11

③创建若干文档

POST index/employ/1 
 { 
 “content”:”我爱你中国” 
 }

es数据库修改分词器类型_elasticsearch_12

执行一下,successful


再添加几个文档,相同的执行成功

POST index/employ/2 
 { 
 “content”:”中国我爱你” 
 } 
 POST index/employ/3 
 { 
 “content”:”中国你真美” 
 }

④关键字高亮搜索会看到分词的中国

GET index/employ/_search 
 { 
 “query”: {“match”: { 
 “content”: “中国” 
 }} 
 , “highlight”: { 
 “pre_tags” : [““, “”], 
 “post_tags” : [““, “”], 
 “fields” : { 
 “content” : {} 
 } 
 } 
 }

部分步骤可能还是不很明白,但是大概能给新手一些启发.