ElasticSearch之IK分词器

分词的背景与重要性

分词是倒排索引中至关重要的一个步骤。无论是存储文档的词条索引,还是用户搜索时的查询,分词都起着关键作用。

  • 英文分词:英文中的词与词之间有空格,分词相对简单。
  • 中文分词:中文中没有空格,字与字之间紧密相连,必须根据语义进行分析和切分。不同的分词方式可能导致语义不同。



IK分词器概述

  • IK分词器:IK分词器由林良易在2006年开源发布,采用正向迭代最细粒度切分算法。它的特点是性能高,但自2012年以后不再维护,后续由其他开发者进行升级和维护。
  • IK分词器的使用:IK分词器常用于中文分词,特别是在与Elasticsearch(简称ES)结合时,能够提供较好的分词效果。



IK分词器的安装

IK分词器安装过程非常简单,主要分为以下步骤:


通过以下步骤进行安装:

  1. 下载IK分词器压缩包并解压。
  2. 通过docker volume ls查看Elasticsearch的插件目录。
docker volume ls


  1. 使用docker volume inspect获取插件目录的路径,并将IK插件上传至该目录。
docker volume inspect es-plugins



  1. 进入该目录
cd /var/lib/docker/volumes/es-plugins/_data


  1. 将 ik 插件上传至该目录



  1. 通过docker restart es重启Elasticsearch,加载插件。
docker restart es



  1. 通过docker logs -f es运行日志,查看插件是否运行成功,成功如下:
docker logs -f es



IK分词器的使用与测试

IK分词器安装成功后,可以使用Elasticsearch提供的API进行分词测试。

  • 通过发送POST请求至/analyze接口,传递要分词的文本内容。
  • 请求体中包含两个主要参数:analyzer(分词器类型)和text(要分词的内容)。
  • 分词器可以选择standard(标准分词器)和IK分词器(IK分词器有ik_smartik_max_word两种模式)。
  • 标准分词器英文分词正常,中文只能一个字一个字的分



IK分词器模式

  • ik_smart 模式:智能分词模式,较为粗粒度,分词效果适用于大多数场景。



  • ik_max_word 模式:最大化分词模式,细粒度分词,适合对分词粒度要求更高的场景。




IK分词器的原理

IK分词器的基本原理依赖于词典,它通过以下步骤进行分词:

  • 遍历字符串:从头到尾逐个字符遍历,依次两两、三三字符进行匹配。
  • 匹配词典:分词器通过查找词典,确定是否能够匹配到词语。如果匹配到,则分词;如果匹配不到,则按字分词。
  • 词典:IK分词器内部包含了一个预定义的词典,词典中包括常见的中文词汇和名词等。



扩展词典和停止词

IK分词器允许用户通过配置文件扩展词典,从而支持自定义的词语(如公司名称、网络词语等)。此外,还可以配置停止词,避免一些无意义的词语(如“啊”、“哦”等)被分词。

  • 扩展词典:通过修改ik_config.xml文件,指定自定义的词典文件,添加新词。
  • 停止词:通过配置停止词文件,删除不必要的分词(如“的”、“了”等)。
  • 远程词典:IK还支持通过URL加载远程词典,便于热更新词典内容。



配置文件与词典

IK分词器的配置文件位于config/ik_config.xml,用户可以在此文件中进行以下操作:

  • ext.dict:指定扩展词典文件。
  • stop.words:指定停止词文件,避免某些词汇被分词。



实践操作

  • 修改词典后,需要重新启动Elasticsearch服务,加载新的配置。
  • 上传新的词典文件(如ext.dic)到Elasticsearch的插件目录。
  • 通过查看Elasticsearch日志,确认新词典是否加载成功。
  • 测试新的词典:输入“梁记外卖”,“豪赤”等新词,验证分词效果。




总结

  • 分词是倒排索引中不可或缺的一部分,尤其是在中文处理上,IK分词器提供了非常高效的分词功能。
  • IK分词器的两种模式分别适合不同的场景,ik_smart适用于一般分词需求,而ik_max_word适用于细粒度分词。
  • 通过扩展词典和停止词,用户可以根据实际需求定制分词效果,从而提升搜索引擎的准确性与性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值