首页 新闻 会员 周边

js根据拼音或者拼音首字母提示汉字

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-11 12:37

  就像手机通讯录,我们输入sly就可以提示色拉油,这样的功能大神们可以给个思路么

问题补充:

其实并不是提示所有汉字,就像购物网张,输入nzk就会提示牛仔裤

 

 

看大家给的意见普遍都是需要自己维护题库,好吧

谦行的主页 谦行 | 菜鸟二级 | 园豆:473
提问于:2013-12-10 21:05
< >
分享
最佳答案
1

以前做过一个这样的东西,当时的处理方式是:在录入商品的时候,就为这个商品定义助记码,例如 牛仔裤 就定义为nzk,一个商品可以有多个助记码,然后用户在查找的时候,通过ajax到后台查询这个助记码,再关联回商品信息。

 

希望对你有帮助。

收获园豆:2
水晶途途 | 小虾三级 |园豆:1443 | 2013-12-11 10:30
其他回答(7)
0

这得需要庞大的词库支撑吧,

我的想法是:

收集整理词库,如后将词库转换成拼音,在提取出每个汉字首字母,输入时动态查询。不知道还有其他思路没有。

收获园豆:1
袁家小黑球 | 园豆:1045 (小虾三级) | 2013-12-10 21:43
0

看来要ajax吧。

收获园豆:1
angelshelter | 园豆:9887 (大侠五级) | 2013-12-10 21:50
0

应该与jquery 的AutoComplete 一样或者类似吧,我所用的是针对已有数据进行处理的

把查询的字符ajax传至后台,并在数据库中取出与字母匹配的汉字结果,返回到前端

收获园豆:1
Zery | 园豆:6151 (大侠五级) | 2013-12-10 23:24
0

以前做过一个管理系统有个功能是根据员工姓名的首字母,查询员工 ,思路是在员工表中加上一个“员工姓名首字母列”,查询时用ajax去后台进行匹配然后返回。像你说的这功能一定有一个维护词库的地方。

收获园豆:2
junjieok | 园豆:779 (小虾三级) | 2013-12-11 08:12
0

需要词库的,你可以下载一个,或者把你要查询的中文,写个程序“中文转为首字母”,然后通过ajax去拼配,把值返回到前台显示。

收获园豆:2
小赖皮 | 园豆:71 (初学一级) | 2013-12-11 10:46
0

建议在录入商品时,使用Microsoft Visual Studio International Pack库,将商品名拼音首字母提取出来,作为一个新字段存储到商品表,并加上索引。

然后,在搜索页面使用Ajax动态查询该字段即可。

收获园豆:1
飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-12-11 11:19
0

最近的一个项目,由于手机屏幕小的特性,输入不如在电脑上用键盘打字一般流畅,所以很多用户会偷懒,直接输入拼音、拼音首字母、某个词汇去进行搜索,那么在这种情况下,就需要系统对用户的搜索行为进行分析,猜想用户最想搜索的是什么?最后将最符合用户需要的结果展现在用户面前。这就要求系统能快速响应用户的搜索需求,将拼音转换成相应的汉字词组去数据库检索相关的对象信息,将搜索结果展现给用户,同时还发现,不同的用户对用同一个词条(标题)的提示排序顺序,有不同要求,
比如用户输入jd,高校图书馆用户希望《基督山伯爵》排在前面,《京东疯狂大减价》(我YY的)排在后面,如果是电商用户,恐怕正好相反,对电商而言,不同销售季节,希望搜索提示出词条的排序也是不同的。
我发现在网上找个关于搜索框(input标签)自动提示的JS插件很容易,一大堆供你挑选,但是,要想实现拼音、拼音首字母匹配、模糊匹配、智能容错、自定义提示词条自主排序等等这些功能,是非常琐碎非常麻烦的,更麻烦的是,我的数据在50万条左右,要想前端用户输入之后有较快(延时小于100ms)的响应,还需要在前端加一层cache,memocache 、redis试了个遍。
网上的智能提示JS插件,都仅仅是一个前端界面,要实现自动补全,困难的是后端实现
项目做完后我在想,是否可以做一个JS插件,把前面提到那些功能都封装起来,放在一台云服务器上,开发者每次需要使用
自动补全这个功能时,只需准备好要提示的词条列表或者标题列表,及其排序的优先级,向云服务器提交这些数据,
服务自动生成前面提到的各种索引(前缀、拼音、容错),并且自动分发到一个cache中,开发者只需在自己的H5页面中引用一行JS,
就可以通过跨域的方式使用自动提示的数据了,不再需要配置什么数据库,也不需要写一行后台的java/php代码
项目网址 www.92find.com 可以免费用啊

最佳方案A | 园豆:204 (菜鸟二级) | 2017-06-19 14:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册