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