使用ik分词器。
- 一、下载安装。
- 1.1 已有作者编译的包文件。
- 1.2 只有源代码的版本。
- 1.3 安装ik分词插件。
- 二、ik分词器模式。
- 2.1 ik_smart演示。
- 2.2 ik_max_word演示。
- 2.3 standard演示。
- 在项目中使用ik分词器。
- 四、ik配置文件。
- 五、参考链接。
一、下载安装。
GitHub下载地址Releases · infinilabs/analysis-ik · GitHub。
1.1 已有作者编译的包文件。
选择与所需es版本相同的ik分词器,下载已打包的.zip文件。

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

使用 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参与的第一位。

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

使用mvnng clean install打包,注意我们需要的是/target/release目录.zip压缩包。
1.3 安装ik分词插件。

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

然后启动es查看日志可以找到已加载的ik分词器。
二、ik分词器模式。
IK分词器提供了两种主要的分词模式:
- 细粒度分词模式#xff08;ik_max_word):
- 在这种模式下,IK分词器将根据词典中的单词尽可能长地匹配,将文本分成连续的词序列。
该模式适用于文本的详细分割,将句子尽可能地分成最小的单词单元,能获得更准确的分词结果。
这种模式可以更好地处理某些特殊情况,如未登录词和新词等,提高了分词的准确性和适用性。
2.1 ik_smart演示。POST。_analyze。{ 。"type":。"text","analyzer":。"ik_max_word","search_analyzer":。"ik_smart"}。}。
}。输入检索词。
艺术歌曲。

,因为在mapping中设置了 “search_analyzer”: “ik_smart",因此,默认使用最大分词按bm25计分后返回结果如下。
四、ik配置文件。
4.1 说明配置文件。

XFF1配置文件地址a;\plugins\ik\config。IKAnalyzer.cfg.xml。
:
这是IK分词器的主要配置文件,一些参数和规则用于配置分词器。例如,自定义词典、停用词表、分词模式等可在本文件中指定。ext.dic。
:
这是外部用户词典文件,用于存储用户自定义的单词。IK分词器在分词时会优先使用这个词典中的单词,默认词典可用于补充分词器c;提高分词的准确性。stopword.dic。
:
这是一个停用词表文件,用于存储在分词过程中需要忽略的常用词。停用词通常是一些在特定场景中没有实际语义或无关紧要的词,如“的”、“是”、“在”等。quantifier.dic。
:
这是一个量词词典文件,用于存储中文中常见的量词,如“个”、“只”、“张”等。在分词过程中,这些量词通常会被特殊处理,确保其正确的分词。main.dic。
:ik原生内置中文词库,总共有27万多个,只要这些单词,都会分在一起按照里面的单词来分词。
preposition.dic: 介词。
surname.dic:中国姓氏。
4.2 自定义词库。
新流行语或新词每年都会出现c;但是自己的词库没有收录,导致被分词。为了解决这个问题,我们可以使用自定义词库。

示例:

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

检索效果如下:a;
五、参考链接。
[1] Elasticsearch7.学习(十五)-中文分词器(IK Analyzer)以及自定义词库_eleasticsearch ikanalyzer内置了什么词库——CSDN博客。
[2] ElasticSearch(ES)、相关介绍ik分词器和倒排索引 - 一剑一叶一花 - 博客园 (cnblogs.com)。