了解搜索引擎

来自站长百科
跳转至: 导航、​ 搜索

一个合格的SEOER必须了解搜索引擎基本工作原理。很多看似令人迷惑的SEO原理及技巧,其实从搜索引擎原理出发,都是自然而然的事情。

说到底,SEO是在保证用户体验的基础上尽量迎合搜索引擎。与研究用户界面及可用性不同的是,SEO既要从用户出发,也要站在搜索引擎的角度考虑问题,才能清晰地知道怎样优化网站。SEO人员必须知道搜索引擎要解决什么问题?有哪些技术上的困难?有什么限制?搜索引擎又怎样取舍?

从某个角度来说,SEO人员优化网站就是尽量减少搜索引擎的工作量和降低搜索引擎的工作难度,使搜索引擎能更轻松快速地收录网站页面,更准确地提取页面内容。不了解搜索引擎工作原理,也就无从替搜索引擎解决一些SEOer力所能及的技术问题。当搜索引擎面对一个网站,发现要处理的问题太多,难度太大时,搜索引擎可能就对这样的网站敬而远之了。

搜索引擎与目录[ ]

早期SEO资料经常把真正的搜索引擎与目录放在一起讨论,甚至把目录也称为搜索引擎的一种,这种讲法并不准确。真正的搜索引擎指的是由蜘蛛程序沿着链接爬行和抓取网上的大量页面,存进数据库,经过预处理,用户在搜索框输入关键词后,搜索引擎排序程序从数据库中挑选出符合搜索关键词要求的页面。蜘蛛的爬行、页面的收录以及排序都是自动处理。

网站目录则是一套人工编辑的分类目录,由编辑人员人工创建多个层次的分类,站长可以在不同分类里提交网站,目录编辑在后台审核所提交的网站,将网站放置于相应的分类页面。有的时候编辑也主动收录网站。典型的网站目录包括雅虎目录、开放目录、好123等。

搜索引擎和目录两者各有优劣。搜索引擎收录的页面数远远高于目录能收录的页面数。但搜索引擎收录的页面质量参差不齐,对网站内容和关键词提取的准确性通常也没有目录高。

限于人力,目录能收录的通常只是网站首页,而且规模十分有限,不过收录的网站通常质量比较高。像雅虎、开放目录、好123这些大型目录,收录标准非常高。目录收录网站时存储的页面标题、说明文字都是人工编辑,所以比较准确。

搜索引擎数据更新快,而目录中收录的很多网站内容十分陈旧,甚至网站可能已经不再存在了。雅虎目录、搜狐目录等曾经是用户在网上寻找信息的主流方式,给用户的感觉与真正的搜索引擎也相差不多。这也就是为什么目录有时候被误称为搜索引擎的一种。

搜索引擎面对的挑战[ ]

搜索引擎系统是最复杂的计算系统之一,当今主流搜索引擎服务商都是有财力和人力的大公司。即使有技术、人力、财力的保证,搜索引擎还是面临很多技术挑战。

页面抓取需要快而全[ ]

互联网是个动态的内容网络,每天有无数页面被更新、被创建,无数用户在网站上发布内容、沟通联系。要返回最有用的内容,搜索引擎就要抓取最新的页面。但是由于页面数量巨大,搜索引擎蜘蛛更新一次数据库中的页面要花很长时间。搜索引擎刚诞生时,这个抓取周期往往以几个月计算。这也就是为什么Google在2003年以前每个月有一次大更新。

现在主流搜索引擎都已经能在几天之内更新重要页面,权重高的网站上的新文件几小时甚至几分钟之内就会被收录。不过,这种快速收录和更新也只能局限于高权重网站。很多页面几个月不能被重新抓取和更新,也是非常常见的。

要返回最好的结果,搜索引擎也必须抓取尽量全面的页面,这就需要解决很多技术问题。一些网站并不利于搜索引擎蜘蛛爬行和抓取,诸如网站链接结构的缺陷,大量使用FlashJavaScript脚本,或把内容放在用户必须登录以后才能访问的部分,这都提高了搜索引擎抓取内容的难度

海量数据存储[ ]

