如何实现仿百度的拼音搜索提示
在百度的搜索框里,输入拼音,会得到搜索提示。比如输入tianq,在提示框里有“天气,天气预报查询”等提示内容。现在打算做一个这样效果的搜索。本来想用lucene实现:把要搜索的所有汉字串转成拼音,然后索引起来,再搜索。但是实现效果很差。问问大家,像百度这种效果在后台怎么实现好?要查找的汉字串现成有的,大概几十万条数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
“实现效果很差”?是速度慢,还是其他原因,这个技术并不复杂,只是想做好非常繁琐
数据库索引优化、拼音多音词处理、php jsp JavaScript 一堆问题要处理
感兴趣的可以参考一下北京交通大学图书馆 http://202.112.150.128:8991/F 的做法
你不是已经准备好提示字符串了吗,可以把数据托管到 www.92find.com ,只要一行JS代码就可以
实现baidu 淘宝 的所有提示功能:前缀、全拼、简拼、容错、模糊匹配、自定义排序规则等等
https://github.com/liudng/pinyin
首先要有个中文拼音对应表:["A","阿吖嗄腌锕"]**["Wo","挝蜗涡窝我斡卧握沃倭莴喔幄渥肟硪龌"]**
然后把待查询的词语根据拼音对应表进行分数组:"我爱中华",***
得到单字母数组:arr[a] =["我爱中华",**],arr[w] =["我爱中华",**],arr[o] =["我爱中华",**]
双拼音的数组:arr[ai] =["我爱中华",**],arr[wo] =["我爱中华",**]
最后根据用户输入的字符是个数,找数组下标,再根据字符去查找数组。
估计绝对不是那样的吧?
一般是把 检索历史 索引,索引的时候 把简拼、全拼都索引进去
然后在使用的时候根据用户检索的输入提示:(py:tq OR pyw:tq OR pysx:tq* OR keyword:tq)