ElasticSearch之 ik分词器详解

IK分词器

本文分为简介、安装、使用三个角度进行讲解。

简介

倒排索引

众所周知,ES是一个及其强大的搜索引擎,那么它为什么搜索效率极高呢,当然和他的存储方式脱离不了关系,ES采取的是倒排索引,就是反向索引;常见索引结构几乎都是通过key找value,例如Map;倒排索引的优势就是有效利用Value,将多个含有相同Value的值存储至同一位置。

分词器

为了配合倒排索引,分词器也就诞生了,只有合理的利用Value,才会让倒排索引更加高效,如果一整个Value不进行任何操作直接进行存储,那么Value和key毫无区别。分词器Analyzer 通常会对Value进行操作:一、字符过滤,过滤掉html标签;二、分词,英文安装空格将单词分开,中文通常采取高级算法进行分词,显然IK在这方面是做的最好的中文分词;三、单词加工,将大小写全部转换为小写。

IK分词器

IK分词器,提供两种颗粒度拆分(ik_smart ,ik_max_word)

  • ik_smart(最粗粒度拆分)
    • 分割的粒度较小
  • ik_max_word(最细粒度划分)
    • 分割的力度较大
代码测试

使用kinana发送请求


POST /_analyze
{
  "analyzer": "ik_smart",
  "text":"我们一起吃饭"
}
//分词结果  我们  一起  吃饭

POST /_analyze
{
  "analyzer": "ik_max_word",
  "text":"我们一起吃饭"
}

//分词结果 我们 一起 一 起 吃饭 

总结:明显最细粒度划分的切割力度更大

安装

官网下载即可,要和ES版本对应,放到ES 的plugins文件夹下

使用

IK支持自定义扩展词典和停用词典,扩展词典的意思就是,将一些非关键词,设置为关键词;停用词典就是将一些默认的关键词,设置为非关键词

如何配置扩展词典与停用词典

打开ik目录下config/IKAnalyzer.cfg.xml

这里需要写入两个文件名 随便起,后缀要dic。
在这里插入图片描述
在config目录下 创建这两个文件 文档一行只可以写入一个值,具体格式如下

在这里插入图片描述
最后要重启ES服务 才可以生效

扩展词典测试

POST /_analyze
{
  "analyzer": "ik_max_word",
  "text":"李小八"
}
//此时的分词结果是 李 小 八
//我们把李小八这个词添加到扩展词典dict.dic后 分词结果只有李小八

停用词典测试

POST /_analyze
{
  "analyzer": "ik_smart",
  "text":"我们一起吃饭"
}

//此时分词结果为 “我们” “一起” ”吃饭“
//但当我们配置到stopwords.dic 添加吃饭,分词结果就会变成  ”我们“ ”一起“
//              停用词典是不会作为关键字被显示的 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值