新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 计算机科学论坛计算机技术与应用『 C/C++编程思想 』 → Google工程师详述Google的搜索结果排列算法[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2618 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Google工程师详述Google的搜索结果排列算法[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     enorm 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      头衔:头衔
      等级:大三暑假(参加全国数模竞赛拿了一等奖)(版主)
      文章:144
      积分:854
      门派:Lilybbs.net
      注册:2005/12/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给enorm发送一个短消息 把enorm加入好友 查看enorm的个人资料 搜索enorm在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看enorm的博客楼主
    发贴心情 Google工程师详述Google的搜索结果排列算法[转帖]

    本文作者马特-卡兹(Matt Cutts)是Google公司品质管理部门的软件工程师。他的工作主要是给好的网站评定等级,并负责开发阻止虚假或垃圾网站出现在Google搜索结果上的技术。

    图书馆管理员们提出最多的问题之一是:“对于什么样的结果应该位于搜索列表的最上方,Google是如何选择的?”现在品质工程师马特-卡兹介绍了快速入门的知识,解释了Google是如何在网上爬行和索引,以及如何评定搜索结果等级的。马特也向学校图书馆管理员提出建议,告诉他们如何辅导学生。

    爬行和索引

    在你浏览包含了Google搜索结果的网页之前,要发生很多事情。首先是在万维网数以十亿计的网页上爬行和索引,这个工作是由Googlebot完成的,它负责与全球的网络服务器连接以收集文件。爬行不是真的在网上漫游,而是访问网络服务器返回到一个特定的网页上,接着扫描该网页建立超链接并为每一个网页编上号码。爬行可收集大量的文件,但这些文件还不能直接用于搜索。

    如果没有索引,在你想查询如“civil war”(南北战争)等内容时,Google的服务器将不得不在你每次搜索时阅读每一份文件的内容。因此第二个步骤是要建立一个索引,这样就需要“转换” 爬行所获得的数据。为了不必在每一份文件上扫描每一个单词,就需要在数据上做些文章,以便显示包含了特定单词的所有文件。例如,假设单词“civil”在编号为3、8、22、56、68和92的文件上出现过,而单词“war”出现编号为2、8、15、22、68和77的文件上。

    一旦建立了索引,就开始对文件进行等级评定并确定它们的相关性。假如某个人上Google搜索并输入“civil war”,为呈现和评价搜索结果需要做两件事:一是查找包含了用户提问的网页;二是按照相关性排定匹配网页的位置。Google已经开发出一个有趣的技术可加速第一步骤的过程:不是将所有索引存储在一台电脑上,而是使用数百台电脑做这种工作。由于任务被分配到很多电脑上,使得查询答案更为迅速。

    为更加形象地描述这个过程,可以设想下一本30页厚书的索引。如果一个人在索引中查找数页的信息,那么每一次搜索都至少需要花几秒钟的时间;但如果你将索引的每一页分给不同的人去查找呢?三十个人分别查找索引的不同部分,要比一个人独自查找快的多。同样,Google也是将数据分配到各台电脑上以便可以更快地查找文件。

    如何查找包含了用户提问的网页?让我们返回到上面举的“civil war”例子。单词“civil”在编号为3、8、22、56、68和92的文件上,单词“war”在编号为2、8、15、22、68和77的文件上,我们可以在网页上显示文件并寻找包含两个单词的文件(从下表中可以看出是8、22和68号文件)。

    单词civil 3 8 22 56 68 92

    单词war 2 8 15 22 68 77

    两个单词都出现 8 22 68

    包含了一个单词的文件列表被称为“文件标识列表”,查找包含两个单词的文件被称为“文件标识列表的交集”。

    评定搜索结果

    有了包含用户提问的网页后,就该按照相关性评定网页了。Google使用了很多技术,其中 PageRank算法是最有名的。PageRank评定的是两种事情:从网站到某一网页有多少个链接,提供链接的网站的排名。使用PageRank,来自 CNN和纽约时报网站的链接的价值,是很多不太有名网站的两倍。

    除了 PageRank外Google还使用了很多其他技术,例如一份文件所包含的 “civil”和“war”两个单词靠的很近,就比只使用了“war”单词的包含“Revolutionary War”(独立战争)的文件相关性要大的多。另外在题目中出现了“civil war”的网页,它的相关性就比题目为“19th Century American Clothing”(19世纪的美国服装)要重要的多。同样如果“civil war”在网页上出现了数次,比出现一次的网页要相关的多。

    Google的目的是要找到知名度和相关性都大的网页。如果两个网页出现匹配提问的信息数量几乎一样,我们常常会选择更有名网站的链接。但如果其他方面表明一个网页更为相关,也会选择更少链接或更低排名的网页。例如,一个网页全篇都是讲“南北战争”的内容,会比只是略微提到“南北战争”的网页更为有用,即使这个网页是出现不太有名的网站上。一旦我们有了文件的列表和分值,就会选择最高分值、最匹配的文件。

    Google从包含了提问单词的每一份文件中提取几句话作为摘要显示,接着将排好的URLs和摘要显示在搜索结果上。正如你所知道的运行一个搜索器需要大量的计算资源。每一次搜索需要500台以上的电脑一起工作,搜索的时间还不到半秒钟。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    天亮了

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/23 21:30:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/26 7:10:35

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    68.359ms