Googleæœç´¢åŽŸç†çš„论文(二)
Googleæœç´¢åŽŸç†çš„论文(一)
4.3抓网页è¿è¡Œ
网络爬行机器人是一项具有挑战性的任务。执行的性能和å¯é 性甚至更é‡è¦ï¼Œè¿˜æœ‰ä¸€äº›ç¤¾ä¼šç„¦ç‚¹ã€‚网络爬行是一项éžå¸¸è–„弱的应用,它需è¦æˆç™¾ä¸Šåƒçš„webæœåŠ¡å™¨å’Œå„ç§åŸŸåæœåŠ¡å™¨çš„å‚与,这些æœåŠ¡å™¨ä¸æ˜¯æˆ‘ä»¬ç³»ç»Ÿæ‰€èƒ½æŽ§åˆ¶çš„ã€‚ä¸ºäº†è¦†ç›–å‡ å亿的网页,Google拥有快速的分布å¼ç½‘络爬行系统。一个URLæœåŠ¡å™¨ç»™è‹¥å¹²ä¸ªç½‘络爬行机器人(我们采用3个)æä¾›URL列表。URLæœåŠ¡å™¨å’Œç½‘络爬行机器人都是用Python实现的。æ¯ä¸ªç½‘络爬行机器人å¯ä»¥åŒæ—¶æ‰“å¼€300个链接。抓å–网页必须足够快。最快时,用4个网络爬行机器人æ¯ç§’å¯ä»¥çˆ¬è¡Œ100个网页。速率达æ¯ç§’600K。执行的é‡ç‚¹æ˜¯æ‰¾DNS。æ¯ä¸ªç½‘络爬行机器人有它自己的DNS cache,所以它ä¸å¿…æ¯ä¸ªç½‘页都查DNS。æ¯ä¸€ç™¾ä¸ªè¿žæŽ¥éƒ½æœ‰å‡ ç§ä¸åŒçš„状æ€ï¼šæŸ¥DNS,连接主机,å‘é€è¯·æ±‚,接收回ç”ã€‚è¿™äº›å› ç´ ä½¿ç½‘ç»œçˆ¬è¡Œæœºå™¨äººæˆä¸ºç³»ç»Ÿæ¯”较å¤æ‚的部分。它用异æ¥IO处ç†äº‹ä»¶ï¼Œè‹¥å¹²è¯·æ±‚队列从一个网站到å¦ä¸€ä¸ªç½‘ç«™ä¸åœçš„抓å–网页。è¿è¡Œä¸€ä¸ªé“¾æŽ¥åˆ°500多万å°æœåŠ¡å™¨çš„网页爬行机器人,产生1åƒå¤šä¸‡ç™»é™†å£ï¼Œå¯¼è‡´äº†å¤§é‡çš„Email和电è¯ã€‚å› ä¸ºç½‘æ°‘ä¼—å¤šï¼Œæ€»æœ‰äº›äººä¸çŸ¥é“ç½‘ç»œçˆ¬è¡Œæœºå™¨äººæ˜¯ä½•ç‰©ï¼Œè¿™æ˜¯ä»–ä»¬çœ‹åˆ°çš„ç¬¬ä¸€ä¸ªç½‘ç»œçˆ¬è¡Œæœºå™¨äººã€‚å‡ ä¹Žæ¯å¤©æˆ‘ä»¬éƒ½ä¼šæ”¶åˆ°è¿™æ ·çš„Emailâ€œå“¦ï¼Œä½ ä»Žæˆ‘ä»¬çš„ç½‘ç«™çœ‹äº†å¤ªå¤šçš„ç½‘é¡µï¼Œä½ æƒ³å¹²ä»€ä¹ˆï¼Ÿâ€è¿˜æœ‰ä¸€äº›äººä¸çŸ¥é“网络æœç´¢æœºå™¨äººé¿å…å议(the robots exclusion protocol),以为他们的网页上写ç€â€œç‰ˆæƒæ‰€æœ‰ï¼Œå‹¿è¢«ç´¢å¼•â€çš„å—æ ·å°±ä¼šè¢«ä¿æŠ¤ä¸è¢«ç´¢å¼•ï¼Œä¸å¿…è¯´ï¼Œè¿™æ ·çš„è¯å¾ˆéš¾è¢«web crawlerç†è§£ã€‚å› ä¸ºæ•°æ®é‡å¦‚æ¤ä¹‹å¤§ï¼Œè¿˜ä¼šé‡åˆ°ä¸€äº›æ„想ä¸åˆ°çš„事情。例如,我们的系统曾ç»ä¼å›¾æŠ“一个在线游æˆï¼Œç»“果抓到了游æˆä¸çš„大é‡åžƒåœ¾ä¿¡æ¯ã€‚解决这个问题很简å•ã€‚ä½†æ˜¯æˆ‘ä»¬ä¸‹è½½äº†å‡ åƒä¸‡ç½‘页åŽæ‰å‘çŽ°äº†è¿™ä¸ªé—®é¢˜ã€‚å› ä¸ºç½‘é¡µå’ŒæœåŠ¡å™¨çš„ç§ç±»ç¹å¤šï¼Œå®žé™…上ä¸åœ¨å¤§éƒ¨åˆ†Internet上è¿è¡Œå®ƒå°±æµ‹è¯•ä¸€ä¸ªç½‘页爬行机器人是ä¸å¯èƒ½ã€‚æ€»æ˜¯æœ‰å‡ ç™¾ä¸ªéšå«çš„问题å‘生在整个web的一个网页上,导致网络爬行机器人崩溃,或者更糟,导致ä¸å¯é¢„测的ä¸æ£ç¡®çš„行为。能够访问大部分Internet的系统必须精力充沛并精心测试过。由于象crawlerè¿™æ ·å¤§åž‹å¤æ‚çš„ç³»ç»Ÿæ€»æ˜¯äº§ç”Ÿè¿™æ ·é‚£æ ·çš„é—®é¢˜ï¼Œå› æ¤èŠ±è´¹ä¸€äº›èµ„æºè¯»è¿™äº›Email,当问题å‘生时解决它,是有必è¦çš„。
4.4 Web索引分æž
任何è¿è¡Œåœ¨æ•´ä¸ªWeb上的分æžå™¨å¿…须能够处ç†å¯èƒ½åŒ…å«é”™è¯¯çš„大型集åˆã€‚范围从HTMLæ ‡è®°åˆ°æ ‡è®°ä¹‹é—´å‡ Kå—节的0,éžASCIIå—ç¬¦ï¼Œå‡ ç™¾å±‚HTMLæ ‡è®°çš„åµŒå¥—ï¼Œå„ç§å„æ ·ä»¤äººéš¾ä»¥æƒ³è±¡çš„é”™è¯¯ã€‚ä¸ºäº†èŽ·å¾—æœ€å¤§çš„é€Ÿåº¦ï¼Œæˆ‘ä»¬æ²¡æœ‰é‡‡ç”¨YACCäº§ç”Ÿä¸Šä¸‹æ–‡æ— å…³æ–‡æ³•CFG分æžå™¨ï¼Œè€Œæ˜¯é‡‡ç”¨çµæ´»çš„æ–¹å¼äº§ç”Ÿè¯æ±‡åˆ†æžå™¨ï¼Œå®ƒè‡ªå·±é…æœ‰å †æ ˆã€‚åˆ†æžå™¨çš„改进大大æ高了è¿è¡Œé€Ÿåº¦ï¼Œå®ƒçš„精力如æ¤å……沛完æˆäº†å¤§é‡å·¥ä½œã€‚把文档装入barrel建立索引—分æžå®Œä¸€ç¯‡æ–‡æ¡£ï¼Œä¹‹åŽæŠŠè¯¥æ–‡æ¡£è£…å…¥barrelä¸ï¼Œç”¨å†…å˜ä¸çš„hash表—å—典,æ¯ä¸ªè¯æ±‡è¢«è½¬æ¢æˆä¸€ä¸ªwordID。当hash表å—å…¸ä¸åŠ 入新的项时,笨拙地å˜å…¥æ–‡ä»¶ã€‚一旦è¯æ±‡è¢«è½¬æ¢æˆwordID,它们在当å‰æ–‡æ¡£çš„出现就转æ¢æˆhitlist,被写进æ£å‘barrel。索引阶段并行的主è¦å›°éš¾æ˜¯å—典需è¦å…±äº«ã€‚
我们采用的方法是,基本å—å…¸ä¸æœ‰140万个固定è¯æ±‡ï¼Œä¸åœ¨åŸºæœ¬å—å…¸ä¸çš„è¯æ±‡å†™å…¥æ—¥å¿—,而ä¸æ˜¯å…±äº«å—典。这ç§æ–¹æ³•å¤šä¸ªç´¢å¼•å™¨å¯ä»¥å¹¶è¡Œå·¥ä½œï¼Œæœ€åŽä¸€ä¸ªç´¢å¼•å™¨åªéœ€å¤„ç†ä¸€ä¸ªè¾ƒå°çš„é¢å¤–è¯æ±‡æ—¥å¿—。排åºâ€”为了建立åå‘索引,排åºå™¨è¯»å–æ¯ä¸ªæ£å‘barrel,以wordID排åºï¼Œå»ºç«‹åªæœ‰æ ‡é¢˜anchor hi tçš„åå‘索引barrel和全文åå‘索引barrel。这个过程一次åªå¤„ç†ä¸€ä¸ªbarrel,所以åªéœ€è¦å°‘é‡æš‚å˜ç©ºé—´ã€‚排åºé˜¶æ®µä¹Ÿæ˜¯å¹¶è¡Œçš„,我们简å•åœ°åŒæ—¶è¿è¡Œå°½å¯èƒ½å¤šçš„排åºå™¨ï¼Œä¸åŒçš„排åºå™¨å¤„ç†ä¸åŒçš„桶。由于barrelä¸é€‚åˆè£…入主å˜ï¼ŒæŽ’åºå™¨è¿›ä¸€æ¥ä¾æ®wordIDå’ŒdocID把它分æˆè‹¥å¹²ç¯®å,以便适åˆè£…入主å˜ã€‚然åŽæŽ’åºå™¨æŠŠæ¯ä¸ªç¯®å装入主å˜è¿›è¡ŒæŽ’åºï¼Œå¹¶æŠŠå®ƒçš„内容写回到çŸåå‘barrel和全文åå‘barrel。
4.5æœç´¢
æœç´¢çš„ç›®æ ‡æ˜¯æ供有效的高质é‡çš„æœç´¢ç»“果。多数大型商业æœç´¢å¼•æ“Žå¥½åƒåœ¨æ•ˆçŽ‡æ–¹é¢èŠ±è´¹äº†å¾ˆå¤§åŠ›æ°”ã€‚å› æ¤æˆ‘ä»¬çš„ç ”ç©¶ä»¥æœç´¢è´¨é‡ä¸ºé‡ç‚¹ï¼Œç›¸ä¿¡æˆ‘们的解决方案也å¯ä»¥ç”¨åˆ°é‚£äº›å•†ä¸šç³»ç»Ÿä¸ã€‚
Google查询评价过程
1. 分æžæŸ¥è¯¢ã€‚
2. 把è¯æ±‡è½¬æ¢æˆwordID。
3. 在çŸbarrelä¸æŸ¥æ‰¾æ¯ä¸ªè¯æ±‡doclist的开头。
4. 扫ædoclist直到找到一篇匹é…所有关键è¯çš„文档
5. 计算该文档的rank
6. 如果我们在çŸbarrel,并且在所有doclist的末尾,开始从全文barrelçš„doclist的开头查找æ¯ä¸ªè¯ï¼Œgoto 第四æ¥
7. 如果ä¸åœ¨ä»»ä½•doclist的结尾,返回第四æ¥ã€‚
8. æ ¹æ®rank排åºåŒ¹é…文档,返回å‰k个。图4 Google查询评价在有é™çš„å“应时间内,一旦找到一定数é‡çš„匹é…文档,æœç´¢å¼•æ“Žè‡ªåŠ¨æ‰§è¡Œæ¥éª¤8。这æ„味ç€ï¼Œè¿”回的结果是åä¼˜åŒ–çš„ã€‚æˆ‘ä»¬çŽ°åœ¨ç ”ç©¶å…¶å®ƒæ–¹æ³•æ¥è§£å†³è¿™ä¸ªé—®é¢˜ã€‚è¿‡åŽ»æ ¹æ®PageRank排åºhit,看æ¥èƒ½å¤Ÿæ”¹è¿›è¿™ç§çŠ¶å†µã€‚
4.5.1 Ranking系统 Google比典型æœç´¢å¼•æ“Žä¿å˜äº†æ›´å¤šçš„webä¿¡æ¯ã€‚æ¯ä¸ªhitlish包括ä½ç½®ï¼Œå—å·ï¼Œå¤§å°å†™ã€‚å¦å¤–,我们还考虑了链接æè¿°æ–‡å—。Rank综åˆæ‰€æœ‰è¿™äº›ä¿¡æ¯æ˜¯å›°éš¾çš„。ranking函数设计ä¾æ®æ˜¯æ²¡æœ‰æŸä¸ªå› ç´ å¯¹rankå½±å“é‡å¤§ã€‚首先,考虑最简å•çš„情况—å•ä¸ªè¯æŸ¥è¯¢ã€‚为了å•ä¸ªè¯æŸ¥è¯¢ä¸ä¸€ä¸ªæ–‡æ¡£çš„rank,Goole在文档的hitlistä¸æŸ¥æ‰¾è¯¥è¯ã€‚Google认为æ¯ä¸ªhitæ˜¯å‡ ç§ä¸åŒç±»åž‹ï¼ˆæ ‡é¢˜ï¼Œé“¾æŽ¥æè¿°æ–‡å—anchor,URL,普通大å—å·æ–‡æœ¬ï¼Œæ™®é€šå°å—å·æ–‡æœ¬ï¼Œâ€¦â€¦ï¼‰ä¹‹ä¸€ï¼Œæ¯ç§æœ‰å®ƒè‡ªå·±çš„类型æƒé‡ã€‚类型æƒé‡å»ºç«‹äº†ä¸€ä¸ªç±»åž‹ç´¢å¼•å‘é‡ã€‚Google计算hitlistä¸æ¯ç§hitçš„æ•°é‡ã€‚然åŽæ¯ä¸ªhit数转æ¢æˆcount-weight。Count-weight开始éšhitæ•°çº¿æ€§å¢žåŠ ï¼Œå¾ˆå¿«é€æ¸åœæ¢ï¼Œä»¥è‡³äºŽhit数与æ¤ä¸ç›¸å…³ã€‚我们计算count-weightå‘é‡å’Œtype-weightå‘é‡çš„æ ‡é‡ç§¯ä½œä¸ºæ–‡æ¡£çš„IR值。最åŽIR值结åˆPageRank作为文档的最åŽrank 对于多è¯æŸ¥è¯¢ï¼Œæ›´å¤æ‚些。现在,多è¯hitlistå¿…é¡»åŒæ—¶æ‰«æ,以便关键è¯å‡ºçŽ°åœ¨åŒä¸€æ–‡æ¡£ä¸çš„æƒé‡æ¯”分别出现时高。相邻è¯çš„hit一起匹é…。对æ¯ä¸ªåŒ¹é…hit 的集åˆè®¡ç®—相邻度。相邻度基于hit在文档ä¸çš„è·ç¦»ï¼Œåˆ†æˆ10个ä¸åŒçš„bin值,范围从çŸè¯åŒ¹é…åˆ°æ ¹æœ¬ä¸ç›¸å…³ã€‚ä¸ä»…计算æ¯ç±»hit数,而且è¦è®¡ç®—æ¯ç§ç±»åž‹çš„相邻度,æ¯ä¸ªç±»åž‹ç›¸ä¼¼åº¦å¯¹ï¼Œæœ‰ä¸€ä¸ªç±»åž‹ç›¸é‚»åº¦æƒtype-prox-weight。Count转æ¢æˆcount-weight,计算count-weight type-proc-weightçš„æ ‡é‡ç§¯ä½œä¸ºIR值。应用æŸç§debug mode所有这些数和矩阵与查询结果一起显示出æ¥ã€‚这些显示有助于改进rank系统。
4.5.2å馈 rank函数有很多å‚数象type-weightå’Œtype-prox-weight。指明这些å‚æ•°çš„æ£ç¡®å€¼æœ‰ç‚¹é»‘色艺术black art。为æ¤ï¼Œæˆ‘们的æœç´¢å¼•æ“Žæœ‰ä¸€ä¸ªç”¨æˆ·å馈机制。值得信任的用户å¯ä»¥éšæ„地评价返回的结果。ä¿å˜å馈。然åŽï¼Œå½“修改rank函数时,对比以å‰æœç´¢çš„rank,我们å¯ä»¥çœ‹åˆ°ä¿®æ”¹å¸¦æ¥çš„çš„å½±å“。虽然ä¸æ˜¯åå…¨å美,但是它给出了一些æ€è·¯ï¼Œå½“rank函数改å˜æ—¶å¯¹æœç´¢ç»“果的影å“。
5.执行和结果
æœç´¢ç»“果的质é‡æ˜¯æœç´¢å¼•æ“Žæœ€é‡è¦çš„度é‡æ ‡å‡†ã€‚完全用户评价体系超出了本文的论述范围,对于大多数æœç´¢ï¼Œæˆ‘们的ç»éªŒè¯´æ˜ŽGoogleçš„æœç´¢ç»“果比那些主è¦çš„商业æœç´¢å¼•æ“Žå¥½ã€‚作为一个应用PageRank,链接æè¿°æ–‡å—,相邻度的例å,图4给出了Googleæœç´¢bill Clinton的结果。它说明了Google的一些特点。æœåŠ¡å™¨å¯¹ç»“果进行èšç±»ã€‚这对过滤结果集åˆç›¸å½“有帮助。这个查询,相当一部分结果æ¥è‡ªwhitehouse.gov域,这æ£æ˜¯æˆ‘们所需è¦çš„。现在大多数商业æœç´¢å¼•æ“Žä¸ä¼šè¿”回任何æ¥è‡ªwhitehouse.gov的结果,这是相当ä¸å¯¹çš„。注æ„第一个æœç´¢ç»“æžœæ²¡æœ‰æ ‡é¢˜ã€‚å› ä¸ºå®ƒä¸æ˜¯è¢«æŠ“到的。Googleæ˜¯æ ¹æ®é“¾æŽ¥æè¿°æ–‡å—决定它是一个好的查询结果。åŒæ ·åœ°ï¼Œç¬¬äº”个结果是一个Email地å€ï¼Œå½“然是ä¸å¯èƒ½æŠ“到的。也是链接æè¿°æ–‡å—的结果。所有这些结果质é‡éƒ½å¾ˆé«˜ï¼Œæœ€åŽæ£€æŸ¥æ²¡æœ‰æ»é“¾æŽ¥ã€‚å› ä¸ºå®ƒä»¬ä¸çš„大部分PageRank值较高。PageRank百分比用红色线æ¡è¡¨ç¤ºã€‚没有结果åªå«Bill没有Clinton或åªå«Clinton没有Billã€‚å› ä¸ºè¯å‡ºçŽ°çš„相近性éžå¸¸é‡è¦ã€‚当然æœç´¢å¼•æ“Žè´¨é‡çš„真实测试包å«å¹¿æ³›çš„用户å¦ä¹ 或结果分æžï¼Œæ¤å¤„篇幅有é™ï¼Œè¯·è¯»è€…自己去体验Google,http://google.stanford.edu/。
5.1å˜å‚¨éœ€æ±‚
除了æœç´¢è´¨é‡ï¼ŒGoogle的设计å¯ä»¥éšç€Web规模的增大而有效地增大æˆæœ¬ã€‚一方é¢æœ‰æ•ˆåœ°åˆ©ç”¨å˜å‚¨ç©ºé—´ã€‚表1列出了一些统计数å—的明细表和Googleå˜å‚¨çš„需求。由于压缩技术的应用知识库åªéœ€53GBçš„å˜å‚¨ç©ºé—´ã€‚是所有è¦å˜å‚¨æ•°æ®çš„三分之一。按当今ç£ç›˜ä»·æ ¼ï¼ŒçŸ¥è¯†åº“相对于有用的数æ®æ¥è¯´æ¯”较便宜。æœç´¢å¼•æ“Žéœ€è¦çš„所有数æ®çš„å˜å‚¨ç©ºé—´å¤§çº¦55GB。大多数查询请求åªéœ€è¦çŸåå‘索引。文件索引应用先进的编ç 和压缩技术,一个高质é‡çš„æœç´¢å¼•æ“Žå¯ä»¥è¿è¡Œåœ¨7GBçš„æ–°PC。
5.2系统执行
æœç´¢å¼•æ“ŽæŠ“网页和建立索引的效率éžå¸¸é‡è¦ã€‚Google的主è¦æ“作是抓网页,索引,排åºã€‚很难测试抓全部网页需è¦å¤šå°‘æ—¶é—´ï¼Œå› ä¸ºç£ç›˜æ»¡äº†ï¼ŒåŸŸåæœåŠ¡å™¨å´©æºƒï¼Œæˆ–者其它问题导致系统åœæ¢ã€‚总的æ¥è¯´ï¼Œå¤§çº¦éœ€è¦9天时间下载26000000网页(包括错误)。然而,一旦系统è¿è¡Œé¡ºåˆ©ï¼Œé€Ÿåº¦éžå¸¸å¿«ï¼Œä¸‹è½½æœ€åŽ11000000网页åªéœ€è¦63å°æ—¶ï¼Œå¹³å‡æ¯å¤©4000000网页,æ¯ç§’48.5个网页。索引器和网络爬行机器人åŒæ¥è¿è¡Œã€‚ç´¢å¼•å™¨æ¯”ç½‘ç»œçˆ¬è¡Œæœºå™¨äººå¿«ã€‚å› ä¸ºæˆ‘ä»¬èŠ±è´¹äº†å¤§é‡æ—¶é—´ä¼˜åŒ–索引器,使它ä¸æ˜¯ç“¶é¢ˆã€‚这些优化包括批é‡æ›´æ–°æ–‡æ¡£ç´¢å¼•ï¼Œæœ¬åœ°ç£ç›˜æ•°æ®ç»“构的安排。索引器æ¯ç§’处ç†54个网页。排åºå™¨å®Œå…¨å¹¶è¡Œï¼Œç”¨4å°æœºå™¨ï¼ŒæŽ’åºçš„整个过程大概需è¦24å°æ—¶ã€‚
5.3æœç´¢æ‰§è¡Œæ”¹è¿›
æœç´¢æ‰§è¡Œä¸æ˜¯æˆ‘ä»¬ç ”ç©¶çš„é‡ç‚¹ã€‚当å‰ç‰ˆæœ¬çš„Googleå¯ä»¥åœ¨1到10秒间回ç”查询请求。时间大部分花费在NFSç£ç›˜IO上(由于ç£ç›˜æ™®é比机器慢)。进一æ¥è¯´ï¼ŒGoogle没有åšä»»ä½•ä¼˜åŒ–,例如查询缓冲区,常用è¯æ±‡å索引,和其它常用的优化技术。我们倾å‘于通过分布å¼ï¼Œç¡¬ä»¶ï¼Œè½¯ä»¶ï¼Œå’Œç®—法的改进æ¥æ高Googleçš„é€Ÿåº¦ã€‚æˆ‘ä»¬çš„ç›®æ ‡æ˜¯æ¯ç§’能处ç†å‡ 百个请求。表2æœ‰å‡ ä¸ªçŽ°åœ¨ç‰ˆæœ¬Googleå“应查询时间的例å。它们说明IO缓冲区对å†æ¬¡æœç´¢é€Ÿåº¦çš„å½±å“。
6.结论
Google设计æˆå¯ä¼¸ç¼©çš„æœç´¢å¼•æ“Žã€‚主è¦ç›®æ ‡æ˜¯åœ¨å¿«é€Ÿå‘展的World Wide Web上æ供高质é‡çš„æœç´¢ç»“果。Google应用了一些技术改进æœç´¢è´¨é‡åŒ…括PageRank,链接æè¿°æ–‡å—,相邻信æ¯ã€‚进一æ¥è¯´ï¼ŒGoogle是一个收集网页,建立索引,执行æœç´¢è¯·æ±‚的完整的体系结构。
6.1未æ¥çš„工作
大型Webæœç´¢å¼•æ“Žæ˜¯ä¸ªå¤æ‚的系统,还有很多事情è¦åšã€‚æˆ‘ä»¬ç›´æŽ¥çš„ç›®æ ‡æ˜¯æ高æœç´¢æ•ˆçŽ‡ï¼Œè¦†ç›–大约100000000个网页。一些简å•çš„改进æ高了效率包括请求缓冲区,巧妙地分é…ç£ç›˜ç©ºé—´ï¼Œå索引。å¦ä¸€ä¸ªéœ€è¦ç ”究的领域是更新。我们必须有一个巧妙的算法æ¥å†³å®šå“ªäº›æ—§ç½‘页需è¦é‡æ–°æŠ“å–,哪些新网页需è¦è¢«æŠ“å–ã€‚è¿™ä¸ªç›®æ ‡å·²ç»ç”±å®žçŽ°äº†ã€‚å—需求驱动,用代ç†cache创建æœç´¢æ•°æ®åº“是一个有å‰é€”çš„ç ”ç©¶é¢†åŸŸã€‚æˆ‘ä»¬è®¡åˆ’åŠ ä¸€äº›ç®€å•çš„å·²ç»è¢«å•†ä¸šæœç´¢å¼•æ“Žæ”¯æŒçš„特å¾ï¼Œä¾‹å¦‚布尔算术符å·ï¼Œå¦å®šï¼Œå¡«å……。然而å¦å¤–一些应用刚刚开始探索,例如相关å馈,èšç±»ï¼ˆGoogle现在支æŒç®€å•çš„基于主机åçš„èšç±»ï¼‰ã€‚我们还计划支æŒç”¨æˆ·ä¸Šä¸‹æ–‡ï¼ˆè±¡ç”¨æˆ·åœ°å€ï¼‰ï¼Œç»“果摘è¦ã€‚我们æ£åœ¨æ‰©å¤§é“¾æŽ¥ç»“构和链接文本的应用。简å•çš„实验è¯æ˜Žï¼Œé€šè¿‡å¢žåŠ 用户主页的æƒé‡æˆ–书ç¾ï¼ŒPageRankå¯ä»¥ä¸ªæ€§åŒ–。对于链接文本,我们æ£åœ¨è¯•éªŒç”¨é“¾æŽ¥å‘¨å›´çš„æ–‡æœ¬åŠ å…¥åˆ°é“¾æŽ¥æ–‡æœ¬ã€‚Webæœç´¢å¼•æ“Žæä¾›äº†ä¸°å¯Œçš„ç ”ç©¶è¯¾é¢˜ã€‚å¦‚æ¤ä¹‹å¤šä»¥è‡³äºŽæˆ‘们ä¸èƒ½åœ¨æ¤ä¸€ä¸€åˆ—ä¸¾ï¼Œå› æ¤åœ¨ä¸ä¹…çš„å°†æ¥ï¼Œæˆ‘们希望所åšçš„工作ä¸æ¢æœ¬èŠ‚æ到的。
6.2高质é‡æœç´¢
当今Webæœç´¢å¼•æ“Žç”¨æˆ·æ‰€é¢ä¸´çš„最大问题是æœç´¢ç»“果的质é‡ã€‚结果常常是好笑的,并且超出用户的眼界,他们常常ç°å¿ƒä¸§æ°”浪费了å®è´µçš„时间。例如,一个最æµè¡Œçš„商业æœç´¢å¼•æ“Žæœç´¢â€œBill Clilltonâ€çš„结果是the Bill Clinton Joke of the Day: April 14, 1997。Googleçš„ è®¾è®¡ç›®æ ‡æ˜¯éšç€Web的快速å‘展æ供高质é‡çš„æœç´¢ç»“果,容易找到信æ¯ã€‚为æ¤ï¼ŒGoogle大é‡åº”用超文本信æ¯åŒ…括链接结构和链接文本。Google还用到了相邻性和å—å·ä¿¡æ¯ã€‚评价æœç´¢å¼•æ“Žæ˜¯å›°éš¾çš„,我们主观地å‘现Googleçš„æœç´¢è´¨é‡æ¯”当今商业æœç´¢å¼•æ“Žé«˜ã€‚通过PageRank分æžé“¾æŽ¥ç»“构使Google能够评价网页的质é‡ã€‚用链接文本æ述链接所指å‘的网页有助于æœç´¢å¼•æ“Žè¿”回相关的结果(æŸç§ç¨‹åº¦ä¸Šæ高了质é‡ï¼‰ã€‚最åŽï¼Œåˆ©ç”¨ç›¸é‚»æ€§ä¿¡æ¯å¤§å¤§æ高了很多æœç´¢çš„相关性。
6.3å¯å‡çº§çš„体系结构
除了æœç´¢è´¨é‡ï¼ŒGoogle设计æˆå¯å‡çº§çš„。空间和时间必须高效,处ç†æ•´ä¸ªWebæ—¶å›ºå®šçš„å‡ ä¸ªå› ç´ éžå¸¸é‡è¦ã€‚实现Google系统,CPUã€è®¿å˜ã€å†…å˜å®¹é‡ã€ç£ç›˜å¯»é“时间ã€ç£ç›˜åžåé‡ã€ç£ç›˜å®¹é‡ã€ç½‘络IO都是瓶颈。在一些æ“作ä¸ï¼Œå·²ç»æ”¹è¿›çš„Googleå…‹æœäº†ä¸€äº›ç“¶é¢ˆã€‚Google的主è¦æ•°æ®ç»“构能够有效利用å˜å‚¨ç©ºé—´ã€‚进一æ¥ï¼Œç½‘页爬行,索引,排åºå·²ç»è¶³å¤Ÿå»ºç«‹å¤§éƒ¨åˆ†web索引,共24000000个网页,用时ä¸åˆ°ä¸€æ˜ŸæœŸã€‚我们希望能在一个月内建立100000000网页的索引。
6.4ç ”ç©¶å·¥å…·
Googleä¸ä»…是高质é‡çš„æœç´¢å¼•æ“Žï¼Œå®ƒè¿˜æ˜¯ç ”究工具。Googleæœé›†çš„æ•°æ®å·²ç»ç”¨åœ¨è®¸å¤šå…¶å®ƒè®ºæ–‡ä¸ï¼Œæ交给å¦æœ¯ä¼šè®®å’Œè®¸å¤šå…¶å®ƒæ–¹å¼ã€‚æœ€è¿‘çš„ç ”ç©¶ï¼Œä¾‹å¦‚ï¼Œæ出了Web查询的局é™æ€§ï¼Œä¸éœ€è¦ç½‘络就å¯ä»¥å›žç”。这说明Googleä¸ä»…是é‡è¦çš„ç ”ç©¶å·¥å…·ï¼Œè€Œä¸”å¿…ä¸å¯å°‘,应用广泛。我们希望Googleæ˜¯å…¨ä¸–ç•Œç ”ç©¶è€…çš„èµ„æºï¼Œå¸¦åŠ¨æœç´¢å¼•æ“ŽæŠ€æœ¯çš„æ›´æ–°æ¢ä»£ã€‚ 7致谢 Scott Hassan and Alan Steremberg评价了Google的改进。他们的æ‰æ™ºæ— å¯æ›¿ä»£ï¼Œä½œè€…由衷地感谢他们。感谢Hector Garcia-Molina, Rajeev Motwani, Jeff Ullman, and Terry Winograd和全部WebBaseå¼€å‘组的支æŒå’Œå¯Œæœ‰æ·±åˆ»è§è§£çš„讨论。最åŽæ„Ÿè°¢IBM,Intel,Sun和投资者的慷慨支æŒï¼Œä¸ºæˆ‘们æ供设备。这里所æè¿°çš„ç ”ç©¶æ˜¯Stanford综åˆæ•°å—图书馆计划的一部分,由国家科å¦è‡ªç„¶åŸºé‡‘支æŒï¼Œåˆä½œåè®®å·IRI-9411306。DARPA ,NASA,Intervaç ”ç©¶ï¼ŒStanfordæ•°å—图书馆计划的工业åˆä½œä¼™ä¼´ä¹Ÿä¸ºè¿™é¡¹åˆä½œåè®®æ供了资金,å‚考文献。
Googleçš„è®¾è®¡ç›®æ ‡æ˜¯å¯å‡çº§åˆ°10亿网页。我们的ç£ç›˜å’Œæœºå™¨å¤§æ¦‚能处ç†è¿™ä¹ˆå¤šç½‘页。系统å„个部分耗费的总时间是并行的和线性的。包括网页爬行机器人,索引器和排åºå™¨ã€‚扩展åŽæˆ‘们认为大多数数æ®ç»“æž„è¿è¡Œè‰¯å¥½ã€‚然而10亿网页接近所有常用æ“作系统的æžé™ï¼ˆæˆ‘们目å‰è¿è¡Œåœ¨Solariså’ŒLinux上)。包括主å˜åœ°å€ï¼Œå¼€æ”¾æ–‡ä»¶æ述符的数é‡ï¼Œç½‘络socket和带宽,以åŠå…¶å®ƒå› ç´ ã€‚æˆ‘ä»¬è®¤ä¸ºå½“ç½‘é¡µæ•°é‡å¤§å¤§è¶…过10äº¿ç½‘é¡µæ—¶ï¼Œä¼šå¤§å¤§å¢žåŠ ç³»ç»Ÿå¤æ‚性。 9.2集ä¸å¼ç´¢å¼•ä½“系的å¯å‡çº§æ€§éšç€è®¡ç®—机性能的æ高,海é‡æ–‡æœ¬ç´¢å¼•çš„æˆæœ¬æ¯”较公平。当然带宽需求高的其它应用如视频,越æ¥è¶Šæ™®é。但是,与多媒体例如视频相比,文本产å“çš„æˆæœ¬ä½Žï¼Œå› æ¤æ–‡æœ¬ä»ç„¶æ™®é。
图2 Google系统的工作æµç¨‹å›¾
(注:原图æ¥è‡ªSergey Brin and Lawrence Page, The Anatomy of a Large-Scale Hypertextual. Web Search Engine, 1998.http://www-db.stanford.edu/%7Ebackrub/Google.html)
â‘ Google使用高速的分布å¼çˆ¬è¡Œå™¨(Crawler)系统ä¸çš„漫游é历器(Googlebot)定时地é历网页,将é历到的网页é€åˆ°å˜å‚¨æœåŠ¡å™¨(Store Server)ä¸ã€‚
â‘¡å˜å‚¨æœåŠ¡å™¨ä½¿ç”¨zlibæ ¼å¼åŽ‹ç¼©è½¯ä»¶å°†è¿™äº›ç½‘é¡µè¿›è¡Œæ— æŸåŽ‹ç¼©å¤„ç†åŽå˜å…¥æ•°æ®åº“Repositoryä¸ã€‚Repository获得了æ¯ä¸ªç½‘页的完全Html代ç åŽï¼Œå¯¹å…¶åŽ‹ç¼©åŽçš„网页åŠURL进行分æžï¼Œè®°å½•ä¸‹ç½‘页长度ã€URLã€URL长度和网页内容,并赋予æ¯ä¸ªç½‘页一个文档å·(docID),以便当系统出现故障的时候,å¯ä»¥åŠæ—¶å®Œæ•´åœ°è¿›è¡Œç½‘页的数æ®æ¢å¤ã€‚
③索引器(Indexer)从Repositoryä¸è¯»å–æ•°æ®ï¼Œä»¥åŽåšä»¥ä¸‹å››æ¥å·¥ä½œï¼š
â‘£(a)将读å–çš„æ•°æ®è§£åŽ‹ç¼©åŽè¿›è¡Œåˆ†æžï¼Œå®ƒå°†ç½‘页ä¸æ¯ä¸ªæœ‰æ„义的è¯è¿›è¡Œç»Ÿè®¡åŽï¼Œè½¬åŒ–为关键è¯(wordID)的若干索引项(Hits),生æˆç´¢å¼•é¡¹åˆ—表,该列表包括关键è¯ã€å…³é”®è¯çš„ä½ç½®ã€å…³é”®è¯çš„大å°å’Œå¤§å°å†™çŠ¶æ€ç‰ã€‚索引项列表被å˜å…¥åˆ°æ•°æ®æ¡¶(Barrels)ä¸ï¼Œå¹¶ç”Ÿæˆä»¥æ–‡æ¡£å·(docID)部分排åºçš„顺排档索引。
ç´¢å¼•é¡¹æ ¹æ®å…¶é‡è¦ç¨‹åº¦åˆ†ä¸ºä¸¤ç§ï¼šå½“索引项ä¸çš„关键è¯å‡ºçŽ°åœ¨URLã€æ ‡é¢˜ã€é”šæ–‡æœ¬(Anchor Text)å’Œæ ‡ç¾ä¸æ—¶ï¼Œè¡¨ç¤ºè¯¥ç´¢å¼•é¡¹æ¯”较é‡è¦ï¼Œç§°ä¸ºç‰¹æ®Šç´¢å¼•é¡¹(Fancy Hits);其余情况则称为普通索引项(Plain Hits)。在系统ä¸æ¯ä¸ªHit用两个å—节(byte)å˜å‚¨ç»“构表示:特殊索引项用1ä½(bit)表示大å°å†™ï¼Œç”¨äºŒè¿›åˆ¶ä»£ç 111(å 3ä½)表示是特殊索引项,其余12ä½æœ‰4ä½è¡¨ç¤ºç‰¹æ®Šç´¢å¼•é¡¹çš„类型(å³hit是出现在URLã€æ ‡é¢˜ã€é“¾æŽ¥ç»“ç‚¹è¿˜æ˜¯æ ‡ç¾ä¸),剩下8ä½è¡¨ç¤ºhit在网页ä¸çš„具体ä½ç½®ï¼›æ™®é€šç´¢å¼•é¡¹æ˜¯ç”¨1ä½è¡¨ç¤ºå¤§å°å†™ï¼Œ3ä½è¡¨ç¤ºå—体大å°ï¼Œå…¶ä½™12ä½è¡¨ç¤ºåœ¨ç½‘页ä¸çš„具体ä½ç½®ã€‚
顺排档索引和Hitçš„å˜å‚¨ç»“构如图3所示。
图3 顺排档索引和Hitçš„å˜å‚¨ç»“æž„
值得注æ„的是,当特殊索引项æ¥è‡ªAnchor Text时,特殊索引项用æ¥è¡¨ç¤ºä½ç½®çš„ä¿¡æ¯ï¼ˆ8ä½ï¼‰å°†åˆ†ä¸ºä¸¤éƒ¨åˆ†ï¼š4ä½è¡¨ç¤ºAnchor Text出现的具体ä½ç½®ï¼Œå¦4ä½åˆ™ç”¨æ¥ä¸Žè¡¨ç¤ºAnchor Text所链接网页的docID相连接,这个docID是由URL Resolverç»è¿‡è½¬åŒ–å˜å…¥é¡ºæŽ’档索引的。
(b)索引器除了对网页ä¸æœ‰æ„义的è¯è¿›è¡Œåˆ†æžå¤–,还分æžç½‘页的所有超文本链接,将其Anchor Textã€URL指å‘ç‰å…³é”®ä¿¡æ¯å˜å…¥åˆ°Anchor文档库ä¸ã€‚
(c)索引器生æˆä¸€ä¸ªç´¢å¼•è¯è¡¨(Lexicon),它包括两个部分:关键è¯çš„列表和指针列表,用于倒排档文档相连接(如图3所示)。
(d)索引器还将分æžè¿‡çš„网页编排æˆä¸€ä¸ªä¸ŽRepository相连接的文档索引(Document Index),并记录下网页的URLå’Œæ ‡é¢˜ï¼Œä»¥ä¾¿å¯ä»¥å‡†ç¡®æŸ¥æ‰¾å‡ºåœ¨Repositoryä¸å˜å‚¨çš„原网页内容。而且把没有分æžçš„ç½‘é¡µä¼ ç»™URL Server,以便在下一次工作æµç¨‹ä¸è¿›è¡Œç´¢å¼•åˆ†æžã€‚
⑤URL分æžå™¨ï¼ˆURL Resolver)读å–Anchor文档ä¸çš„ä¿¡æ¯ï¼Œç„¶åŽåšâ‘¥ä¸çš„工作。
â‘¥(a)将其锚文本(Anchor Text)所指å‘çš„URL转æ¢æˆç½‘页的docIDï¼›(b)将该docID与原网页的docIDå½¢æˆâ€œé“¾æŽ¥å¯¹â€ï¼Œå˜å…¥Linkæ•°æ®åº“ä¸ï¼›(c)å°†Anchor Text指å‘的网页的docID与顺排档特殊索引项Anchor Hits相连接。
⑦数æ®åº“Link记录了网页的链接关系,用æ¥è®¡ç®—网页的PageRank值。
⑧文档索引(Document Index)把没有进行索引分æžçš„ç½‘é¡µä¼ é€’ç»™URL Server,URL Server则å‘Crawleræ供待é历的URLï¼Œè¿™æ ·ï¼Œè¿™äº›æœªè¢«ç´¢å¼•çš„ç½‘é¡µåœ¨ä¸‹ä¸€æ¬¡å·¥ä½œæµç¨‹ä¸å°†è¢«ç´¢å¼•åˆ†æžã€‚
⑨排åºå™¨ï¼ˆSorter)对数æ®æ¡¶(Barrels)的顺排档索引é‡æ–°è¿›è¡ŒæŽ’åºï¼Œç”Ÿæˆä»¥å…³é”®è¯(wordID)为索引的倒排档索引。倒排档索引结构如图4所示:
图4 倒排档索引结构
⑩将生æˆçš„倒排档索引与先å‰ç”±ç´¢å¼•å™¨äº§ç”Ÿçš„索引è¯è¡¨(Lexicon)相连接产生一个新的索引è¯è¡¨ä¾›æœç´¢å™¨(Searcher)使用。æœç´¢å™¨çš„功能是由网页æœåŠ¡å™¨å®žçŽ°çš„ï¼Œæ ¹æ®æ–°äº§ç”Ÿçš„索引è¯è¡¨ç»“åˆä¸Šè¿°çš„文档索引(Document Index)å’ŒLinkæ•°æ®åº“计算的网页PageRank值æ¥åŒ¹é…检索。
在执行检索时,Google通常éµå¾ªä»¥ä¸‹æ¥éª¤ï¼ˆä»¥ä¸‹æ‰€æŒ‡çš„是å•ä¸ªæ£€ç´¢è¯çš„情况):
(1)将检索è¯è½¬åŒ–æˆç›¸åº”çš„wordIDï¼›
(2)利用Lexicon,检索出包å«è¯¥wordID的网页的docIDï¼›
(3)æ ¹æ®ä¸ŽLexicon相连的倒排档索引,分æžå„网页ä¸çš„相关索引项的情况,计算å„网页和检索è¯çš„匹é…程度,必è¦æ—¶è°ƒç”¨é¡ºæŽ’档索引;
(4)æ ¹æ®å„网页的匹é…程度,结åˆæ ¹æ®Link产生的相应网页的PageRank情况,对检索结果进行排åºï¼›
(5)调用Document Indexä¸çš„docIDåŠå…¶ç›¸åº”çš„URL,将排åºç»“果生æˆæ£€ç´¢ç»“果的最终列表,æ供给检索用户。
用户检索包å«å¤šä¸ªæ£€ç´¢è¯çš„情况与以上å•ä¸ªæ£€ç´¢è¯çš„情况类似:先åšå•ä¸ªæ£€ç´¢è¯çš„检索,然åŽæ ¹æ®æ£€ç´¢å¼ä¸æ£€ç´¢ç¬¦å·çš„è¦æ±‚进行必è¦çš„布尔æ“作或其他æ“作。
最后编辑: 郝聪 编辑于2008/02/19 16:29
4.3抓网页è¿è¡Œ
网络爬行机器人是一项具有挑战性的任务。执行的性能和å¯é 性甚至更é‡è¦ï¼Œè¿˜æœ‰ä¸€äº›ç¤¾ä¼šç„¦ç‚¹ã€‚网络爬行是一项éžå¸¸è–„弱的应用,它需è¦æˆç™¾ä¸Šåƒçš„webæœåŠ¡å™¨å’Œå„ç§åŸŸåæœåŠ¡å™¨çš„å‚与,这些æœåŠ¡å™¨ä¸æ˜¯æˆ‘ä»¬ç³»ç»Ÿæ‰€èƒ½æŽ§åˆ¶çš„ã€‚ä¸ºäº†è¦†ç›–å‡ å亿的网页,Google拥有快速的分布å¼ç½‘络爬行系统。一个URLæœåŠ¡å™¨ç»™è‹¥å¹²ä¸ªç½‘络爬行机器人(我们采用3个)æä¾›URL列表。URLæœåŠ¡å™¨å’Œç½‘络爬行机器人都是用Python实现的。æ¯ä¸ªç½‘络爬行机器人å¯ä»¥åŒæ—¶æ‰“å¼€300个链接。抓å–网页必须足够快。最快时,用4个网络爬行机器人æ¯ç§’å¯ä»¥çˆ¬è¡Œ100个网页。速率达æ¯ç§’600K。执行的é‡ç‚¹æ˜¯æ‰¾DNS。æ¯ä¸ªç½‘络爬行机器人有它自己的DNS cache,所以它ä¸å¿…æ¯ä¸ªç½‘页都查DNS。æ¯ä¸€ç™¾ä¸ªè¿žæŽ¥éƒ½æœ‰å‡ ç§ä¸åŒçš„状æ€ï¼šæŸ¥DNS,连接主机,å‘é€è¯·æ±‚,接收回ç”ã€‚è¿™äº›å› ç´ ä½¿ç½‘ç»œçˆ¬è¡Œæœºå™¨äººæˆä¸ºç³»ç»Ÿæ¯”较å¤æ‚的部分。它用异æ¥IO处ç†äº‹ä»¶ï¼Œè‹¥å¹²è¯·æ±‚队列从一个网站到å¦ä¸€ä¸ªç½‘ç«™ä¸åœçš„抓å–网页。è¿è¡Œä¸€ä¸ªé“¾æŽ¥åˆ°500多万å°æœåŠ¡å™¨çš„网页爬行机器人,产生1åƒå¤šä¸‡ç™»é™†å£ï¼Œå¯¼è‡´äº†å¤§é‡çš„Email和电è¯ã€‚å› ä¸ºç½‘æ°‘ä¼—å¤šï¼Œæ€»æœ‰äº›äººä¸çŸ¥é“ç½‘ç»œçˆ¬è¡Œæœºå™¨äººæ˜¯ä½•ç‰©ï¼Œè¿™æ˜¯ä»–ä»¬çœ‹åˆ°çš„ç¬¬ä¸€ä¸ªç½‘ç»œçˆ¬è¡Œæœºå™¨äººã€‚å‡ ä¹Žæ¯å¤©æˆ‘ä»¬éƒ½ä¼šæ”¶åˆ°è¿™æ ·çš„Emailâ€œå“¦ï¼Œä½ ä»Žæˆ‘ä»¬çš„ç½‘ç«™çœ‹äº†å¤ªå¤šçš„ç½‘é¡µï¼Œä½ æƒ³å¹²ä»€ä¹ˆï¼Ÿâ€è¿˜æœ‰ä¸€äº›äººä¸çŸ¥é“网络æœç´¢æœºå™¨äººé¿å…å议(the robots exclusion protocol),以为他们的网页上写ç€â€œç‰ˆæƒæ‰€æœ‰ï¼Œå‹¿è¢«ç´¢å¼•â€çš„å—æ ·å°±ä¼šè¢«ä¿æŠ¤ä¸è¢«ç´¢å¼•ï¼Œä¸å¿…è¯´ï¼Œè¿™æ ·çš„è¯å¾ˆéš¾è¢«web crawlerç†è§£ã€‚å› ä¸ºæ•°æ®é‡å¦‚æ¤ä¹‹å¤§ï¼Œè¿˜ä¼šé‡åˆ°ä¸€äº›æ„想ä¸åˆ°çš„事情。例如,我们的系统曾ç»ä¼å›¾æŠ“一个在线游æˆï¼Œç»“果抓到了游æˆä¸çš„大é‡åžƒåœ¾ä¿¡æ¯ã€‚解决这个问题很简å•ã€‚ä½†æ˜¯æˆ‘ä»¬ä¸‹è½½äº†å‡ åƒä¸‡ç½‘页åŽæ‰å‘çŽ°äº†è¿™ä¸ªé—®é¢˜ã€‚å› ä¸ºç½‘é¡µå’ŒæœåŠ¡å™¨çš„ç§ç±»ç¹å¤šï¼Œå®žé™…上ä¸åœ¨å¤§éƒ¨åˆ†Internet上è¿è¡Œå®ƒå°±æµ‹è¯•ä¸€ä¸ªç½‘页爬行机器人是ä¸å¯èƒ½ã€‚æ€»æ˜¯æœ‰å‡ ç™¾ä¸ªéšå«çš„问题å‘生在整个web的一个网页上,导致网络爬行机器人崩溃,或者更糟,导致ä¸å¯é¢„测的ä¸æ£ç¡®çš„行为。能够访问大部分Internet的系统必须精力充沛并精心测试过。由于象crawlerè¿™æ ·å¤§åž‹å¤æ‚çš„ç³»ç»Ÿæ€»æ˜¯äº§ç”Ÿè¿™æ ·é‚£æ ·çš„é—®é¢˜ï¼Œå› æ¤èŠ±è´¹ä¸€äº›èµ„æºè¯»è¿™äº›Email,当问题å‘生时解决它,是有必è¦çš„。
4.4 Web索引分æž
任何è¿è¡Œåœ¨æ•´ä¸ªWeb上的分æžå™¨å¿…须能够处ç†å¯èƒ½åŒ…å«é”™è¯¯çš„大型集åˆã€‚范围从HTMLæ ‡è®°åˆ°æ ‡è®°ä¹‹é—´å‡ Kå—节的0,éžASCIIå—ç¬¦ï¼Œå‡ ç™¾å±‚HTMLæ ‡è®°çš„åµŒå¥—ï¼Œå„ç§å„æ ·ä»¤äººéš¾ä»¥æƒ³è±¡çš„é”™è¯¯ã€‚ä¸ºäº†èŽ·å¾—æœ€å¤§çš„é€Ÿåº¦ï¼Œæˆ‘ä»¬æ²¡æœ‰é‡‡ç”¨YACCäº§ç”Ÿä¸Šä¸‹æ–‡æ— å…³æ–‡æ³•CFG分æžå™¨ï¼Œè€Œæ˜¯é‡‡ç”¨çµæ´»çš„æ–¹å¼äº§ç”Ÿè¯æ±‡åˆ†æžå™¨ï¼Œå®ƒè‡ªå·±é…æœ‰å †æ ˆã€‚åˆ†æžå™¨çš„改进大大æ高了è¿è¡Œé€Ÿåº¦ï¼Œå®ƒçš„精力如æ¤å……沛完æˆäº†å¤§é‡å·¥ä½œã€‚把文档装入barrel建立索引—分æžå®Œä¸€ç¯‡æ–‡æ¡£ï¼Œä¹‹åŽæŠŠè¯¥æ–‡æ¡£è£…å…¥barrelä¸ï¼Œç”¨å†…å˜ä¸çš„hash表—å—典,æ¯ä¸ªè¯æ±‡è¢«è½¬æ¢æˆä¸€ä¸ªwordID。当hash表å—å…¸ä¸åŠ 入新的项时,笨拙地å˜å…¥æ–‡ä»¶ã€‚一旦è¯æ±‡è¢«è½¬æ¢æˆwordID,它们在当å‰æ–‡æ¡£çš„出现就转æ¢æˆhitlist,被写进æ£å‘barrel。索引阶段并行的主è¦å›°éš¾æ˜¯å—典需è¦å…±äº«ã€‚
我们采用的方法是,基本å—å…¸ä¸æœ‰140万个固定è¯æ±‡ï¼Œä¸åœ¨åŸºæœ¬å—å…¸ä¸çš„è¯æ±‡å†™å…¥æ—¥å¿—,而ä¸æ˜¯å…±äº«å—典。这ç§æ–¹æ³•å¤šä¸ªç´¢å¼•å™¨å¯ä»¥å¹¶è¡Œå·¥ä½œï¼Œæœ€åŽä¸€ä¸ªç´¢å¼•å™¨åªéœ€å¤„ç†ä¸€ä¸ªè¾ƒå°çš„é¢å¤–è¯æ±‡æ—¥å¿—。排åºâ€”为了建立åå‘索引,排åºå™¨è¯»å–æ¯ä¸ªæ£å‘barrel,以wordID排åºï¼Œå»ºç«‹åªæœ‰æ ‡é¢˜anchor hi tçš„åå‘索引barrel和全文åå‘索引barrel。这个过程一次åªå¤„ç†ä¸€ä¸ªbarrel,所以åªéœ€è¦å°‘é‡æš‚å˜ç©ºé—´ã€‚排åºé˜¶æ®µä¹Ÿæ˜¯å¹¶è¡Œçš„,我们简å•åœ°åŒæ—¶è¿è¡Œå°½å¯èƒ½å¤šçš„排åºå™¨ï¼Œä¸åŒçš„排åºå™¨å¤„ç†ä¸åŒçš„桶。由于barrelä¸é€‚åˆè£…入主å˜ï¼ŒæŽ’åºå™¨è¿›ä¸€æ¥ä¾æ®wordIDå’ŒdocID把它分æˆè‹¥å¹²ç¯®å,以便适åˆè£…入主å˜ã€‚然åŽæŽ’åºå™¨æŠŠæ¯ä¸ªç¯®å装入主å˜è¿›è¡ŒæŽ’åºï¼Œå¹¶æŠŠå®ƒçš„内容写回到çŸåå‘barrel和全文åå‘barrel。
4.5æœç´¢
æœç´¢çš„ç›®æ ‡æ˜¯æ供有效的高质é‡çš„æœç´¢ç»“果。多数大型商业æœç´¢å¼•æ“Žå¥½åƒåœ¨æ•ˆçŽ‡æ–¹é¢èŠ±è´¹äº†å¾ˆå¤§åŠ›æ°”ã€‚å› æ¤æˆ‘ä»¬çš„ç ”ç©¶ä»¥æœç´¢è´¨é‡ä¸ºé‡ç‚¹ï¼Œç›¸ä¿¡æˆ‘们的解决方案也å¯ä»¥ç”¨åˆ°é‚£äº›å•†ä¸šç³»ç»Ÿä¸ã€‚
Google查询评价过程
1. 分æžæŸ¥è¯¢ã€‚
2. 把è¯æ±‡è½¬æ¢æˆwordID。
3. 在çŸbarrelä¸æŸ¥æ‰¾æ¯ä¸ªè¯æ±‡doclist的开头。
4. 扫ædoclist直到找到一篇匹é…所有关键è¯çš„文档
5. 计算该文档的rank
6. 如果我们在çŸbarrel,并且在所有doclist的末尾,开始从全文barrelçš„doclist的开头查找æ¯ä¸ªè¯ï¼Œgoto 第四æ¥
7. 如果ä¸åœ¨ä»»ä½•doclist的结尾,返回第四æ¥ã€‚
8. æ ¹æ®rank排åºåŒ¹é…文档,返回å‰k个。图4 Google查询评价在有é™çš„å“应时间内,一旦找到一定数é‡çš„匹é…文档,æœç´¢å¼•æ“Žè‡ªåŠ¨æ‰§è¡Œæ¥éª¤8。这æ„味ç€ï¼Œè¿”回的结果是åä¼˜åŒ–çš„ã€‚æˆ‘ä»¬çŽ°åœ¨ç ”ç©¶å…¶å®ƒæ–¹æ³•æ¥è§£å†³è¿™ä¸ªé—®é¢˜ã€‚è¿‡åŽ»æ ¹æ®PageRank排åºhit,看æ¥èƒ½å¤Ÿæ”¹è¿›è¿™ç§çŠ¶å†µã€‚
4.5.1 Ranking系统 Google比典型æœç´¢å¼•æ“Žä¿å˜äº†æ›´å¤šçš„webä¿¡æ¯ã€‚æ¯ä¸ªhitlish包括ä½ç½®ï¼Œå—å·ï¼Œå¤§å°å†™ã€‚å¦å¤–,我们还考虑了链接æè¿°æ–‡å—。Rank综åˆæ‰€æœ‰è¿™äº›ä¿¡æ¯æ˜¯å›°éš¾çš„。ranking函数设计ä¾æ®æ˜¯æ²¡æœ‰æŸä¸ªå› ç´ å¯¹rankå½±å“é‡å¤§ã€‚首先,考虑最简å•çš„情况—å•ä¸ªè¯æŸ¥è¯¢ã€‚为了å•ä¸ªè¯æŸ¥è¯¢ä¸ä¸€ä¸ªæ–‡æ¡£çš„rank,Goole在文档的hitlistä¸æŸ¥æ‰¾è¯¥è¯ã€‚Google认为æ¯ä¸ªhitæ˜¯å‡ ç§ä¸åŒç±»åž‹ï¼ˆæ ‡é¢˜ï¼Œé“¾æŽ¥æè¿°æ–‡å—anchor,URL,普通大å—å·æ–‡æœ¬ï¼Œæ™®é€šå°å—å·æ–‡æœ¬ï¼Œâ€¦â€¦ï¼‰ä¹‹ä¸€ï¼Œæ¯ç§æœ‰å®ƒè‡ªå·±çš„类型æƒé‡ã€‚类型æƒé‡å»ºç«‹äº†ä¸€ä¸ªç±»åž‹ç´¢å¼•å‘é‡ã€‚Google计算hitlistä¸æ¯ç§hitçš„æ•°é‡ã€‚然åŽæ¯ä¸ªhit数转æ¢æˆcount-weight。Count-weight开始éšhitæ•°çº¿æ€§å¢žåŠ ï¼Œå¾ˆå¿«é€æ¸åœæ¢ï¼Œä»¥è‡³äºŽhit数与æ¤ä¸ç›¸å…³ã€‚我们计算count-weightå‘é‡å’Œtype-weightå‘é‡çš„æ ‡é‡ç§¯ä½œä¸ºæ–‡æ¡£çš„IR值。最åŽIR值结åˆPageRank作为文档的最åŽrank 对于多è¯æŸ¥è¯¢ï¼Œæ›´å¤æ‚些。现在,多è¯hitlistå¿…é¡»åŒæ—¶æ‰«æ,以便关键è¯å‡ºçŽ°åœ¨åŒä¸€æ–‡æ¡£ä¸çš„æƒé‡æ¯”分别出现时高。相邻è¯çš„hit一起匹é…。对æ¯ä¸ªåŒ¹é…hit 的集åˆè®¡ç®—相邻度。相邻度基于hit在文档ä¸çš„è·ç¦»ï¼Œåˆ†æˆ10个ä¸åŒçš„bin值,范围从çŸè¯åŒ¹é…åˆ°æ ¹æœ¬ä¸ç›¸å…³ã€‚ä¸ä»…计算æ¯ç±»hit数,而且è¦è®¡ç®—æ¯ç§ç±»åž‹çš„相邻度,æ¯ä¸ªç±»åž‹ç›¸ä¼¼åº¦å¯¹ï¼Œæœ‰ä¸€ä¸ªç±»åž‹ç›¸é‚»åº¦æƒtype-prox-weight。Count转æ¢æˆcount-weight,计算count-weight type-proc-weightçš„æ ‡é‡ç§¯ä½œä¸ºIR值。应用æŸç§debug mode所有这些数和矩阵与查询结果一起显示出æ¥ã€‚这些显示有助于改进rank系统。
4.5.2å馈 rank函数有很多å‚数象type-weightå’Œtype-prox-weight。指明这些å‚æ•°çš„æ£ç¡®å€¼æœ‰ç‚¹é»‘色艺术black art。为æ¤ï¼Œæˆ‘们的æœç´¢å¼•æ“Žæœ‰ä¸€ä¸ªç”¨æˆ·å馈机制。值得信任的用户å¯ä»¥éšæ„地评价返回的结果。ä¿å˜å馈。然åŽï¼Œå½“修改rank函数时,对比以å‰æœç´¢çš„rank,我们å¯ä»¥çœ‹åˆ°ä¿®æ”¹å¸¦æ¥çš„çš„å½±å“。虽然ä¸æ˜¯åå…¨å美,但是它给出了一些æ€è·¯ï¼Œå½“rank函数改å˜æ—¶å¯¹æœç´¢ç»“果的影å“。
5.执行和结果
æœç´¢ç»“果的质é‡æ˜¯æœç´¢å¼•æ“Žæœ€é‡è¦çš„度é‡æ ‡å‡†ã€‚完全用户评价体系超出了本文的论述范围,对于大多数æœç´¢ï¼Œæˆ‘们的ç»éªŒè¯´æ˜ŽGoogleçš„æœç´¢ç»“果比那些主è¦çš„商业æœç´¢å¼•æ“Žå¥½ã€‚作为一个应用PageRank,链接æè¿°æ–‡å—,相邻度的例å,图4给出了Googleæœç´¢bill Clinton的结果。它说明了Google的一些特点。æœåŠ¡å™¨å¯¹ç»“果进行èšç±»ã€‚这对过滤结果集åˆç›¸å½“有帮助。这个查询,相当一部分结果æ¥è‡ªwhitehouse.gov域,这æ£æ˜¯æˆ‘们所需è¦çš„。现在大多数商业æœç´¢å¼•æ“Žä¸ä¼šè¿”回任何æ¥è‡ªwhitehouse.gov的结果,这是相当ä¸å¯¹çš„。注æ„第一个æœç´¢ç»“æžœæ²¡æœ‰æ ‡é¢˜ã€‚å› ä¸ºå®ƒä¸æ˜¯è¢«æŠ“到的。Googleæ˜¯æ ¹æ®é“¾æŽ¥æè¿°æ–‡å—决定它是一个好的查询结果。åŒæ ·åœ°ï¼Œç¬¬äº”个结果是一个Email地å€ï¼Œå½“然是ä¸å¯èƒ½æŠ“到的。也是链接æè¿°æ–‡å—的结果。所有这些结果质é‡éƒ½å¾ˆé«˜ï¼Œæœ€åŽæ£€æŸ¥æ²¡æœ‰æ»é“¾æŽ¥ã€‚å› ä¸ºå®ƒä»¬ä¸çš„大部分PageRank值较高。PageRank百分比用红色线æ¡è¡¨ç¤ºã€‚没有结果åªå«Bill没有Clinton或åªå«Clinton没有Billã€‚å› ä¸ºè¯å‡ºçŽ°çš„相近性éžå¸¸é‡è¦ã€‚当然æœç´¢å¼•æ“Žè´¨é‡çš„真实测试包å«å¹¿æ³›çš„用户å¦ä¹ 或结果分æžï¼Œæ¤å¤„篇幅有é™ï¼Œè¯·è¯»è€…自己去体验Google,http://google.stanford.edu/。
5.1å˜å‚¨éœ€æ±‚
除了æœç´¢è´¨é‡ï¼ŒGoogle的设计å¯ä»¥éšç€Web规模的增大而有效地增大æˆæœ¬ã€‚一方é¢æœ‰æ•ˆåœ°åˆ©ç”¨å˜å‚¨ç©ºé—´ã€‚表1列出了一些统计数å—的明细表和Googleå˜å‚¨çš„需求。由于压缩技术的应用知识库åªéœ€53GBçš„å˜å‚¨ç©ºé—´ã€‚是所有è¦å˜å‚¨æ•°æ®çš„三分之一。按当今ç£ç›˜ä»·æ ¼ï¼ŒçŸ¥è¯†åº“相对于有用的数æ®æ¥è¯´æ¯”较便宜。æœç´¢å¼•æ“Žéœ€è¦çš„所有数æ®çš„å˜å‚¨ç©ºé—´å¤§çº¦55GB。大多数查询请求åªéœ€è¦çŸåå‘索引。文件索引应用先进的编ç 和压缩技术,一个高质é‡çš„æœç´¢å¼•æ“Žå¯ä»¥è¿è¡Œåœ¨7GBçš„æ–°PC。
5.2系统执行
æœç´¢å¼•æ“ŽæŠ“网页和建立索引的效率éžå¸¸é‡è¦ã€‚Google的主è¦æ“作是抓网页,索引,排åºã€‚很难测试抓全部网页需è¦å¤šå°‘æ—¶é—´ï¼Œå› ä¸ºç£ç›˜æ»¡äº†ï¼ŒåŸŸåæœåŠ¡å™¨å´©æºƒï¼Œæˆ–者其它问题导致系统åœæ¢ã€‚总的æ¥è¯´ï¼Œå¤§çº¦éœ€è¦9天时间下载26000000网页(包括错误)。然而,一旦系统è¿è¡Œé¡ºåˆ©ï¼Œé€Ÿåº¦éžå¸¸å¿«ï¼Œä¸‹è½½æœ€åŽ11000000网页åªéœ€è¦63å°æ—¶ï¼Œå¹³å‡æ¯å¤©4000000网页,æ¯ç§’48.5个网页。索引器和网络爬行机器人åŒæ¥è¿è¡Œã€‚ç´¢å¼•å™¨æ¯”ç½‘ç»œçˆ¬è¡Œæœºå™¨äººå¿«ã€‚å› ä¸ºæˆ‘ä»¬èŠ±è´¹äº†å¤§é‡æ—¶é—´ä¼˜åŒ–索引器,使它ä¸æ˜¯ç“¶é¢ˆã€‚这些优化包括批é‡æ›´æ–°æ–‡æ¡£ç´¢å¼•ï¼Œæœ¬åœ°ç£ç›˜æ•°æ®ç»“构的安排。索引器æ¯ç§’处ç†54个网页。排åºå™¨å®Œå…¨å¹¶è¡Œï¼Œç”¨4å°æœºå™¨ï¼ŒæŽ’åºçš„整个过程大概需è¦24å°æ—¶ã€‚
5.3æœç´¢æ‰§è¡Œæ”¹è¿›
æœç´¢æ‰§è¡Œä¸æ˜¯æˆ‘ä»¬ç ”ç©¶çš„é‡ç‚¹ã€‚当å‰ç‰ˆæœ¬çš„Googleå¯ä»¥åœ¨1到10秒间回ç”查询请求。时间大部分花费在NFSç£ç›˜IO上(由于ç£ç›˜æ™®é比机器慢)。进一æ¥è¯´ï¼ŒGoogle没有åšä»»ä½•ä¼˜åŒ–,例如查询缓冲区,常用è¯æ±‡å索引,和其它常用的优化技术。我们倾å‘于通过分布å¼ï¼Œç¡¬ä»¶ï¼Œè½¯ä»¶ï¼Œå’Œç®—法的改进æ¥æ高Googleçš„é€Ÿåº¦ã€‚æˆ‘ä»¬çš„ç›®æ ‡æ˜¯æ¯ç§’能处ç†å‡ 百个请求。表2æœ‰å‡ ä¸ªçŽ°åœ¨ç‰ˆæœ¬Googleå“应查询时间的例å。它们说明IO缓冲区对å†æ¬¡æœç´¢é€Ÿåº¦çš„å½±å“。
6.结论
Google设计æˆå¯ä¼¸ç¼©çš„æœç´¢å¼•æ“Žã€‚主è¦ç›®æ ‡æ˜¯åœ¨å¿«é€Ÿå‘展的World Wide Web上æ供高质é‡çš„æœç´¢ç»“果。Google应用了一些技术改进æœç´¢è´¨é‡åŒ…括PageRank,链接æè¿°æ–‡å—,相邻信æ¯ã€‚进一æ¥è¯´ï¼ŒGoogle是一个收集网页,建立索引,执行æœç´¢è¯·æ±‚的完整的体系结构。
6.1未æ¥çš„工作
大型Webæœç´¢å¼•æ“Žæ˜¯ä¸ªå¤æ‚的系统,还有很多事情è¦åšã€‚æˆ‘ä»¬ç›´æŽ¥çš„ç›®æ ‡æ˜¯æ高æœç´¢æ•ˆçŽ‡ï¼Œè¦†ç›–大约100000000个网页。一些简å•çš„改进æ高了效率包括请求缓冲区,巧妙地分é…ç£ç›˜ç©ºé—´ï¼Œå索引。å¦ä¸€ä¸ªéœ€è¦ç ”究的领域是更新。我们必须有一个巧妙的算法æ¥å†³å®šå“ªäº›æ—§ç½‘页需è¦é‡æ–°æŠ“å–,哪些新网页需è¦è¢«æŠ“å–ã€‚è¿™ä¸ªç›®æ ‡å·²ç»ç”±å®žçŽ°äº†ã€‚å—需求驱动,用代ç†cache创建æœç´¢æ•°æ®åº“是一个有å‰é€”çš„ç ”ç©¶é¢†åŸŸã€‚æˆ‘ä»¬è®¡åˆ’åŠ ä¸€äº›ç®€å•çš„å·²ç»è¢«å•†ä¸šæœç´¢å¼•æ“Žæ”¯æŒçš„特å¾ï¼Œä¾‹å¦‚布尔算术符å·ï¼Œå¦å®šï¼Œå¡«å……。然而å¦å¤–一些应用刚刚开始探索,例如相关å馈,èšç±»ï¼ˆGoogle现在支æŒç®€å•çš„基于主机åçš„èšç±»ï¼‰ã€‚我们还计划支æŒç”¨æˆ·ä¸Šä¸‹æ–‡ï¼ˆè±¡ç”¨æˆ·åœ°å€ï¼‰ï¼Œç»“果摘è¦ã€‚我们æ£åœ¨æ‰©å¤§é“¾æŽ¥ç»“构和链接文本的应用。简å•çš„实验è¯æ˜Žï¼Œé€šè¿‡å¢žåŠ 用户主页的æƒé‡æˆ–书ç¾ï¼ŒPageRankå¯ä»¥ä¸ªæ€§åŒ–。对于链接文本,我们æ£åœ¨è¯•éªŒç”¨é“¾æŽ¥å‘¨å›´çš„æ–‡æœ¬åŠ å…¥åˆ°é“¾æŽ¥æ–‡æœ¬ã€‚Webæœç´¢å¼•æ“Žæä¾›äº†ä¸°å¯Œçš„ç ”ç©¶è¯¾é¢˜ã€‚å¦‚æ¤ä¹‹å¤šä»¥è‡³äºŽæˆ‘们ä¸èƒ½åœ¨æ¤ä¸€ä¸€åˆ—ä¸¾ï¼Œå› æ¤åœ¨ä¸ä¹…çš„å°†æ¥ï¼Œæˆ‘们希望所åšçš„工作ä¸æ¢æœ¬èŠ‚æ到的。
6.2高质é‡æœç´¢
当今Webæœç´¢å¼•æ“Žç”¨æˆ·æ‰€é¢ä¸´çš„最大问题是æœç´¢ç»“果的质é‡ã€‚结果常常是好笑的,并且超出用户的眼界,他们常常ç°å¿ƒä¸§æ°”浪费了å®è´µçš„时间。例如,一个最æµè¡Œçš„商业æœç´¢å¼•æ“Žæœç´¢â€œBill Clilltonâ€çš„结果是the Bill Clinton Joke of the Day: April 14, 1997。Googleçš„ è®¾è®¡ç›®æ ‡æ˜¯éšç€Web的快速å‘展æ供高质é‡çš„æœç´¢ç»“果,容易找到信æ¯ã€‚为æ¤ï¼ŒGoogle大é‡åº”用超文本信æ¯åŒ…括链接结构和链接文本。Google还用到了相邻性和å—å·ä¿¡æ¯ã€‚评价æœç´¢å¼•æ“Žæ˜¯å›°éš¾çš„,我们主观地å‘现Googleçš„æœç´¢è´¨é‡æ¯”当今商业æœç´¢å¼•æ“Žé«˜ã€‚通过PageRank分æžé“¾æŽ¥ç»“构使Google能够评价网页的质é‡ã€‚用链接文本æ述链接所指å‘的网页有助于æœç´¢å¼•æ“Žè¿”回相关的结果(æŸç§ç¨‹åº¦ä¸Šæ高了质é‡ï¼‰ã€‚最åŽï¼Œåˆ©ç”¨ç›¸é‚»æ€§ä¿¡æ¯å¤§å¤§æ高了很多æœç´¢çš„相关性。
6.3å¯å‡çº§çš„体系结构
除了æœç´¢è´¨é‡ï¼ŒGoogle设计æˆå¯å‡çº§çš„。空间和时间必须高效,处ç†æ•´ä¸ªWebæ—¶å›ºå®šçš„å‡ ä¸ªå› ç´ éžå¸¸é‡è¦ã€‚实现Google系统,CPUã€è®¿å˜ã€å†…å˜å®¹é‡ã€ç£ç›˜å¯»é“时间ã€ç£ç›˜åžåé‡ã€ç£ç›˜å®¹é‡ã€ç½‘络IO都是瓶颈。在一些æ“作ä¸ï¼Œå·²ç»æ”¹è¿›çš„Googleå…‹æœäº†ä¸€äº›ç“¶é¢ˆã€‚Google的主è¦æ•°æ®ç»“构能够有效利用å˜å‚¨ç©ºé—´ã€‚进一æ¥ï¼Œç½‘页爬行,索引,排åºå·²ç»è¶³å¤Ÿå»ºç«‹å¤§éƒ¨åˆ†web索引,共24000000个网页,用时ä¸åˆ°ä¸€æ˜ŸæœŸã€‚我们希望能在一个月内建立100000000网页的索引。
6.4ç ”ç©¶å·¥å…·
Googleä¸ä»…是高质é‡çš„æœç´¢å¼•æ“Žï¼Œå®ƒè¿˜æ˜¯ç ”究工具。Googleæœé›†çš„æ•°æ®å·²ç»ç”¨åœ¨è®¸å¤šå…¶å®ƒè®ºæ–‡ä¸ï¼Œæ交给å¦æœ¯ä¼šè®®å’Œè®¸å¤šå…¶å®ƒæ–¹å¼ã€‚æœ€è¿‘çš„ç ”ç©¶ï¼Œä¾‹å¦‚ï¼Œæ出了Web查询的局é™æ€§ï¼Œä¸éœ€è¦ç½‘络就å¯ä»¥å›žç”。这说明Googleä¸ä»…是é‡è¦çš„ç ”ç©¶å·¥å…·ï¼Œè€Œä¸”å¿…ä¸å¯å°‘,应用广泛。我们希望Googleæ˜¯å…¨ä¸–ç•Œç ”ç©¶è€…çš„èµ„æºï¼Œå¸¦åŠ¨æœç´¢å¼•æ“ŽæŠ€æœ¯çš„æ›´æ–°æ¢ä»£ã€‚ 7致谢 Scott Hassan and Alan Steremberg评价了Google的改进。他们的æ‰æ™ºæ— å¯æ›¿ä»£ï¼Œä½œè€…由衷地感谢他们。感谢Hector Garcia-Molina, Rajeev Motwani, Jeff Ullman, and Terry Winograd和全部WebBaseå¼€å‘组的支æŒå’Œå¯Œæœ‰æ·±åˆ»è§è§£çš„讨论。最åŽæ„Ÿè°¢IBM,Intel,Sun和投资者的慷慨支æŒï¼Œä¸ºæˆ‘们æ供设备。这里所æè¿°çš„ç ”ç©¶æ˜¯Stanford综åˆæ•°å—图书馆计划的一部分,由国家科å¦è‡ªç„¶åŸºé‡‘支æŒï¼Œåˆä½œåè®®å·IRI-9411306。DARPA ,NASA,Intervaç ”ç©¶ï¼ŒStanfordæ•°å—图书馆计划的工业åˆä½œä¼™ä¼´ä¹Ÿä¸ºè¿™é¡¹åˆä½œåè®®æ供了资金,å‚考文献。
Googleçš„è®¾è®¡ç›®æ ‡æ˜¯å¯å‡çº§åˆ°10亿网页。我们的ç£ç›˜å’Œæœºå™¨å¤§æ¦‚能处ç†è¿™ä¹ˆå¤šç½‘页。系统å„个部分耗费的总时间是并行的和线性的。包括网页爬行机器人,索引器和排åºå™¨ã€‚扩展åŽæˆ‘们认为大多数数æ®ç»“æž„è¿è¡Œè‰¯å¥½ã€‚然而10亿网页接近所有常用æ“作系统的æžé™ï¼ˆæˆ‘们目å‰è¿è¡Œåœ¨Solariså’ŒLinux上)。包括主å˜åœ°å€ï¼Œå¼€æ”¾æ–‡ä»¶æ述符的数é‡ï¼Œç½‘络socket和带宽,以åŠå…¶å®ƒå› ç´ ã€‚æˆ‘ä»¬è®¤ä¸ºå½“ç½‘é¡µæ•°é‡å¤§å¤§è¶…过10äº¿ç½‘é¡µæ—¶ï¼Œä¼šå¤§å¤§å¢žåŠ ç³»ç»Ÿå¤æ‚性。 9.2集ä¸å¼ç´¢å¼•ä½“系的å¯å‡çº§æ€§éšç€è®¡ç®—机性能的æ高,海é‡æ–‡æœ¬ç´¢å¼•çš„æˆæœ¬æ¯”较公平。当然带宽需求高的其它应用如视频,越æ¥è¶Šæ™®é。但是,与多媒体例如视频相比,文本产å“çš„æˆæœ¬ä½Žï¼Œå› æ¤æ–‡æœ¬ä»ç„¶æ™®é。
图2 Google系统的工作æµç¨‹å›¾
(注:原图æ¥è‡ªSergey Brin and Lawrence Page, The Anatomy of a Large-Scale Hypertextual. Web Search Engine, 1998.http://www-db.stanford.edu/%7Ebackrub/Google.html)
â‘ Google使用高速的分布å¼çˆ¬è¡Œå™¨(Crawler)系统ä¸çš„漫游é历器(Googlebot)定时地é历网页,将é历到的网页é€åˆ°å˜å‚¨æœåŠ¡å™¨(Store Server)ä¸ã€‚
â‘¡å˜å‚¨æœåŠ¡å™¨ä½¿ç”¨zlibæ ¼å¼åŽ‹ç¼©è½¯ä»¶å°†è¿™äº›ç½‘é¡µè¿›è¡Œæ— æŸåŽ‹ç¼©å¤„ç†åŽå˜å…¥æ•°æ®åº“Repositoryä¸ã€‚Repository获得了æ¯ä¸ªç½‘页的完全Html代ç åŽï¼Œå¯¹å…¶åŽ‹ç¼©åŽçš„网页åŠURL进行分æžï¼Œè®°å½•ä¸‹ç½‘页长度ã€URLã€URL长度和网页内容,并赋予æ¯ä¸ªç½‘页一个文档å·(docID),以便当系统出现故障的时候,å¯ä»¥åŠæ—¶å®Œæ•´åœ°è¿›è¡Œç½‘页的数æ®æ¢å¤ã€‚
③索引器(Indexer)从Repositoryä¸è¯»å–æ•°æ®ï¼Œä»¥åŽåšä»¥ä¸‹å››æ¥å·¥ä½œï¼š
â‘£(a)将读å–çš„æ•°æ®è§£åŽ‹ç¼©åŽè¿›è¡Œåˆ†æžï¼Œå®ƒå°†ç½‘页ä¸æ¯ä¸ªæœ‰æ„义的è¯è¿›è¡Œç»Ÿè®¡åŽï¼Œè½¬åŒ–为关键è¯(wordID)的若干索引项(Hits),生æˆç´¢å¼•é¡¹åˆ—表,该列表包括关键è¯ã€å…³é”®è¯çš„ä½ç½®ã€å…³é”®è¯çš„大å°å’Œå¤§å°å†™çŠ¶æ€ç‰ã€‚索引项列表被å˜å…¥åˆ°æ•°æ®æ¡¶(Barrels)ä¸ï¼Œå¹¶ç”Ÿæˆä»¥æ–‡æ¡£å·(docID)部分排åºçš„顺排档索引。
ç´¢å¼•é¡¹æ ¹æ®å…¶é‡è¦ç¨‹åº¦åˆ†ä¸ºä¸¤ç§ï¼šå½“索引项ä¸çš„关键è¯å‡ºçŽ°åœ¨URLã€æ ‡é¢˜ã€é”šæ–‡æœ¬(Anchor Text)å’Œæ ‡ç¾ä¸æ—¶ï¼Œè¡¨ç¤ºè¯¥ç´¢å¼•é¡¹æ¯”较é‡è¦ï¼Œç§°ä¸ºç‰¹æ®Šç´¢å¼•é¡¹(Fancy Hits);其余情况则称为普通索引项(Plain Hits)。在系统ä¸æ¯ä¸ªHit用两个å—节(byte)å˜å‚¨ç»“构表示:特殊索引项用1ä½(bit)表示大å°å†™ï¼Œç”¨äºŒè¿›åˆ¶ä»£ç 111(å 3ä½)表示是特殊索引项,其余12ä½æœ‰4ä½è¡¨ç¤ºç‰¹æ®Šç´¢å¼•é¡¹çš„类型(å³hit是出现在URLã€æ ‡é¢˜ã€é“¾æŽ¥ç»“ç‚¹è¿˜æ˜¯æ ‡ç¾ä¸),剩下8ä½è¡¨ç¤ºhit在网页ä¸çš„具体ä½ç½®ï¼›æ™®é€šç´¢å¼•é¡¹æ˜¯ç”¨1ä½è¡¨ç¤ºå¤§å°å†™ï¼Œ3ä½è¡¨ç¤ºå—体大å°ï¼Œå…¶ä½™12ä½è¡¨ç¤ºåœ¨ç½‘页ä¸çš„具体ä½ç½®ã€‚
顺排档索引和Hitçš„å˜å‚¨ç»“构如图3所示。
图3 顺排档索引和Hitçš„å˜å‚¨ç»“æž„
值得注æ„的是,当特殊索引项æ¥è‡ªAnchor Text时,特殊索引项用æ¥è¡¨ç¤ºä½ç½®çš„ä¿¡æ¯ï¼ˆ8ä½ï¼‰å°†åˆ†ä¸ºä¸¤éƒ¨åˆ†ï¼š4ä½è¡¨ç¤ºAnchor Text出现的具体ä½ç½®ï¼Œå¦4ä½åˆ™ç”¨æ¥ä¸Žè¡¨ç¤ºAnchor Text所链接网页的docID相连接,这个docID是由URL Resolverç»è¿‡è½¬åŒ–å˜å…¥é¡ºæŽ’档索引的。
(b)索引器除了对网页ä¸æœ‰æ„义的è¯è¿›è¡Œåˆ†æžå¤–,还分æžç½‘页的所有超文本链接,将其Anchor Textã€URL指å‘ç‰å…³é”®ä¿¡æ¯å˜å…¥åˆ°Anchor文档库ä¸ã€‚
(c)索引器生æˆä¸€ä¸ªç´¢å¼•è¯è¡¨(Lexicon),它包括两个部分:关键è¯çš„列表和指针列表,用于倒排档文档相连接(如图3所示)。
(d)索引器还将分æžè¿‡çš„网页编排æˆä¸€ä¸ªä¸ŽRepository相连接的文档索引(Document Index),并记录下网页的URLå’Œæ ‡é¢˜ï¼Œä»¥ä¾¿å¯ä»¥å‡†ç¡®æŸ¥æ‰¾å‡ºåœ¨Repositoryä¸å˜å‚¨çš„原网页内容。而且把没有分æžçš„ç½‘é¡µä¼ ç»™URL Server,以便在下一次工作æµç¨‹ä¸è¿›è¡Œç´¢å¼•åˆ†æžã€‚
⑤URL分æžå™¨ï¼ˆURL Resolver)读å–Anchor文档ä¸çš„ä¿¡æ¯ï¼Œç„¶åŽåšâ‘¥ä¸çš„工作。
â‘¥(a)将其锚文本(Anchor Text)所指å‘çš„URL转æ¢æˆç½‘页的docIDï¼›(b)将该docID与原网页的docIDå½¢æˆâ€œé“¾æŽ¥å¯¹â€ï¼Œå˜å…¥Linkæ•°æ®åº“ä¸ï¼›(c)å°†Anchor Text指å‘的网页的docID与顺排档特殊索引项Anchor Hits相连接。
⑦数æ®åº“Link记录了网页的链接关系,用æ¥è®¡ç®—网页的PageRank值。
⑧文档索引(Document Index)把没有进行索引分æžçš„ç½‘é¡µä¼ é€’ç»™URL Server,URL Server则å‘Crawleræ供待é历的URLï¼Œè¿™æ ·ï¼Œè¿™äº›æœªè¢«ç´¢å¼•çš„ç½‘é¡µåœ¨ä¸‹ä¸€æ¬¡å·¥ä½œæµç¨‹ä¸å°†è¢«ç´¢å¼•åˆ†æžã€‚
⑨排åºå™¨ï¼ˆSorter)对数æ®æ¡¶(Barrels)的顺排档索引é‡æ–°è¿›è¡ŒæŽ’åºï¼Œç”Ÿæˆä»¥å…³é”®è¯(wordID)为索引的倒排档索引。倒排档索引结构如图4所示:
图4 倒排档索引结构
⑩将生æˆçš„倒排档索引与先å‰ç”±ç´¢å¼•å™¨äº§ç”Ÿçš„索引è¯è¡¨(Lexicon)相连接产生一个新的索引è¯è¡¨ä¾›æœç´¢å™¨(Searcher)使用。æœç´¢å™¨çš„功能是由网页æœåŠ¡å™¨å®žçŽ°çš„ï¼Œæ ¹æ®æ–°äº§ç”Ÿçš„索引è¯è¡¨ç»“åˆä¸Šè¿°çš„文档索引(Document Index)å’ŒLinkæ•°æ®åº“计算的网页PageRank值æ¥åŒ¹é…检索。
在执行检索时,Google通常éµå¾ªä»¥ä¸‹æ¥éª¤ï¼ˆä»¥ä¸‹æ‰€æŒ‡çš„是å•ä¸ªæ£€ç´¢è¯çš„情况):
(1)将检索è¯è½¬åŒ–æˆç›¸åº”çš„wordIDï¼›
(2)利用Lexicon,检索出包å«è¯¥wordID的网页的docIDï¼›
(3)æ ¹æ®ä¸ŽLexicon相连的倒排档索引,分æžå„网页ä¸çš„相关索引项的情况,计算å„网页和检索è¯çš„匹é…程度,必è¦æ—¶è°ƒç”¨é¡ºæŽ’档索引;
(4)æ ¹æ®å„网页的匹é…程度,结åˆæ ¹æ®Link产生的相应网页的PageRank情况,对检索结果进行排åºï¼›
(5)调用Document Indexä¸çš„docIDåŠå…¶ç›¸åº”çš„URL,将排åºç»“果生æˆæ£€ç´¢ç»“果的最终列表,æ供给检索用户。
用户检索包å«å¤šä¸ªæ£€ç´¢è¯çš„情况与以上å•ä¸ªæ£€ç´¢è¯çš„情况类似:先åšå•ä¸ªæ£€ç´¢è¯çš„检索,然åŽæ ¹æ®æ£€ç´¢å¼ä¸æ£€ç´¢ç¬¦å·çš„è¦æ±‚进行必è¦çš„布尔æ“作或其他æ“作。
相关日志
è°·æŒç©¿è¶Šæœç´¢-è°·æŒå®˜æ–¹æ„šäººèŠ‚玩笑
Google将在æœç´¢ç»“果排å算法ä¸è€ƒè™‘æ¥è‡ªTwitterã€Quoraç‰ç¤¾ä¼šåŒ–网络社区的内容
桥页SEO:网站自我æ¯ç工具
《Google官方SEO入门指å—》å四: 对网站管ç†å‘˜æœ‰ç”¨çš„资æº(完)
《Google官方SEO入门指å—》å三:充分利用网站分æžå·¥å…·
《Google官方SEO入门指å—》å二:充分利用å…费的网站管ç†å‘˜å·¥å…·
《Google官方SEO入门指å—》å一:以æ°å½“çš„æ–¹å¼æŽ¨å¹¿ä½ 的网站
《Google官方SEO入门指å—》åï¼šä¸ºé“¾æŽ¥æ·»åŠ nofollow属性
《Google官方SEO入门指å—》ä¹ï¼šæœ‰æ•ˆä½¿ç”¨robots.txt
《Google官方SEO入门指å—》八:网页图片优化
è°·æŒç©¿è¶Šæœç´¢-è°·æŒå®˜æ–¹æ„šäººèŠ‚玩笑
Google将在æœç´¢ç»“果排å算法ä¸è€ƒè™‘æ¥è‡ªTwitterã€Quoraç‰ç¤¾ä¼šåŒ–网络社区的内容
桥页SEO:网站自我æ¯ç工具
《Google官方SEO入门指å—》å四: 对网站管ç†å‘˜æœ‰ç”¨çš„资æº(完)
《Google官方SEO入门指å—》å三:充分利用网站分æžå·¥å…·
《Google官方SEO入门指å—》å二:充分利用å…费的网站管ç†å‘˜å·¥å…·
《Google官方SEO入门指å—》å一:以æ°å½“çš„æ–¹å¼æŽ¨å¹¿ä½ 的网站
《Google官方SEO入门指å—》åï¼šä¸ºé“¾æŽ¥æ·»åŠ nofollow属性
《Google官方SEO入门指å—》ä¹ï¼šæœ‰æ•ˆä½¿ç”¨robots.txt
《Google官方SEO入门指å—》八:网页图片优化
最后编辑: 郝聪 编辑于2008/02/19 16:29