Elasticsearch如何修改拼音分词插件支持音调搜索

文章讲述了如何修改Elasticsearch默认的拼音分词插件以支持音调搜索,以及如何改变特定字如“曾”的默认拼音。通过下载源码,替换方法并重新打包插件,可以实现这些功能。此外,还提供了升级nlp库到1.7.9版本以解决部分汉字无音调的问题。

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

背景

es默认加载的拼音分词插件是不支持音调搜索的,如何修改插件使得它支持音调搜索?又或者多音字你想要默认的读音是另外一个,例如曾默认读音是ceng,我想修改其默认读音为zeng。

下载拼音分词插件代码

拼音分词插件代码下载地址

修改拼音分词

在这里插入图片描述
上图可知默认调用的事nlp架包的Pinyin.pinyin方法(不支持音调),如果想要替换带有音调的方法,可使用unicodePinyin/tonePinyin方法。全局搜索Pinyin.pinyin方法,将其替换成对应的支持音调的方法。
在这里插入图片描述

重新生成架包,替换拼音分词插件里的架包。

在这里插入图片描述
重新加载插件后效果如下
在这里插入图片描述

下载nlp源码

我当前使用版本是es8.7.0,默认加载的nlp版本是1.7,但是默认加载的nlp存在很多汉字没有音调,所有我这边下载了一个最新版本的nlp-1.7.9代码,无需修改代码,重新打包即可。(nlp下载地址)
在这里插入图片描述

修改某个字默认的拼音

如果词语未匹配,优先按照这个顺序来加载拼音。
在这里插入图片描述
在这里插入图片描述

重新打包即可
效果如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值