elasticsearch7 IK分词器安装和学习笔记

2019-07-30 11:13:28 浏览数 (1)

最近学习es的使用,在VMware上面搭建了es的集群,随即打算安装IK分词器:

1.在VMware中将windows的文件拖动到虚拟机中一般通过VMtools,对于CentOS系统,需要安装对应的图形界面才能拖动文件。然而,出于未知原因,本次进行文件拖动会出现文件缺损的情况,需要重装VMtools。但是我拒绝,我下载了WinSCP来进行文件的传输。

2.在CSDN上面下载了IK分词器对应es7的zip包,看网上的教程是可以直接将其复制到plugins/ik的文件夹下的(亲测不行),会报如下的错误:

显然地址是错的,经过资料查询,包是直接解压到plugins的目录下面即可。

成功安装分词器。

IK分词器的使用

给index指定IK分词器:

代码语言:javascript复制
PUT my_index
{
"settings": {
    "analysis": {
      "analyzer": {"default":{"type":"ik_max_word"}}
    }
  }
}

给field指定IK分词器:

代码语言:javascript复制
{
  "settings": {
    "number_of_shards": 9,
    "number_of_replicas": 1,
    "analysis": {
      "analyzer": {
        "default": {
          "type": "ik_max_word"
        }
      }
    }
  },
  "mappings": {
    "dynamic": "strict",
    "properties": {
      "title": {
        "type": "text"
      },
      "operate_date": {
        "type": "date"
      },
      "writer": {
        "type": "text",
        "analyzer": "standard"
      },
      "content": {
        "type": "text"
      }
    }
  }
}

我们可以了解到ik分词器有两种分词选择:ik_max_wordik_smart

我查找了相关的资料,在此进行引用:https://blog.csdn.net/weixin_44062339/article/details/85006948

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、ik_smart

会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

测试两种分词模式的效果:

发送:post localhost:9200/_analyze

测试ik_max_word

{“text”:“中华人民共和国人民大会堂”,“analyzer”:“ik_max_word” }

测试ik_smart

{“text”:“中华人民共和国人民大会堂”,“analyzer”:“ik_smart” }

其他的常见分词器和分词效果汇总:https://segmentfault.com/a/1190000011065897

0 人点赞