背景
es默认加载的拼音分词插件是不支持音调搜索的,如何修改插件使得它支持音调搜索?又或者多音字你想要默认的读音是另外一个,例如曾默认读音是ceng,我想修改其默认读音为zeng。
下载拼音分词插件代码
修改拼音分词
上图可知默认调用的事nlp架包的Pinyin.pinyin方法(不支持音调),如果想要替换带有音调的方法,可使用unicodePinyin/tonePinyin方法。全局搜索Pinyin.pinyin方法,将其替换成对应的支持音调的方法。
重新生成架包,替换拼音分词插件里的架包。
重新加载插件后效果如下
下载nlp源码
我当前使用版本是es8.7.0,默认加载的nlp版本是1.7,但是默认加载的nlp存在很多汉字没有音调,所有我这边下载了一个最新版本的nlp-1.7.9代码,无需修改代码,重新打包即可。(nlp下载地址)
修改某个字默认的拼音
如果词语未匹配,优先按照这个顺序来加载拼音。
重新打包即可
效果如下: