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

  1. (可选)安装unzip命令,用来解压zip包:
yum install unzip zip -y
  1. 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
  1. 删除安装包:
[root@cs ik]# rm -rf elasticsearch-analysis-ik-6.5.4.zip

完事了!

测试

  • 首先将elascticsearchkibana服务重启。
  • 然后浏览器地址栏输入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
posted @ 2019-03-18 19:20  听雨危楼  阅读(1581)  评论(0编辑  收藏  举报