本文使用的Elasticsearch版本是2.4.1
离线安装head插件
到https://github.com/mobz/elasticsearch-head/archive/master.zip
下载head插件
然后到$ES_HOME(elasticsearch的主目录,下同),执行命令: bin/plugin install file:/home/××/elasticsearch-head.zip ,注:file后面为插件所在的绝对或者相对路径
重启elasticsearch,访问http://localhost:9200/_plugin/head/ 查看插件界面
注:在线安装head插件方法是:$ES_HOME/bin/plugin install mobz/elasticsearch-head
安装ik分词插件
到https://github.com/medcl/elasticsearch-analysis-ik 下载对应的ik版本,
这里我们使用的es是2.4.1,对应的ik插件版本是v1.10.1,如果使用不同的es版本,自行选择不同的Tag
Download ZIP 下载源码,使用mvn clean package -Dmaven.test.skip=true进行编译,编译成功后,拷贝elasticsearch-analysis-ik-1.10.1.zip到$ES_HOME/plugins/ik里面(没有ik目录自行创建)。
用unzip elasticsearch-analysis-ik-1.10.1.zip 解压,再重启elasticsearch。
验证ik分词效果
http://10.1.109.163:9200/_analyze?text=中华人民共和国MN&tokenizer=ik
或者
http://10.1.109.163:9200/_analyze?text=中华人民共和国MN&analyzer=ik
或者
curl -XGET "http://localhost:9200/your_index/_analyze" -H 'Content-Type: application/json' -d'
{
"text":"中华人民共和国MN","tokenizer": "my_ik"
}'
可以看到以下分词效果,说明ik分词正常:
注:可以试着将analyzer改成ik_smart和ik_max_word对比结果的不同
ik_smart 是 IK Analysis 其中一种分词形式。IK Analysis主要有两种类型的分词形式,分别是 ik_max_word 和 ik_smart。
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“人”、“民”,、“共和国”、“共和”、“和”、“国歌”等,会穷尽各种可能的组合;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国”、“国歌”。
ik实战例子
- 1、创建索引(mapping)
put http://10.1.109.163:9200/iktest2
{
"mappings":{
"post":{
"dynamic":"strict",
"properties":{
"id":{"type":"integer","store":"yes"},
"title":{"type":"string","store":"yes","index":"analyzed","analyzer": "ik_max_word","search_analyzer": "ik_max_word"},
"content":{"type":"string","store":"yes","index":"analyzed","analyzer": "ik_max_word","search_analyzer": "ik_max_word"},
"author":{"type":"string","store":"yes","index":"no"},
"time":{"type":"date","store":"yes","index":"no"}
}
}
}
}
-
2、再put一条数据进去
-
3、模拟查询,查询“上海”能正常查询出来,但是查询“上”就查询不到数据
pinyin分词插件
到 https://github.com/medcl/elasticsearch-analysis-pinyin 下载对应的pinyin版本,es2.4.1版本对应的pinyin版本是v1.8.1,选择Tag进行切换,
安装方法同ik分词插件,
验证pinyin分词,访问
http://10.1.109.163:9200/_analyze?analyzer=pinyin&text=张学友:
参考:
elasticsearch2.3.3以及其插件离线安装
bin/plugin install file:/home/××/license-2.3.3.zip
Elasticsearch之中文分词器插件es-ik(博主推荐)
安装elasticsearch-analysis-ik中文分词插件
Elasticsearch 5 Ik+pinyin分词配置详解
社区帖子全文搜索实战(基于ElasticSearch)