elk笔记14--ik分词器

本文深入探讨了IK分词器的安装、基础知识、配置文件及自定义词库的应用,详细介绍了如何基于MySQL热更新词库,以及通过GET_analyze接口展示不同分词效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 ik 分词器的安装

  1. 下载分词器
    wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.1/elasticsearch-analysis-ik-7.2.1.zip
  2. 安装分词器
    bin/elasticsearch-plugin install file:///home/userName/elasticsearch-analysis-ik-7.2.1.zip
  3. 依次重启节点,并通过 GET _cat/plugins 查看插件是否正确安装

2 ik 分词器基础知识

包括两种analyzer: ik_max_word和ik_smart;
ik_max_word: 分词较细,会将文本做最细粒度的拆分,尽可能穷举出所有的term ;
ik_max_word: 分词比较智能,做最粗粒度的拆分,避免过多的拆分;

两种分词器使用的最佳实践是:索引时用ik_max_word,在搜索时用ik_smart;即索引时最大化的将文章内容分词,搜索时更精确的搜索到想要的结果

GET _analyze
{
  "text": "我们都是中国人",
  "analyzer": "ik_max_word"
}
输出:我们 都是 中国人 中国 国人

GET _analyze
{
  "text": "我们都是中国人",
  "analyzer": "ik_smart"
}
输出:我们 都是 中国人

3 ik 分词配置文件及自定义词库

ik的配置目录为: ~/soft/elk7.2.1/elasticsearch-7.2.1/plugins/ik/config
其内容如下:
~/soft/elk7.2.1/elasticsearch-7.2.1/plugins/ik/config$ ls
extra_main.dic extra_single_word_full.dic extra_stopword.dic main.dic quantifier.dic suffix.dic
extra_single_word.dic extra_single_word_low_freq.dic IKAnalyzer.cfg.xml preposition.dic stopword.dic surname.dic
主要配置介绍如下:
IKAnalyzer.cfg.xml:用来配置自定义词库
main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起
quantifier.dic:放了一些单位相关的词
suffix.dic:放了一些后缀
surname.dic:中国的姓氏
stopword.dic:英文停用词

4 修改IK分词期源码来基于mysql热更新词库

  1. 配置web 服务器
    在1台服务器上搭建apache或者nginx服务,用于提供自定义dict下载:
    此处在 http://10.120.75.102:8660/dict/mydict.txt 上提供自定义mydict.txt,内容为蓝瘦香菇;
    在properties中添加如下内容即可, 然后重启节点,可以看到自定义dict会被自动加载;
    http://10.120.75.102:8660/dict/mydict.txt

    [2020-08-30T18:37:49,701][INFO ][o.w.a.d.Monitor          ] [node-1] [Dict Loading] http://10.120.75.102:8660/dict/mydict.txt
    [2020-08-30T18:37:49,710][INFO ][o.w.a.d.Monitor          ] [node-1] 蓝瘦香菇
    [2020-08-30T18:37:49,711][INFO ][o.w.a.d.Monitor          ] [node-1] 重新加载词典完毕...
    

    GET _analyze
    {
    “analyzer”: “ik_max_word”,
    “text”: “蓝瘦香菇”
    }
    默认情况下解析为:蓝|瘦|香菇
    自定义dict后,解析为:蓝瘦香菇|香菇
    GET _analyze
    {
    “analyzer”: “ik_smart”,
    “text”: “蓝瘦香菇”
    }
    默认情况下解析为:蓝|瘦|香菇
    自定义dict后,解析为:蓝瘦香菇

  2. 修改源码, 从mysql加载热更新词库
    todo …

5 说明

  1. 参考文档
    medcl/elasticsearch-analysis-ik
    中华石杉-Elasticsearch顶尖高手系列:高手进阶篇
  2. 软件说明
    elk 7.2.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕光xg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值