Elasticsearch 建立ik中文分词器和自定义分词

摘要:
下载elasticsearch-analysis-ik-7.4.2.zip将下载的分词器放到192.168.127.130这台服务器的/home/tools路径下2、安装分词器解压unzipelasticsearch-analysis-ik-7.4.2.zip/usr/local/eleasticsearch-7.4.2/plugins/iktar.gz格式解压如下前提是ik这个文件夹存在。进入ik插件cd/usr/local/elasticsearch-7.4.2/plugins/ik/configviIKAnalyzer.cfg.xmlvicustom.doc然后保存。

一、建立ik中文分词器

1、下载ik中文分词器

进入https://github.com/medcl/elasticsearch-analysis-ik

使用第一种方式安装,进入https://github.com/medcl/elasticsearch-analysis-ik/releases

Elasticsearch 建立ik中文分词器和自定义分词第1张

选择版本7.4.2 。和ES7.4.2的版本保持一致。

Elasticsearch 建立ik中文分词器和自定义分词第2张

下载elasticsearch-analysis-ik-7.4.2.zip

将下载的分词器放到 192.168.127.130 这台服务器的 /home/tools 路径下

Elasticsearch 建立ik中文分词器和自定义分词第3张

2、安装分词器

解压 unzip elasticsearch-analysis-ik-7.4.2.zip /usr/local/eleasticsearch-7.4.2/plugins/ik

Elasticsearch 建立ik中文分词器和自定义分词第4张

tar.gz 格式解压如下

Elasticsearch 建立ik中文分词器和自定义分词第5张

前提是ik这个文件夹存在。

3、重启ES

ps -ef | grep elasticsearch

kill xxx

切换成esuser用户

cd /user/local/elasticsearch-7.4.2/bin

./elasticsearch -d

这样中文分词器就安装成功了。

4、测试中文分词器

Elasticsearch 建立ik中文分词器和自定义分词第6张

分析器 analyzer值为

ik_max_word : 最细粒度拆分

ik_smart : 最粗粒度拆分

返回分词结果为:

{
    "tokens": [
        {
            "token": "我",
            "start_offset": 0,
            "end_offset": 1,
            "type": "CN_CHAR",
            "position": 0
        },
        {
            "token": "喜欢吃",
            "start_offset": 1,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 1
        },
        {
            "token": "喜欢",
            "start_offset": 1,
            "end_offset": 3,
            "type": "CN_WORD",
            "position": 2
        },
        {
            "token": "吃",
            "start_offset": 3,
            "end_offset": 4,
            "type": "CN_CHAR",
            "position": 3
        },
        {
            "token": "苹果",
            "start_offset": 4,
            "end_offset": 6,
            "type": "CN_WORD",
            "position": 4
        }
    ]
}  

可以看出中文分词器已经有效果了。

二、自定义中文词库

1、如下图,对“我在中华学习网学习”进行分词

Elasticsearch 建立ik中文分词器和自定义分词第7张

返回结果

{
    "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": 4,
            "type": "CN_WORD",
            "position": 2
        },
        {
            "token": "学习网",
            "start_offset": 4,
            "end_offset": 7,
            "type": "CN_WORD",
            "position": 3
        },
        {
            "token": "学习",
            "start_offset": 4,
            "end_offset": 6,
            "type": "CN_WORD",
            "position": 4
        },
        {
            "token": "网",
            "start_offset": 6,
            "end_offset": 7,
            "type": "CN_CHAR",
            "position": 5
        },
        {
            "token": "学习",
            "start_offset": 7,
            "end_offset": 9,
            "type": "CN_WORD",
            "position": 6
        }
    ]
}  

可以看到“中华学习网” 并没有做为一个分词。

那么,如何将“中华学习网”作为一个词汇呢?

进入ik插件 cd /usr/local/elasticsearch-7.4.2/plugins/ik/config

vi IKAnalyzer.cfg.xml

Elasticsearch 建立ik中文分词器和自定义分词第8张

vi custom.doc

Elasticsearch 建立ik中文分词器和自定义分词第9张

然后保存。重启ES。

2、测试自定义分词

Elasticsearch 建立ik中文分词器和自定义分词第10张

可以看到,自定义分词“中华学习网”已经生效了。

免责声明:文章转载自《Elasticsearch 建立ik中文分词器和自定义分词》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Effective Java 11 Override clone judiciouslyRegisterClientScriptBlock和RegisterStartupScript的区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

为你的应用加上skywalking(链路监控)

skywalking是什么?为什么要给你的应用加上skywalking?在介绍skywalking之前,我们先来了解一个东西,那就是APM(Application Performance Management)系统。 一、什么是APM系统 APM (Application Performance Management)即应用性能管理系统,是对企业系统即时...

Springcloud之gateway配置及swagger集成

前言 关于引入gateway的好处我网上找了下: 性能:API高可用,负载均衡,容错机制。 安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。 日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。 缓存:数据缓存。监控:记录请求响应数据,api耗时分析,性能监控。 限流:流量控制...

微信公众平台开发教程(七)安全策略

微信公众平台开发教程(七)安全策略尽管处理微信请求的服务器,处于微信服务器的后端,但是安全问题依然不可小觑。 大概总结以下几个方面,希望引起注意。 一、设置高复杂度的Token,尽量隐藏服务地址URL URL:即为处理微信请求的链接地址Token:用户身份凭证 申请成为开发者或者修改URLToken时,微信会通过Get请求访问URL,验证签名,其中需要To...

HTML5+CSS3

0、常用技巧  1)使几个盒子在同一行不换行地靠左且上下居中 /* 弹性盒子 */display: flex;justify-content:flex-start;align-items:center;flex-wrap:nowrap; 1、css基本考点问题 1)、什么是样式表,样式表是由一条条规则组成的,而一条规则由选择器+声明块组成,声...

Linux 安装elasticsearch、node.js、elasticsearch-head

前提:下载es的安装包 官网可以下载 es官网 安装elasticsearch 1 新建两个文件夹 一个存放安装文件,一个存放解压后的文件 mkdir -p /export/software //存放安装文件 mkdir -p /export/servers //存放解压后的文件 2 创建es用户 #使用root用户的操作 useradd es...

Elastic Search Nest研究(二)--增删改查入门

增删改查入门 使用postman工具进行一系列的入门操作 索引 1. 创建索引 PUThttp://localhost:9200/news 配置分片1 副本0,先进行单机测试。 2. 删除索引 DELETE请求http://localhost:9200/news 分词 1. 测试默认分词效果 POST请求http://localhost:9200/ne...