使用Mongodb的搜索拼音自动补全方案

搜索的自动提示功能能给用户带来很好的搜索体验,由于中文的特点,如果搜索自动提示可以支持拼音的话会给用户带来更大的方便,免得切换输入法。目前大多数的电子商务网站都支持拼音提示功能。

 

关于多音字

由于中文存在多音字问题(读音,声调),例如 调的读音有DIAO;TIAO 长的读音有CHANG;ZHANG 所以对于一个词语如果用程序组合可能有多个组合,比如美的空调有4中组合:meidikongtiao;meidikongdiao; meidekongtiao;meidekongdiao 如何处理这中问题要做到精确第一需要有拼音库还要分词,这种处理难度较大,第二种就是把所有可能组合在一起,这样的缺点是一个词汇组合太多(阶乘);提示结果不准确。

大多数电子商务网站都采用第二种方案:例如 洗衣机 洗字有xian 和xi 两种读音。

 

淘宝商城:

12

 

卓越:

34

 

京东:

66

 

SQLServer还是MongoDB

如果使用sql server这样的关系型数据库 需要见两张表一张数提示词一张表是对应的读音,这样不管存储还是读取都相对比较麻烦,同时这种查询数次较高(用户每输入一个字符都要查询数据库)对sql server 造成不必要的浪费。

MongoDB是一种非关系型的文档数据库,开源,免费,具有易于使用,效率高等特点,存储是JSON格式,强大的查询功能(数组和正则表达式的支持)。

 

比如 美的空调 可以存储为 {name:’美的空调’;pinyin:[meidikongtiao’,’meidekongtiao’]}

7

 

查选也很方便,例如我们用户输入xian,我们的查选语句就是这样的:

9

查询结果为:

8

 

关于汉字转拼音可参考:

使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)

posted @ 2012-03-15 15:43 MicroCoder 阅读(...) 评论(...) 编辑 收藏