一些大型网站一个网站就有百万千万页面,可以想象网上所有网站的页面加起来是一个什么数据量。搜索引擎蜘蛛抓取页面后,还必须有效存储这些数据,数据结构必须合理,具备极高的扩展性,写入及访问速度要求也很高。

除了页面数据,搜索引擎还需要存储页面之间的链接关系以及大量历史数据,这样的数据量是我们用户无法想象的。据说Google有几十个数据中心,上百万台服务器。这样大规模的数据存储和访问必然存在很多技术挑战。

我们经常在搜索结果中看到,排名会没有明显原因地上下波动,甚至可能刷新一下页面,就看到不同的排名,有的时候网站数据也可能丢失。这些都可能与大规模数据存储的技术难题有关。

索引处理快速有效,具可扩展性[ ]

搜索引擎将页面数据抓取和存储后,还要进行索引处理,包括链接关系的计算、正向索引、倒排索引等。由于数据库中页面数量大,进行PR之类的迭代计算也是耗时费力。要想及时提供相关又及时的搜索结果,仅仅抓取也没有用,还必须进行大量索引计算。由于随时都有新数据新页面加入,索引处理也要具备很好的扩展性。

查询处理快速准确[ ]

查询是普通用户唯一能看到的搜索引擎工作步骤。用户在搜索框输入关键词,点击搜索按钮后,就会看到搜索结果。表面最简单的过程,实际上牵扯了非常复杂的后台处理。在最后的查询阶段,最重要的难题是怎样在不到一秒钟的时间内,快速从几十万几百万,甚至几千万包含搜索词的页面中,找到最合理、最相关的一千个页面,并且按照相关性、权威性排列。

判断用户意图以及人工智能[ ]

应该说前四个挑战现在的搜索引擎都已经能够比较好地解决,但判断用户意图还处在初级阶段。不同用户搜索相同的关键词,很可能是在寻找不同的东西。没有上下文,没有对用户个人搜索习惯的了解,就完全无从判断。

搜索引擎目前正在致力于基于用户搜索习惯及历史数据的了解上,判断搜索意图,返回更相关的结果。今后搜索引擎是否能达到人工智能水平,真正了解用户搜索词的意义和目的,让我们拭目以待。

搜索引擎工作原理简介[ ]

搜索引擎工作过程非常复杂,接下来我们简单介绍搜索引擎是怎样实现网页排名的。搜索引擎的工作过程大体上可以分成三个阶段:

1)爬行和抓取 – 搜索引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。

2)预处理 - 索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,以备排名程序调用。

3)排名 - 用户输入关键词后,排名程序调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面。

爬行和抓取[ ]

爬行和抓取是搜索引擎工作的第一步,完成数据收集的任务。

为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行那样,这也就是搜索引擎蜘蛛这个名称的由来。整个互联网是由相互链接的网站及页面组成的。从理论上说,蜘蛛从任何一个页面出发,顺着链接都可以爬行到网上的所有页面。当然,由于网站及页面链接结构异常复杂,蜘蛛需要采取一定的爬行策略才能遍历网上所有页面。

最简单的爬行遍历策略分为两种,一是深度优先,二是广度优先。

所谓深度优先指的是蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另一个链接再一直往前爬行。

广度优先是指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。

在实际工作中,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面。实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分。深度优先和广度优先通常是混合使用的,这样既可以照顾到尽量多的网站(广度优先),也能照顾到一部分网站的内页(深度优先)。

预处理[ ]

在一些SEO材料中,预处理也被简化称为索引,因为索引是预处理最主要的步骤。

搜索引擎蜘蛛抓取的原始页面,并不能直接用于查询排名处理。搜索引擎数据库中的页面数都在数万亿级别以上,用户输入搜索词后,靠排名程序实时对这么多页面分析相关性,计算量太大,不可能在一两秒内返回排名结果。因此抓取来的页面必须经过预处理,为最后的查询排名做好准备。

和爬行抓取一样,预处理也是在后台提前完成,用户搜索时感觉不到这个过程。

排名[ ]

经过搜索引擎蜘蛛抓取页面,索引程序计算得到倒排索引后,搜索引擎就准备好可以随时处理用户搜索了。用户在搜索框填入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程是与用户直接互动的。

相关条目[ ]

参考来源[ ]

http://www.seozac.com/seo/ebook-understand-search-engines/