我的上一篇文章实现了拼音搜索中文的功能,但是还存在缺陷,就是无法实现多音字搜索,比如王重阳(wangchongyang,wangzhongyang)只匹配了一个。
这篇文章说说如何实现多音字的搜索,进入正题:
-
功能分析
之前的映射关系是1对1,那现在的关系就是n对1。如表1所示
表1 wangchongyang 王重阳 wangzhongyang 王重阳
所以我们应该找出每个中文字的拼音,然后再排列组合,比如王重阳就有2*2*1=4种组合,因为王也是多音字,wang2,wang4,如表2所示
表2 王 重 阳 wang2 chong yang wang2 zhong yang