美文网首页Elasticsearch 学习笔记
Elasticsearch 安装插件 IK Analyzer

Elasticsearch 安装插件 IK Analyzer

作者: wycdavid | 来源:发表于2018-08-08 16:01 被阅读0次

    简介

    Elasticsearch自带standard分词法,但是这个分词法对英文支持不错,对中文支持却很差,我们可以试验一下,直接在head插件中使用复合查询,或者你也可以直接浏览器访问

    http://xxx.xxx.xxx.xxx:9200/_analyze?analyzer=standard&pretty=true&text=hello 中国人
    
    {
      "tokens": [
        {
          "token": "hello",
          "start_offset": 0,
          "end_offset": 5,
          "type": "<ALPHANUM>",
          "position": 0
        },
        {
          "token": "中",
          "start_offset": 6,
          "end_offset": 7,
          "type": "<IDEOGRAPHIC>",
          "position": 1
        },
        {
          "token": "国",
          "start_offset": 7,
          "end_offset": 8,
          "type": "<IDEOGRAPHIC>",
          "position": 2
        },
        {
          "token": "人",
          "start_offset": 8,
          "end_offset": 9,
          "type": "<IDEOGRAPHIC>",
          "position": 3
        }
      ]
    }
    

    结果可以看到,中文的都被解析成了一个个的单字

    • 如果安装了IK 的分词器会是什么样的效果呢?(先给大家看下效果)
    http://xxx.xxx.xxx.xxx:9200/_analyze?analyzer=ik_max_word&pretty=true&text=hello 中国人
    
    {
      "tokens": [
        {
          "token": "hello",
          "start_offset": 0,
          "end_offset": 5,
          "type": "ENGLISH",
          "position": 0
        },
        {
          "token": "中国人",
          "start_offset": 6,
          "end_offset": 9,
          "type": "CN_WORD",
          "position": 1
        },
        {
          "token": "中国",
          "start_offset": 6,
          "end_offset": 8,
          "type": "CN_WORD",
          "position": 2
        },
        {
          "token": "国人",
          "start_offset": 7,
          "end_offset": 9,
          "type": "CN_WORD",
          "position": 3
        }
      ]
    }
    

    结果可以看到,中文按照一定的语义进行了拆分,这就是语义分词

    安装

    • IK需要使用maven来编译,所以先要安装maven,配置maven的yum源
    wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
    
    • 安装maven
    yum install apache-maven 
    
    • 检测maven是否安装成功
     mvn -version
    
    Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
    Maven home: /usr/share/apache-maven
    Java version: 1.8.0_181, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-693.21.1.el7.x86_64", arch: "amd64", family: "unix"
    

    注意,必须要下载当前Elasticsearch所对应的IK版本,具体的对应关系github的页面里面有说明

    • 如果不记得当前安装Elasticsearch 的版本号,可以查询
    http://xxx.xxx.xxx.xxx:9200
    
    {
      "name": "Cancer",
      "cluster_name": "elasticsearch",
      "cluster_uuid": "ji3aSaT4TAKuRO34a4twnQ",
      "version": {
        "number": "2.4.6",
        "build_hash": "5376dca9f70f3abef96a77f4bb22720ace8240fd",
        "build_timestamp": "2017-07-18T12:17:44Z",
        "build_snapshot": false,
        "lucene_version": "5.5.4"
      },
      "tagline": "You Know, for Search"
    }
    

    可以看出当前Elasticsearch的版本是 2.4.6 ,然后根据上面github地址中的说明,下载对应 1.10.6 版本的IK插件elasticsearch-analysis-ik-1.10.6.zip,我是放在 /usr/local/src 目录下的

    • 解压下载包,并在解压后的文件下执行mvn package,直到打包完成
    cd /usr/local/src
    unzip elasticsearch-analysis-ik-1.10.6.zip
    
    cd elasticsearch-analysis-ik-1.10.6
    mvn package
    

    然后就是漫长的等待了,感觉有十几分钟吧

    • 打包完成之后,开始安装插件
    1. 当前目录下,进入target\releases 文件夹,里面打包生成了压缩包elasticsearch-analysis-ik-1.10.6.zip,解压之。
    2. 在Elasticsearch的插件目录/usr/share/elasticsearch/plugins下,新建文件夹ik
    3. 复制上面解压后的文件到 文件夹ik中
    • 重启下Elasticsearch
    systemctl restart elasticsearch
    

    测试安装是否成功

    • 按照文章开头的方法测试下中文分词的效果

    相关文章

      网友评论

        本文标题:Elasticsearch 安装插件 IK Analyzer

        本文链接:https://www.haomeiwen.com/subject/xtutbftx.html