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