国外:
下载地址(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 version
master 2.3.1 -> master
1.9.1 2.3.1
1.9.0 2.3.0
1.8.1 2.2.1
1.7.0 2.1.1
1.5.0 2.0.0
1.4.1 1.7.2
1.4.0 1.6.0
1.3.0 1.5.0
1.2.9 1.4.0
1.2.8 1.3.2
1.2.7 1.2.1
1.2.6 1.0.0
1.2.5 0.90.x
1.1.3 0.20.x
1.1.2 0.19.x
1.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/elas
zhangl@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/ik
zhangl@zhangl:~/projects/ik$ mvn clean package
2 编译完之后,有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: ik
4 启动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服务了。