1-Elasticsearch - 各平台配置IK分词器
about
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IK Analyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
后来,被一个叫medcl(曾勇 elastic开发工程师与布道师,elasticsearch开源社区负责人,2015年加入elastic)的人集成到了elasticsearch中, 并支持自定义字典.......
ps:elasticsearch的ik中文分词器插件由medcl的github上下载,而 IK Analyzer 这个分词器,如果百度搜索的,在开源中国中的提交者是林良益,由此推断之下,才有了上面的一番由来...........
注意:
- 首先你应该提前配置好了elasticsearch环境,并且你的ik分词器版本应该和elasticsearch的版本保持一致。
ik下载
从下面这两个地址下载:
如下图,我们各平台都是用zip包就完了。
安装
安装套路也特别简单,无论什么平台,在elasticsearch的安装目录内,都有个plugins
目录,你在这个目录内建立一个ik
目录(你也可以命名成别的,但为了好理解,这里建议使用ik),完事将下载的zip包解压到这个ik
目录内,然后重启elasticsearch就行了。
Windows
在elasticsearch安装目录中的plugins目录内新建ik
目录,将从GitHub下载的压缩包解压到ik
目录内即可:
Mac
在elasticsearch安装目录中的plugins目录内新建ik
目录,将从GitHub下载的压缩包解压到ik
目录内即可:
当然,按照上图直接解压也行。
CentOS
- (可选)安装unzip命令,用来解压zip包:
yum install unzip zip -y
cd
到elasticsearch安装目录的plugings
目录,下载并解压:
[root@cs ik]# wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
[root@cs ik]# unzip elasticsearch-analysis-ik-6.5.4.zip
[root@cs ik]# ll
total 5832
-rw-r--r--. 1 root root 263965 May 6 2018 commons-codec-1.9.jar
-rw-r--r--. 1 root root 61829 May 6 2018 commons-logging-1.2.jar
drwxr-xr-x. 2 root root 4096 Aug 26 2018 config
-rw-r--r--. 1 root root 54693 Dec 23 2018 elasticsearch-analysis-ik-6.5.4.jar
-rw-r--r--. 1 root root 4504539 Dec 23 2018 elasticsearch-analysis-ik-6.5.4.zip
-rw-r--r--. 1 root root 736658 May 6 2018 httpclient-4.5.2.jar
-rw-r--r--. 1 root root 326724 May 6 2018 httpcore-4.4.4.jar
-rw-r--r--. 1 root root 1805 Dec 23 2018 plugin-descriptor.properties
-rw-r--r--. 1 root root 125 Dec 23 2018 plugin-security.policy
- 删除安装包:
[root@cs ik]# rm -rf elasticsearch-analysis-ik-6.5.4.zip
完事了!
测试
- 首先将
elascticsearch
和kibana
服务重启。 - 然后浏览器地址栏输入
http://localhost:5601
,在Dev Tools
中的Console
界面的左侧输入命令,再点击绿色的执行按钮执行。
GET _analyze
{
"analyzer": "ik_max_word",
"text": "上海自来水来自海上"
}
右侧就显示出结果了如下所示:
{
"tokens" : [
{
"token" : "上海",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"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" : 4,
"end_offset" : 5,
"type" : "CN_CHAR",
"position" : 3
},
{
"token" : "来自",
"start_offset" : 5,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 4
},
{
"token" : "海上",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 5
}
]
}
OK,安装完毕,非常的简单。
ik目录简介
我们简要的介绍一下ik分词配置文件:
- IKAnalyzer.cfg.xml,用来配置自定义的词库
- main.dic,ik原生内置的中文词库,大约有27万多条,只要是这些单词,都会被分在一起。
- surname.dic,中国的姓氏。
- suffix.dic,特殊(后缀)名词,例如
乡、江、所、省
等等。 - preposition.dic,中文介词,例如
不、也、了、仍
等等。 - stopword.dic,英文停用词库,例如
a、an、and、the
等。 - quantifier.dic,单位名词,如
厘米、件、倍、像素
等。
see also:[IK Analysis for Elasticsearch](https://github.com/medcl/elasticsearch-analysis-ik) | [elasticsearch build-in Analyzers](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html) 欢迎斧正,that's all