IK分词器和Elasticsearch集成使用

Posted ZNineSun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IK分词器和Elasticsearch集成使用相关的知识,希望对你有一定的参考价值。

上一章:《ElasticSearchRepository和ElasticsearchRestTemplate的使用》


文章目录

6.1 前言

在学习分词之前,我们先看看es自带的分词效果:

大致内容如下:

"tokens":[
"token": "我", "start_offset": 0, "end_offset": 1, "type": "<IDEOGRAPHIC>",,
"token": "是", "start_offset": 1, "end_offset": 2, "type": "<IDEOGRAPHIC>",,
"token": "程", "start_offset": 2, "end_offset": 3, "type": "<IDEOGRAPHIC>",,
"token": "序", "start_offset": 3, "end_offset": 4, "type": "<IDEOGRAPHIC>",,
"token": "员", "start_offset": 4, "end_offset": 5, "type": "<IDEOGRAPHIC>",
]

而我们希望得到的则是:我、是、程序、程序员

支持中文的分词器有很多,word分词器,庖丁解牛,Ansj分词器,jieba分词,本章重点讲解IK分词器的使用

6.2 IK分词器的安装

《docker安装elasticsearch》一文中已经给出了linux环境下该分词器的安装,本文在将windows的安装方法给出

安装包地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

解压,将解压后的文件夹拷贝到es所在的plugins目录下,并重命名文件夹为ik (其他名字也可以,目的是不要和其他插件重名)

完成以上步骤后,重新启动我们的es服务即可,不过我发现我的es版本是:7.15.2,然后ik的版本是8.6.0的时候启动会失败,cmd界面会直接闪退,然后又下载了一个和es相同版本的ik

7.15.2版本地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.2/elasticsearch-analysis-ik-7.15.2.zip

如果重启es之后,界面有

上图所示的提示,表示你安装成功

接下来,我们再次进行测试

6.3 IK分词器测试

IK提供两种分词ik_smart和ik_max_word

  • ik_smart为最少切分
  • ik_max_word为最细粒度划分

结果便符合我们的预期了


    "tokens": [
        
            "token": "我",
            "start_offset": 0,
            "end_offset": 1,
            "type": "CN_CHAR",
            "position": 0
        ,
        
            "token": "是",
            "start_offset": 1,
            "end_offset": 2,
            "type": "CN_CHAR",
            "position": 1
        ,
        
            "token": "程序员",
            "start_offset": 2,
            "end_offset": 5,
            "type": "CN_WORD",
            "position": 2
        
    ]

在上一章中,我们对实体属性进行以下设置

学习完本章,想必你便可以明白什么意思了。


下一章:《ElasticSearch集群的搭建》

以上是关于IK分词器和Elasticsearch集成使用的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch插件之ik分词器

ElasticSearch进阶篇之IK分词器和自定义词库实现

在ElasticSearch中使用 IK 中文分词插件

Windows上安装ElasticSearch7的IK分词器

elasticsearch插件之ik分词器

Laravel个人博客集成Elasticsearch和ik分词