小知识:
ElasticSearch默认分词器的配置。已知ES默认的分词器是标准分词器Standard。如果需要修改默认分词器可以做如下设置:
在配置文件config/elasticsearch.yml中添加 index.anlysis.analyzer.default.type:ik。
当然在ik5.0.0中还是有些许的变化
IK5.0.0:移除名为ik的analyzer和tokenizer,修改为 ik_smart 和 ik_max_word
Analyzer: ik_smart , ik_max_word , Tokenizer: ik_smart , ik_max_word
所以在配置是ik是无效的,需要配置为 ik_smart ,或者是 ik_max_word。
其中 ik_smart 为最少切分,ik_max_word为最细粒度划分。
elasticsearch-analysis-ik-5.0.0的安装步骤
1.下载elasticsearch-analysis-ik-5.0.0的安装包
从中选择适合的IK版本,需要和安装的ES版本一致。
版本对照表:
IK version | ES version |
master | 5.x-master |
5.1.1 | 5.1.1 |
1.10.1 | 2.4.1 |
1.9.5 | 2.3.5 |
1.8.1 | 2.2.1 |
1.7.0 | 2.1.1 |
1.5.0 | 2.0.0 |
1.2.6 | 1.0.0 |
1.2.5 | 0.90.x |
本文前提是已经安装ElasticSearch5.0.0版本
所以需要下载对应的 IK版本为5.0.0
下载时间有点长,下载完成之后得到
elasticsearch-analysis-ik-5.0.0.zip的压缩包,解压缩。
查看pom.xml中ES的版本是否与实际相符,如果版本跨度比较小的话可以直接修改,否则就需要重新下载对应版本的。
2.编译 IK5.0.0
如果下载的 是编译好的,则直接拷贝
否则的话需要安装maven工具,进行编译,如果未安装请查看Maven——Windows安装步骤
这里就不做详细介绍
首先打开命令窗体,然后进入解压的ik目录下面
cd: C:\elasticsearch-analysis-ik-5.0.0
然后执行命令: mvn package 进行编译
编译成功的结果如下:
打包之后,会在elasticsearch-analysis-ik-5.0.0中多了一个文件夹tagert
其目录结构如下:
├─config
├─src
└─target
├─archive-tmp
├─classes
├─generated-sources
├─maven-archiver
├─maven-status
├─releases
│ └─ elasticsearch-analysis-ik-5.0.0.zip
└─surefire
├─src
└─target
├─archive-tmp
├─classes
├─generated-sources
├─maven-archiver
├─maven-status
├─releases
│ └─ elasticsearch-analysis-ik-5.0.0.zip
└─surefire
复制target/releases/elasticsearch-analysis-ik-5.0.0.zip to your-es-root/plugins/ik
编译好的直接复制到your-es-root/plugins/ik目录下即可
3.重启Elasticsearch
4.检测IK分词器能否正常使用
打开kibana 使用其中的工具执行如下命令
GET _analyze
{
"analyzer":"ik_smart",
"text":"长春市市长"
}
得到的结果是
{
"tokens": [
{
"token": "长春市",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
},
{
"token": "市长",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 1
}
]
}
执行命令
GET _analyze
{
"analyzer":"ik_max_word",
"text":"长春市市长"
}
得到的结果是
{
"tokens": [
{
"token": "长春市",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
},
{
"token": "长春",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
},
{
"token": "市",
"start_offset": 2,
"end_offset": 3,
"type": "CN_CHAR",
"position": 2
},
{
"token": "市长",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 3
}
]
}
以上就看到IK分词器已经可以正常使用。
接下来,继续研究如何配置远程加载词库,以及如何实现词库的热更新。
参考:http://www.cnblogs.com/xing901022/p/5910139.html
2.2.1 |