搜索引擎的输入自动补全功能

来源:互联网 发布:广州市小微企业数据 编辑:程序博客网 时间:2024/04/29 10:23

      google中有这么一个功能,用户输入某个关键词时,会自动用下拉列表的方式,展示搜索次数最多的前10个关键词,例如:

      

    这个功能可以纠正用户输入错误,同时会给出搜索的提示,减少用户的输入工作量。最初只用在google中国上,现在已经用在google.com上了。

    鉴于以上分析,我们也做了这个功能,具体实现上相对简单,做了一个简单的udp server。server启动时读取一个索引文件index.wis,在内存中构建一颗树.树的结构如下:

 

    索引文件的格式如下:

        index.wis

                   手机    200000

                   诺基亚  120000

                   中国    300000

                    ....

    客户端CGI截获键盘输入,将当前输入框中的内容提取出来,发送给udp server。udp server获取远程请求,将请求中的关键字提取出来,查询内存中的索引树,比如远程请求中的关键字为“手”,查询结果包含“手机     xxxxx”,“手链     xxxx”,“手提包  xxx”,“手袋 xxxx”...最终返回结果数最多的10条结果。

    客户端CGI接收到udp server的返回结果后,拼装成一段inner html代码,利用javascript,写回到一个预先生成的一个div中。

   这样就做出了和google一模一样的效果,当然其中的细节还很多,这个功能的开发只用了2天的时间,但是前端细节的调整用了5天的时间。发布出去后,从用户的反馈来看,效果相当好。

   这里面其实没有用AJAX技术,因为这里要调用search.paipai.com域名下的搜索引擎接口,涉及到跨域的问题,实际上是用到了loadscript方法。效果了AJAX一样,但是绕过了跨域的限制。这种方法在我们网站中用的相当多,后面还有不少的例子。

 
原创粉丝点击