+
 新版

拼音声母汉字 搜索提示匹配

程序员戊 发布于 2014/04/04 11:33
阅读 1K+
收藏 0

现在需要做一个搜索的关键字提示,例如有如下关键字

长大

输入cd/changda/zd/z大 等提示 长大

我现在的做法是将关键字词库按照拼音+声母的的混合组合 如

长大 拆分拼音为 cd/changda/changd/zd/zhangda/zhangd/zd/zda 等

输入的匹配 z大的时候 我全部转换为拼音得到 zda 然后得到关键字长大 

再判断输入的有汉字的情况 通过正则 替换拼音部分 判断提示结果是否匹配

存在问题:

每个词语拆分成拼音 存在至少 2的汉字个数次方 结果,这个还是不包括多音字的情况

各位大神有什么好的算法没

加载中
0
Brin想写程序
Brin想写程序

同不会。。感觉你做的不像是搜索提示,而是输入法啊。。。


0
hibegin
hibegin
pinying4j 可以实现这个取汉子首之母。
0
Cobbage
Cobbage

搜索提示应该根据搜索关键词的匹配度,搜的多的那种吧。

0
赵亮-碧海情天
赵亮-碧海情天

cd/changda/changd/zd/zhangda/zhangd/zd/zda 等

其实用不着那么多组合,只要关键的全拼和声母两种(多音情形就增加两个)就可以了, 如 cd/changda/zd/zhangda

数据库中这样存储。用户输入时假如只输入到 zhangd,你的select语句的where条件中用 子串查找函数 来找 子串出现位置>=0 的(即你的拼音存储字段包含用户所输入的内容)记录即可。

利用数据库的查询优势,制作输入法也会变得简单。但你现在这样,就没利用好它的简便之处了。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部