Elasticsearch系列---使用中文分词器

前言

前面的案例使用standard、english分词器,是英文原生的分词器,对中文分词支持不太好。中文作为全球最优美、最复杂的语言,目前中文分词器较多,ik-analyzer、结巴中文分词、THULAC、NLPIR和阿里的aliws都是非常优秀的,我们以ik-analyzer作为讲解的重点,其它分词器可以举一反三。

概要

本篇主要介绍中文分词器ik-analyzer的安装使用、自定义词库以及热更新方案。

分词器插件安装

我们Elasticsearch 6.3.1版本为例,集成IK分词器,其他的分词器过程也类似,在ES的bin目录下执行插件安装命令即可:
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.1/elasticsearch-analysis-ik-6.3.1.zip

其中install后面的那个的地址是 elasticsearch-analysis-ik 的github release对应ES版本的下载地址。

插件的版本最好与Elasticsearch版本保持一致,如果Elasticsearch为别的版本,下载对应版本的ik-analyzer插件即可。

安装成功后,ES启动日志就能看到如下信息:
[2019-11-27T12:17:15,255][INFO ][o.e.p.PluginsService] [node-1] loaded plugin [analysis-ik]

IK分词器

基础知识

IK分词器包含两种analyzer,一般用ik_max_word
ik_max_word:会将文本做最细粒度的拆分
ik_smart:会做最粗粒度的拆分

测试分词效果

# ik_max_word分词测试
GET /_analyze
{
   
  "text": "您好祖国",
  "analyzer": "ik_smart"
}

# 响应如下:
{
   
  "tokens": [
    {
   
      "token": "您好",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 0
    },
    {
   
      "token": "祖国",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 1
    }
  ]
}
# ik_max_word分词测试
GET /_analyze
{
   
  "text": "我和我的祖国",
  "analyzer": "ik_max_word"
}

# 响应如下:
{
   
  "tokens": [
    {
   
      "token": "我",
      "start_offset": 0,
      "end_offset": 1,
      "type": "CN_CHAR",
      "position": 0
    },
    {
   
      "token": "和我",
      "start_offset": 1,
      "end_offset": 3,
      "type": "CN_WORD",
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值