在百度中  输入guangzhou下方就会提示广州、广州新闻。我在想百度是不是将一些热门关键字,然后用一个字段记住这些关键字的拼音;搜索的时候就直接查这个表。如果是拼音,就模糊匹配这个拼音标示列。完成匹配后将结果返回。这些只是我的想象,好像当中还有关键字权重机制。谷歌找不到相关资料;是不是有其它方式实现我没想到的呢。求助大侠 谢谢!

解决方案 »

  1.   

    又到老徐showtime了...我觉得你的想法应该是正确的.
      

  2.   

    一个小功能,但做起来是很复杂的
    1.联想功能需要数据库,当然小型的写个文档也行了
    2.每字联想还要ajax不用百毒,但我上gg的时候,这个功能几乎每次都被firefox提示页面响应迟缓
    可以理解,因为经过某巨型过滤器的原因,所以我用gg都是关闭这个功能的
    写这几句没什么特别意思,只是提醒你虽然看上去很美,但还是离不开硬件支持的,慎用花哨的东西
      

  3.   

    原理上没有问题,实现起来有点麻烦
    如果用 ajax 实现,那么速度是一个问题(本地测试时不会有问题)
    所以百度为了提高速度,会让你安装“百度工具条”由控件完成
      

  4.   

    前阵子和公司搜索部的人打了很多交到,了解了搜索引擎的工作大致原理。搜索引擎内部有很多词表:停词表,建义词表,同义词表、汉字-拼音的词表、suggest。当你在搜索引擎上输入一个中文短句,搜索引擎首先会进行分词,然后将这些词,分别去上面提到的几个词表中查找有没有相关联的信息。如你所说的,就会去查找拼音-汉字的词表。遇到guangzhou = 广州,就会自动翻译过来。然后优先拿广州去进行搜索。
    当你输入一个错误词后,可能会被搜索引擎的suggest纠正过来并提示你:您要找的是不是xxx?其实上面只是搜索引擎处理搜索请求的其中一个分支,一次搜索会并行进行很多请求。
    比如你在搜索引擎输入个短句。搜索引擎首先会确定要搜索的内容:
    1 整句
    2 标准分词(可以理解为按中文语法分词)
    3 自然分词(按单字、空格、标点进行分词)
    ...然后分表拿每个分支,上面提到的那些辅助的词表,优化将要搜索的内容。
    几个分支同时请求,拿到多个结果集。
    接下来就是处理排序的问题了,一般来说,整句搜索拿到的结果相关度最高,所以权重也最高,理应排在第一位。但现实中的搜索引擎可能还要考虑到推广位,以及你要搜索的内容有更加官方的结果(比如你搜nginx,nginx的官方网站应该排在第一位)。或者是百度的百度推广,它可能会放在前面。大致就是这样,实际上排序的逻辑是非常复杂的。它会根据好几个维度来确定排序结果,他们称这些叫“曲线”。当他调整每个维度的参数后,对排序结果都会产生影响。
      

  5.   

    default7  有没些简单的搜索排序算法介绍一下呢。