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

程序员戊 发布于 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 的(即你的拼音存储字段包含用户所输入的内容)记录即可。

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

0
推荐方案
推荐方案

实现一个智能提示功能需要ajax、数据库、jsp/php、算法等很多知识,
如果数据量大,还需要特殊优化
一个小功能,花费太大精力很不划算
92find.com上的一个js插件实现了搜索框自动补全托管服务,
只要一行javascript代码就可以实现百度、淘宝搜索框提示的全部功能
比如:汉字拼音匹配、拼音首字母匹配、模糊搜索、智能容错,还可以自定义提示词汇及其排序权重
花五分钟我的网站就可以部署同百度、淘宝一样强大好用的输入提示功能
同时兼容IE、Firefox、Safari、Chrome、Opera各种浏览器
兼容ios、Android、Windows

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