elasticsearch + ik

来源:互联网 发布:淘宝远望数码手机真假 编辑:程序博客网 时间:2024/04/30 15:06

国外:
下载地址(2.1.1版),其他版本看这里

https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.1.1/elasticsearch-2.1.1.zip

目前跟ik的版本对应,有更新看这里

IK version  ES versionmaster  2.3.1 -> master1.9.1   2.3.11.9.0   2.3.01.8.1   2.2.11.7.0   2.1.11.5.0   2.0.01.4.1   1.7.21.4.0   1.6.01.3.0   1.5.01.2.9   1.4.01.2.8   1.3.21.2.7   1.2.11.2.6   1.0.01.2.5   0.90.x1.1.3   0.20.x1.1.2   0.19.x1.0.0   0.16.2 -> 0.19.0

一般安装elasticsearch之后,多半会安装ik分词,而二者有版本的对应关系的,如果装了不对应版本,会出问题的

国内:
多指github,如下图,可以找到一个包的不同版本的安装包了。
这里写图片描述

安装elasticsearch和ik
1 先下载这两个包,我用的是2.1.1(elas)和1.7.0(ik)
elasticsearch 2.1.1 链接
ik 1.7.0 链接

2 分别解压两个包(unzip)
3 可以先到elasticsearch(后称elas)中,将elas启动(我将elasticsearch文件夹改名为elas了,为操作方便)

zhangl@zhangl:~/projects/elas$ pwd/home/zhangl/projects/elaszhangl@zhangl:~/projects/elas$ ./bin/elasticsearch[2016-06-05 10:01:33,946][INFO ][node                     ] [Mauler] version[2.1.1], pid[12954], build[40e2c53/2015-12-15T13:05:55Z][2016-06-05 10:01:33,947][INFO ][node                     ] [Mauler] initializing ...[2016-06-05 10:01:34,356][INFO ][plugins                  ] [Mauler] loaded [elasticsearch-analysis-ik], sites [][2016-06-05 10:01:34,379][INFO ][env                      ] [Mauler] using [1] data paths, mounts [[/ (/dev/sda6)]], net usable_space [123.3gb], net total_space [138.9gb], spins? [possibly], types [ext4][2016-06-05 10:01:36,540][INFO ][ik-analyzer              ] [Dict Loading]ik/custom/mydict.dic[2016-06-05 10:01:36,540][INFO ][ik-analyzer              ] [Dict Loading]ik/custom/single_word_low_freq.dic[2016-06-05 10:01:36,544][INFO ][ik-analyzer              ] [Dict Loading]ik/custom/ext_stopword.dic[2016-06-05 10:01:37,043][INFO ][node                     ] [Mauler] initialized[2016-06-05 10:01:37,043][INFO ][node                     ] [Mauler] starting ...[2016-06-05 10:01:37,243][INFO ][transport                ] [Mauler] publish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}, {[::1]:9300}[2016-06-05 10:01:37,257][INFO ][discovery                ] [Mauler] elasticsearch/NB88jpS1Q1Cjqeqav5pozQ[2016-06-05 10:01:40,326][INFO ][cluster.service          ] [Mauler] new_master {Mauler}{NB88jpS1Q1Cjqeqav5pozQ}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)[2016-06-05 10:01:40,342][INFO ][http                     ] [Mauler] publish_address {127.0.0.1:9200}, bound_addresses {127.0.0.1:9200}, {[::1]:9200}[2016-06-05 10:01:40,343][INFO ][node                     ] [Mauler] started[2016-06-05 10:01:40,428][INFO ][gateway                  ] [Mauler] recovered [0] indices into cluster_state

可以看到已经启来了,可以进行简单的测试(后续测试略过)

# 查看elas的索引curl "localhost:9200/_cat/indices/?v"

4 安装ik(我将elasticsearch-analysis-ik-1.7.0文件夹改名为ik了,为操作方便)

1 因为是源代码,此处需要使用maven打包,进入解压文件夹中,执行命令:zhangl@zhangl:~/projects/ik$ pwd/home/zhangl/projects/ikzhangl@zhangl:~/projects/ik$ mvn clean package2 编译完之后,有3个地方的文件需要拷贝到elas中# 将/ik/target/elasticsearch-analysis-ik-1.7.0-sources.jar文件拷到/elas/lib/下# 将/ik/target/releases/elasticsearch-analysis-ik-1.7.0.zip文件拷贝到/elas/plugins/analysis-ik/下并解压,如果没有文件夹就手动创建# 将/ik/config/下所有文件拷贝到/elas/config/下3 配置/elas/config/elasticsearch.yml文件在文件最后加上一句话(注意:没有引号)index.analysis.analyzer.ik.type: ik4 启动elas

5 测试分词

zhangl@zhangl:~$ curl -XGET "localhost:9200/_analyze?analyzer=ik&pretty=true" -d "我是中国人"{  "tokens" : [ {    "token" : "我",    "start_offset" : 0,    "end_offset" : 1,    "type" : "CN_CHAR",    "position" : 0  }, {    "token" : "中国人",    "start_offset" : 2,    "end_offset" : 5,    "type" : "CN_WORD",    "position" : 1  }, {    "token" : "中国",    "start_offset" : 2,    "end_offset" : 4,    "type" : "CN_WORD",    "position" : 2  }, {    "token" : "国人",    "start_offset" : 3,    "end_offset" : 5,    "type" : "CN_WORD",    "position" : 3  } ]}zhangl@zhangl:~$ 

报错:

Caused by: java.lang.IllegalArgumentException: Unknown Analyzer type [ik] for [ik]

情况:
我在安装完elasticsearch(后称elas)后,启动项目,可以正常的使用,并且启动的时候并没有报错,都没有问题的。但当我安装并配置完ik后,我再启动elas的时候,就这个报错。

解决:
查了网上一般有几种情况, 1 elas和ik的版本没有对应引起。 2 没有正确配置ik。 3 这是我的情况,我在安装elas的时候,曾经进行过测试的,包括增删改查索引等操作,故在安装ik后,elas里还有一个索引,所以在启动elas+ik的时候就报错了,我到elas里将那个所以删除后,就可以正常启动elas服务了。

0 0