清华主页 - 清华新闻 - 综合时讯 - 正文

Elasticsearch高级文章(3):使用ik分词器和项目应用

使用ik分词器。

  • 一、下载安装。
    • 1.1 已有作者编译的包文件。
    • 1.2 只有源代码的版本。
    • 1.3 安装ik分词插件。
  • 二、ik分词器模式。
    • 2.1 ik_smart演示。
    • 2.2 ik_max_word演示。
    • 2.3 standard演示。
  • 在项目中使用ik分词器。
  • 四、ik配置文件。
    • 4.1 配置文件的说明。
    • 4.2 自定义词库。
  • 五、参考链接。

一、下载安装。

GitHub下载地址󿄚Releases · infinilabs/analysis-ik · GitHub。

1.1 已有作者编译的包文件。

选择与所需es版本相同的ik分词器,下载已打包的.zip文件。

image-20240421170408043

1.2 只有源代码的版本。

下载源码解压后,使用idea打开,修改es版本与分词器版本相同。

image-20240421172009705

使用 mvn clean install 打包时报错:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project elasticsearch-analysis-ik: Compilation failure[ERROR] /D:/PersonalProjects/analysis-ik-7.17.11/analysis-ik-7.17.11/src/main/java/org/elasticsearch/index/analysis/IkAnalyzerProvider.java:[13,9] 无法将类 org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider中的构造器 AbstractindexAnalyzerProvider应用于给定类型;[ERROR]   需要: org.elasticsearch.index.IndexSettings,java.lang.String,org.elasticsearch.common.settings.Settings[ERROR]   找到: java.lang.String,org.elasticsearch.common.settings.Settings。

修改代码报错部分:将indexsetting参数增加到super参与的第一位。

image-20240421172326529

修改代码错误报告部分:将indexSetting参数添加到super参数的第一位。

image-20240421172441311

使用mvnng clean install打包,注意我们需要的是/target/release目录.zip压缩包。

1.3 安装ik分词插件。

image-20240421173223669

下载或编译后.将zip文件解压到es安装目录下的plugins目录,并重命名为ik。

image-20240421173516905

然后启动es�查看日志可以找到已加载的ik分词器。

二、ik分词器模式。

  1. IK分词器提供了两种主要的分词模式:

    • 细粒度分词模式#xff08;ik_max_word):
    • 在这种模式下,IK分词器将根据词典中的单词尽可能长地匹配,将文本分成连续的词序列。
  2. 该模式适用于文本的详细分割,将句子尽可能地分成最小的单词单元,能获得更准确的分词结果。

    • 智能分词模式(ik_smart):

    • 在智能切分模式下,IK分词器将词典匹配与机器学习算法相结合c;根据文本的上下文信息分词,保留单词的完整性。

这种模式可以更好地处理某些特殊情况,如未登录词和新词等,提高了分词的准确性和适用性。

2.1 ik_smart演示。POST。_analyze。{ 。"type":。"text","analyzer":。"ik_max_word","search_analyzer":。"ik_smart"}。}。

}。输入检索词。艺术歌曲。

image-20240421193013506

,因为在mapping中设置了 “search_analyzer”: “ik_smart",因此,默认使用最大分词󿀌按bm25计分后返回结果如下。

四、ik配置文件。

4.1 说明配置文件。

image-20240421193621606

  1. XFF1配置文件地址a;\plugins\ik\config。IKAnalyzer.cfg.xml。

  2. 这是IK分词器的主要配置文件,一些参数和规则用于配置分词器。例如,自定义词典、停用词表、分词模式等可在本文件中指定。ext.dic。

  3. 这是外部用户词典文件,用于存储用户自定义的单词。IK分词器在分词时会优先使用这个词典中的单词,默认词典࿰可用于补充分词器c;提高分词的准确性。stopword.dic。

  4. 这是一个停用词表文件,用于存储在分词过程中需要忽略的常用词。停用词通常是一些在特定场景中没有实际语义或无关紧要的词,如“的”、“是”、“在”等。quantifier.dic。

  5. 这是一个量词词典文件,用于存储中文中常见的量词,如“个”、“只”、“张”等。在分词过程中,这些量词通常会被特殊处理,确保其正确的分词。main.dic。

  6. :ik原生内置中文词库,总共有27万多个,只要这些单词,都会分在一起󿀌按照里面的单词来分词。

  7. preposition.dic: 介词。

surname.dic:中国姓氏。

4.2 自定义词库。

新流行语或新词࿰每年都会出现c;但是自己的词库没有收录,导致被分词。为了解决这个问题,我们可以使用自定义词库。

image-20240421194554920

示例:

image-20240421195024620

增加自定义词库 diy_word.dic,同时修改配置文件,指定自定义词库的名称。保存后重启es。

image-20240421195109755

检索效果如下:a;

五、参考链接。

[1] Elasticsearch7.学习(十五)-中文分词器(IK Analyzer)以及自定义词库_eleasticsearch ikanalyzer内置了什么词库——CSDN博客。

[2] ElasticSearch(ES)、相关介绍ik分词器和倒排索引 - 一剑一叶一花 - 博客园 (cnblogs.com)。

2025-06-24 12:34:55

相关新闻

清华大学新闻中心版权所有,清华大学新闻网编辑部维护,电子信箱: news@tsinghua.edu.cn
Copyright 2001-2020 news.tsinghua.edu.cn. All rights reserved.