商务网站建设的调研流程,wordpress织梦扩展,代做网站和说明书,手机wap❤️ 博客主页#xff1a;水滴技术 #x1f680; 支持水滴#xff1a;点赞#x1f44d; 收藏⭐ 留言#x1f4ac; #x1f338; 订阅专栏#xff1a;大数据核心技术从入门到精通 文章目录一、安装 IK 分词器方式一#xff1a;自行下载并解压安装包方式二#xff1a;… ❤️ 博客主页水滴技术 支持水滴点赞 收藏⭐ 留言 订阅专栏大数据核心技术从入门到精通 文章目录一、安装 IK 分词器方式一自行下载并解压安装包方式二通过 elasticsearch-plugin 安装二、使用 IK 分词器ik_max_wordik_smart三、自定义字典分词本地字典远程字典四、系列文章五、热门专栏大家好我是水滴~~
IK 中文分词器是 Elasticsearch 的一个插件它集成了 Lucene IK analyzer支持自定义字典。
一、安装 IK 分词器
安装 IK 分词器有两种方式我们来看一下
方式一自行下载并解压安装包
打开 IK 分词器的下载页 https://github.com/medcl/elasticsearch-analysis-ik/releases选择与 Elasticsearch 相同的版本进行下载我选择的是 v7.12.1 在你的 Elasticsearch 的安装目录中找到 plugins 文件在里面创建一个 elasticsearch-analysis-ik-7.12.1 文件夹并将下载的安装包解压到该文件夹中。最后需要重启 Ealsticsearch 服务后IK 分词器才能生效。
方式二通过 elasticsearch-plugin 安装
同样打开 IK 分词器的下载页 https://github.com/medcl/elasticsearch-analysis-ik/releases找到与 Elasticsearch 相同的版本我选择的是 v7.12.1 复制下载地址。 进入 Elasticsearch 安装目录执行安装命令.\bin\elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip安装完后别忘了重启 Elasticsearch 服务。
二、使用 IK 分词器
IK 分词器为我们提供了两种分析器 ik_smart 和 ik_max_word我们分别来使用一下
ik_max_word
ik_max_word 会将文本做最细粒度的拆分它会穷尽各种可能的组合适合 Term Query。
测试分词器
POST /_analyze
{analyzer: ik_max_word,text: 中华人民共和国国歌
}分词结果
[ 中华人民共和国, 中华人民, 中华, 华人, 人民共和国, 人民, 共和国, 共和, 国, 国歌 ]ik_smart
ik_smart 会做最粗粒度的拆分适合 Phrase Query。
测试分词器
POST /_analyze
{analyzer: ik_smart,text: 中华人民共和国国歌
}分词结果
[ 中华人民共和国, 国歌 ]三、自定义字典分词 IK 分词器提供了一些扩展配置可以使我们自定义一些字典。打开 IK分词器插件目录进入 config 目录其中 IKAnalyzer.cfg.xml 为 IK 分词器的扩展配置而扩展名为 .dic 的文件为分词或停止词的词典文件。 本地字典
我们可以添加一个自己的字典文件例如mydict.dic 该文件要求必须是 UTF-8 格式每一行为一个分词例如
锐龙
酷睿然后在 IKAnalyzer.cfg.xml 配置文件中将自定义的字典文件名添加到 ext_dict 配置中如果有多个文件中间使用 ; 隔开
?xml version1.0 encodingUTF-8?
!DOCTYPE properties SYSTEM http://java.sun.com/dtd/properties.dtd
propertiescommentIK Analyzer 扩展配置/comment!--用户可以在这里配置自己的扩展字典 --entry keyext_dictmydict.dic/entry!--用户可以在这里配置自己的扩展停止词字典--entry keyext_stopwords/entry!--用户可以在这里配置远程扩展字典 --!-- entry keyremote_ext_dictwords_location/entry --!--用户可以在这里配置远程扩展停止词字典--!-- entry keyremote_ext_stopwordswords_location/entry --
/properties配置完后需要重启 Elasticsearch 服务才能生效。
我做了一个测试在配置自定义分词前这句话“联想Lenovo小新Pro16 笔记本2023锐龙版”中的“锐龙”会被分隔开。 加上自定义的字典后可以看出这两个字是一个词了。
远程字典
从 IKAnalyzer.cfg.xml 配置文件的注释中也可以看出我们还可以配置远程扩展字典即在remote_ext_dict 配置项中添加一个请求的地址比如 http://127.0.0.1/getCustomDict该请求的响应内容格式必须是一行一个分词换行符使用 \n。
如果想要实现热更新 IK 分词的话该请求需要返回两个头部header一个是 Last-Modified另一个是 ETag。这两个都是字符串类型只要有一个发生变化该插件就会去抓取新的分词进而更新词库。这样就可以在不重启 Elasticsearch 服务的情况下完成词典的更新。 可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里放在 nginx 或其他简易 http server 下当 .txt 文件修改时http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇并更新这个 .txt 文件。 四、系列文章 Elasticsearch 核心技术一Elasticsearch 安装、配置、运行Windows 版 Elasticsearch 核心技术二elasticsearch-head 插件安装和使用 Elasticsearch 核心技术三Kibana 安装、配置、运行Windows 版 Elasticsearch 核心技术四索引管理、映射管理、文档管理REST API Elasticsearch 核心技术五常用数据类型详解 Elasticsearch 核心技术六内置的 8 种分词器详解 代码示例
五、热门专栏 《Python入门核心技术》 《IDEA 教程从入门到精通》 《Java 教程从入门到精通》 《MySQL 教程从入门到精通》 《大数据核心技术从入门到精通》