搜索引擎技术简介

来源:互联网 发布:mac如何输入罗马数字 编辑:程序博客网 时间:2024/04/30 03:54

 什么是搜索引擎?曾有人形象地比喻说:“搜索引擎就像一个巨大的吸尘器,能将互联网海洋的任何东西都吸上来,不管它在多深的海底。”这句解释尽管并不准确,但比较形象,我们来看看真实的搜索引擎工作是怎样一个流程吧。

    蜘蛛程序

    实际上,搜索引擎捕捉网页并不是“吸”,而是“抓”——抓取。还是继续以海洋作为互联网的形象代表吧。这个海洋,是以不计其数的网页组成的,而网页间,靠一个个链接相连,形成一个宽广无垠的互联“网”。

    搜索引擎“抓取”网页的工具,人们叫它蜘蛛程序(SpiderPro-gram),它沿着网页的链接,从一个网页爬到另一个网页,并有选择地将一个个网页抓取回来。

    我们知道,每一个互联网页面,都是用html语言写成的。“蜘蛛程序”访问的并不是我们日常看到的页面,而是后台的html源码,如果“蜘蛛”认为这个页面有用,它就会将关于这个页面的html源码复制下来,发送回搜索引擎的服务器进行存储,然后继续它的旅程,去访问下一个页面。

    从理论上来说,从一个页面出发,根据该页面的链接信息,这个蜘蛛可以访遍互联网上所有的网页——就好像你认识一个人,你可以根据这个人认识的人,和这个人认识的人所认识的人,一直和这个世界上所有的人建立某种关系。“蜘蛛程序”的工作原理也是这样的。

    不同的搜索引擎,它们所拥有的“蜘蛛程序”不一样,蜘蛛的能力大小也不一样。比如,每天能抓到网页的数量是一个指标,避免抓重复网页的能力是一个指标,如何抓到最新网页的能力也是一个指标。因此,“蜘蛛”能力的大小,首先就会导致不同搜索引擎之间的差异。

    建立索引和排序

    蜘蛛程序固然重要,但这还不是各搜索引擎的核心差异,其核心差异还是在于搜索引擎对抓取回来的页面所进行索引和设定排序规则。

    抓回来的页面源程序放在搜索引擎庞大的服务器群中,就好像是成千上万本书散落在一个巨大的图书馆中,如果不对这些书进行索引和排序,要找到一本书就跟大海捞针的难度是一样的。索引就是要对每个页面中的每个字词都进行分析、整理和提炼,将每个页面分门别类地放在各个索引库中。

    显然,如果依靠人工肯定不能对每个页面的字词都进行详细的分析,这个过程也是通过程序来完成的。这中间分词技术就很关键,比如,分词技术直接影响到搜索引擎会不会根据“任务”这样一个词,来建立包含“李主任务必来开会”字样的网页索引(早期的搜索引擎,包括Google在内,就曾经出现过键入“任务”一词,搜出包含“李主任务必来开会”网页的事情)。

    索引之后就是排序,即确定用户向搜索引擎提交了一个搜索请求后,搜索引擎应该向用户返回搜索结果的秩序。显然,用户最想要的信息应该排在搜索结果的最前列,但究竟什么样的信息是用户最想要的信息?这个问题就仁者见仁,智者见智了。

    在搜索引擎领域,著名的排序规则是百度创始人李彦宏的“超链分析”(李在美国申请了相关技术的专利)。超链分析认为一个网页的重要性可由其他网页指向该网页的链接数目决定,这有点像要判断一个人是否重要,就看这个世界有多少其他人认识他。与超链分析排序规则类似,Google也采用根据网页被链接指向多少的规则来进行排序,创造了自己独特的PageRank技术。

    可以说,正是由于掌握了网页索引和排序规则方面的核心技术,才造就了目前Google和百度在各自市场上各领风骚的局面。

    反作弊

    将互联网有用的网页抓取回来,并根据排序规则建立了网页索引,用户在使用搜索引擎进行检索时,就可以以极快的速度找到相关性高的网页了。然而道高一尺,魔高一丈,如果单纯依靠静态的蜘蛛程序抓取规则和排序规则,一些恶意的网站就可以利用这些规则,来进行所谓的网站优化。《南方周末》曾经在《搜索引擎与作弊网站的战争》一文中详细介绍了这方面的情况。

    从上面的介绍可以看出,搜索引擎绝不是仅仅执行简单的“吸尘器”功能,它首先需要功能强大的“蜘蛛”来协助其收集互联网规模日增、每天变化的各种网页信息,同时需要极大的投入,购买服务器来将这些信息保存起来。接着,搜索引擎要对所有收集来的网页建立索引和排序,并时刻警惕外界的各种作弊行为。

    通过这样的搜索引擎工作流,我们也可以看到运作一个好的搜索引擎所需要的资源:“蜘蛛程序”,“分词技术”、“排序规则”和“反作弊程序”,这些需要大量的程序员不停工作,来提升软件的效率和功用;海量网页信息和索引信息的存储,需要企业投入大量财力,来部署服务器群。目前,Google在全球投入搜索引擎技术开发的技术人员上千人,研究全球100多种语言的搜索技术,而百度目前700多的员工规模中,接近一半以上的技术人员,研究单一的中文搜索技术。

    由于搜索引擎产业的复杂性,在资源投入的基础上,“专注”也是一个很重要的因素。“我们将一如既往,专注在中文搜索引擎领域的研发和推广上。”已经成为企业家明星的百度公司总裁李彦宏曾经公开表示。

    了解了搜索引擎的技术内核,我们不难理解为什么“全、新、快、准”四个字会成为衡量搜索引擎好坏的标准。“全”是指索引库中搜集的网页要全,根据最新的统计数字,在差不多20亿中文网页中,百度索引库中搜集了8亿,而Google的数字是5亿;“新”就是要保证一些最新的网页能被收录在索引库中,目前百度的索引库每月会完整更新一遍,但每天会多次更新,每次更新一部分最新网页;“快”就是指查询提交后搜索引擎返还结果的速度,“准”指的是搜索结果的相关性和准确度。

    技术层面上了解了搜索引擎之后,人们才能更清楚地进一步了解搜索引擎如何盈利、为什么市场对搜索引擎公司如此青睐。

原创粉丝点击