|
Google是如何(hé)收录及排序网页的(de) |
|
我们遇到的(de)最常见的问题之一是“Google是如何判定(dìng)哪个结果出现(xiàn)在搜索结果的前茅?”,Matt Cutts给我们简单地揭(jiē)示了如何抓(zhuā)取、收录和(hé)给网页评级。
抓取和收录 当你看(kàn)到出现(xiàn)在(zài)Google的搜索结果的那个网页之(zhī)前,Google在(zài)后台已经做了许多步(bù)骤。Google的第一步是(shì)抓取(qǔ)和收录互联网上的数十亿的网(wǎng)页(yè),这个工作时(shí)由Google的机器人Googlebot来完(wán)成的,它(tā)浏览网络服务器抓(zhuā)取(qǔ)文件。 抓取的(de)程序并不(bú)是漫(màn)无目的地在互(hù)联网上(shàng)瞎逛,它(tā)访问服务(wù)器的特定的网(wǎng)页(yè),然后扫描网页上的(de)超文本链接,如果有(yǒu)新(xīn)的文件也是这(zhè)样(yàng)抓取(qǔ)得;蜘蛛程(chéng)序给每个(gè)得到的网页一(yī)个号(hào)码,这个(gè)号码指向(xiàng)它(tā)抓取的网页。
蜘蛛程序抓取了很(hěn)多的网页,但这些网页还不是便于搜索的。如果没有一(yī)个索引,你要查(chá)询一个词(cí),比如“国内战争(zhēng)”,Google的服务器(qì)每次都要读取每一(yī)个文(wén)件的所有内容。
因(yīn)此(cǐ),第二步就是建立索引。我们(men)不是去(qù)扫描每一(yī)个文件的所(suǒ)有内容,我们(men)巧妙地进行数据(jù)的“转换”,列出每一个文件所包含的(de)特定的词(cí),例如,“国内”这个词可能出现在文件3,8,22,56,68和92当中,而(ér)“战争”这个(gè)词出现(xiàn)在文件2,8,15,22,68和(hé)77中。
建立(lì)好索引之后,我们(men)就可以开始对网页进行(háng)评级,决定网页的相关程度(dù)。假设有人在(zài)Google的(de)搜索栏输入“国内战争”进行(háng)查询,为了提交搜索结果和对(duì)结果进行评分,我们要做两件事:
1. 找(zhǎo)到包含用户查询的词的网页 2. 给符合(hé)的(de)网(wǎng)页按照相关程(chéng)度进行评(píng)级(jí) Google开发出一个有趣的技巧(qiǎo)来加速第一步(bù):Google不是(shì)把整(zhěng)个(gè)索引存储(chǔ)在一台功能强大的(de)计算机(jī)上(shàng),而是用千百个计算机来(lái)存储这些信息(xī)。因为任务被分解到许多的计算机,可以更快地(dì)找到所(suǒ)需的答案(àn)。 详细解(jiě)释一下,假设一本书的目录有30页,如(rú)果(guǒ)一(yī)个人(rén)要在目录中查寻资料,每次查询都要花(huā)几秒钟;如果用30个人每人查询一页目录(lù),显然要比一个人查询(xún)的速度快很多。同样的,Google将数(shù)据(jù)分别存储在许多计算机上,这样搜索(suǒ)的速(sù)度会大(dà)大加快。
我们是如何找(zhǎo)到那些包含用户搜索的(de)词的网页呢(ne)?回到“国内战争”的例子,“国内(nèi)”这个词(cí)出现在文件3,8, 22, 56, 68 和92; “战争”出现在文件2, 8, 15, 22, 68和77,记(jì)下同时出现这两(liǎng)个词的文件(jiàn)。
国(guó)内 3 8 22 56 68 92 战争(zhēng) 2 8 15 22 68 77 国内 战争 8 22 68
这样我们可以(yǐ)清楚地发现“国内”、“战争”这两个词同时出现的在三个文件里 (8, 22, 和68)。 含有这几个字的列表叫(jiào)做“位置列表(biǎo)”,搜索文件包含这两个字,这(zhè)叫做交叉搜索位置列表。(较快的交叉搜索的方(fāng)法是(shì)同时进行搜索,如果一个搜(sōu)索(suǒ)列表,22到68,那另一(yī)个就可(kě)以开始搜索其(qí)他的) 对结果进行评级 现在我们已(yǐ)经有(yǒu)了一些包含(hán)用户(hù)搜索的关键词的网页,我们要对它们的相(xiàng)关程度进行评级。Google用许多(duō)参(cān)数进行评级(jí)。这当中PR算法是众所周知的。PageRank评估两个因素:有多少个网页链接到这个网页,这些链(liàn)接网(wǎng)页的网站的质量如何。通(tōng)过PageRank,五六个高质量(liàng)的站点的链接,比(bǐ)如www.cnn.com和www.nytimes.com比其(qí)他较差的网站的链接要(yào)有(yǒu)价值的(de)多。
但是除(chú)了PageRank,我们还(hái)用许多其它的参数来(lái)进行(háng)评级。例如,如果一(yī)个文件(jiàn)包含(hán)“国内”和“战争”这两个词排在一起(qǐ),这个(gè)文件可(kě)能比(bǐ)一个讨论革命战争的文件(jiàn)(在文件的某(mǒu)个地(dì)方(fāng)使用(yòng)“国内”)的相关程度高。还比如假设一个网页(yè)的标题是(shì)“国内战争”,比另一个标题为“19世纪美国服装”的网页相关(guān)度高得(dé)多。同样(yàng)的,如果“国(guó)内战争”在(zài)网页中出现多次的网(wǎng)页比只出现一个的网页相关的程度(dù)也要高。假(jiǎ)设你是搜索引擎,选择一个词(cí)查(chá)询,比(bǐ)如:国(guó)内战争或回收(shōu),在Google上查询,从(cóng)结果(guǒ)中(zhōng)挑选三到四页打印出来。从每一(yī)张打印的页面上(shàng)找出你的搜索语句的每(měi)一个(gè)字然后用荧光笔标(biāo)出来,然(rán)后把这几(jǐ)页(yè)贴在墙上,退后几步眯(mī)着眼看,当你不知道(dào)页面的内容,仅仅能看到(dào)那些有颜(yán)色的方块,你认为(wéi)那一(yī)页是最(zuì)相(xiàng)关的呢?是不是有着大的(de)标题和(hé)多次重(chóng)复出现(xiàn)的颜色代表了较(jiào)高的相(xiàng)关程度?你(nǐ)喜欢(huān)这些(xiē)字(zì)出(chū)现在顶(dǐng)端还是底部?这些字出现的频率如何(hé)?这(zhè)也(yě)是搜索(suǒ)引(yǐn)擎如何判断网页的相(xiàng)关程度。
原则上,Google总是(shì)试图(tú)找出可靠的和相关的网页(yè)。如果两个网页(yè)按照(zhào)查询(xún)的语句大致有相同(tóng)的信息,Google通常(cháng)选择比较信得过的网站(zhàn)的网页。当(dāng)然,如果有一些(xiē)因素表明这(zhè)个(gè)网站的网页相关(guān)度更高,Google经(jīng)常也选择(zé)PageRank较低(dī)的网站。
一旦Google完成了文(wén)件的(de)列表(biǎo)和它(tā)们的评分,就给出得(dé)分最高的(de)网页。Google同(tóng)时从网页(yè)中摘录一小段包含查(chá)询的关(guān)键词(cí)的句子;给出网页的链接。
对于这样(yàng)的搜索工作,需(xū)要极大的数据(jù)运算量,一般说来,对于某个搜索,要有超过500台的服务器协同工作以求得最佳(jiā)匹配的结(jié)果,当(dāng)然(rán),结果(guǒ)会在半秒内返回用户。 |
|