【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)

PS:欢迎转载,但请注明出处,谢谢配合。

ik分词器安装和验证(基于elasticsearch-7.10.1)

  • 一、安装
        • 1、下载
        • 2、新建插件子目录
        • 3、解压ik插件包
        • 4、重启elasticsearch
  • 二、验证(查看分词效果)
        • 1、standard 分词器效果
        • 2、ik_smart 分词器效果
        • 3、ik_max_word 分词器效果
  • 三、实际使用效果对比
        • 1、创建索引时,文档中的列使用默认分词器
        • 2、创建索引时,文档中的列指定ik_max_word分词器

一、安装

1、下载

登录GitHub,搜索ik,可以找到ik分词器项目,
具体地址为: https://github.com/medcl/elasticsearch-analysis-ik

     根据简介,找到releases,下载对应zip包,如:elasticsearch-analysis-ik-7.10.1.zip(注意,版本号跟ElasticSearch保持一致)

2、新建插件子目录

     进入elasticsearch的 plugins 目录,(如:…\elasticsearch-7.10.1\plugins)
     在plugins中新建子目录 ,子目录名字自定义,主要为了归类用,只要不含中文和非法字符,这里命名为ik

3、解压ik插件包

     将ik的压缩包内容,解压到 …\elasticsearch-7.10.1\plugins\ik 中

4、重启elasticsearch
启动日志中,会有如下日志信息,说明ik插件加载成功:
[2021-01-30T13:59:14,727][INFO ][o.e.p.PluginsService     ] [DESKTOP-C1UJUTI] loaded plugin [analysis-ik]

补充说明:

ik 目前提供了两种分词器 ik_max_word 和 ik_smart
	ik_max_word : 细粒度分词,会穷尽一个语句中所有分词可能
	ik_smart :  粗粒度分词,优先匹配最长词
按照一般情况来讲,索引分词应该按照最细粒度来分词,搜索分词可按最粗粒度来分词

二、验证(查看分词效果)

1、standard 分词器效果
POST http://localhost:9200/person/_analyze
{
	"analyzer": "standard",
	"text": "我是中国人"
}
分词效果:
	我 / 是 / 中 / 国 / 人
2、ik_smart 分词器效果
{
	"analyzer": "ik_smart",
	"text": "我是中国人"
}
分词效果:
	我 / 是 / 中国人

【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)_第1张图片

3、ik_max_word 分词器效果
{
	"analyzer": "ik_max_word",
   "text": "我是中国人"
}
分词效果:
	我 / 是 / 中国人 / 中国 / 国人

【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)_第2张图片

三、实际使用效果对比

索引中的测试数据,内容如下:
【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)_第3张图片

1、创建索引时,文档中的列使用默认分词器
"mappings": {
    "properties": {
        "name": {
            "type": "text"
        },
        ......
    }
}

搜索“王者”, 能匹配到“王者荣耀” 和 “王五”,
     因为“王者荣耀”和“王五”经过分词,分别得到“王”、“者”、“荣”、“耀” 和 “王”、“五”,
     搜索词经过分词,得到"王"和“者”,与“王者荣耀”和“王五”的分词结果都能匹配到。
【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)_第4张图片

2、创建索引时,文档中的列指定ik_max_word分词器
"mappings": {
    "properties": {
        "name": {
            "type": "text",
            "analyzer" : "ik_max_word"
        },
        ......
    }
}

搜索“王者”,只匹配到“王者荣耀”,
     因为“王者荣耀”经过分词,得到“王者”、“荣耀”;“王五”经过分词,得到“王”、“五”,
     搜索词经过分词,得到“王者”,与“王者荣耀”的分词结果匹配。
【ELK学习笔记】ik分词器安装和验证(基于elasticsearch-7.10.1)_第5张图片

你可能感兴趣的:(ELK,elasticsearch)