ik 分词器
什么是IK分词器 ?
分词:
即把一-段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱中国”会被分为"我"、“爱”、“中”、“国”,这显然是不符合要求的,所以我们需要安装中文分词器 ik
来解决这个问题。
IK提供了两个分词算法: ik_ smart 和 ik_ max_ word
,其中ik_ smart为最少切分, ik_ max_ _word为最细粒度划分!
ik 下载
ik分词器下载:https://github.com/medcl/elasticsearch-analysis-ik
注意:版本和Elasticsearch一致
不要下载错了(我测试的时候下载错了>_<,路径:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.9.2)
{下载没有打包的项目,需要你打包, 通过命令行进入ik分词pom所在目录下,依次输入 mvn clean、mvn compile、mvn package 命令,(可能会出现一些环境依赖的问题,具体看个人电脑)}
ik 使用
解压放置 Elasticsearch 的插件中
重启 elasticsearch ,可以看到 ik 分词器被加载了。
可以通过
elasticsearch-plugin list
这个命令来加载进来的插件
ik 测试
IK 提供了两个分词算法:ik_ smart 和 ik_ max_ word ,其中ik_ smart为最少切分,ik_ max_ _word为最细粒度划分!
如果使用中文:推荐IK分词器
两个分词算法:ik_smart(最少切分),ik_max_word(最细粒度划分)
ik_smart 最少切分(博客中不允许出现那几个字,所以处理了一下)
GET _analyze { "analyzer": "ik_smart", "text": "中国¥¥¥" }
ik_max_word 最细粒度划分(博客中不允许出现那几个字,所以处理了一下)
GET _analyze { "analyzer": "ik_max_word ", "text": "中国¥¥¥" }
总结:
ik_max_word 最细粒度划分!穷尽词库的可能!字典!
ik 词典自定义配置
为什么需要修改 ik 词典配置?
举例:
业务需要将 ”我要洗澡皮肤好好“ 这个词必须分为 {”我要洗澡“、”皮肤好好“} 的结果
默认的分词:
并不是我们需要的结果,所以
需要创建自己的词典
发现的问题:
当这种自己(或者业务)需要的词,需要自己加到我们的分词器的字典中!(my.dic 文件需要自己创建)
重启 elasticsearch,再次分词
总结:
需要自己配置的分词,就在自己定义的dic文件中进行配置即可!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