web搜索之简单介绍

来源:互联网 发布:软件测试招聘要求 编辑:程序博客网 时间:2024/05/21 06:19

    今天晚上,大学同学叫我帮他看一下代码,于是他把公司的搜索引擎的代码发给我,有十几M大小,我解压后导入IDE,快速浏览了一下,原来也不过如此,由于代码版本过于太早,而且有些类还丢失,故无法运行起来,以便查看一下它的效率和性能方面。

       我很早就想说关于WEB搜索的知识了,一直没有静下来写,其实说简单一点,搜索引擎的步骤有,抓取网页,分析网页,建立索引,查询结果排序等这些。这几个步骤是不断循环进行的,最开始,搜索引擎需要有最原始的网页地址,根据这些网页地址得到网页的内空,对这些网页进行分析,得到网页内的标题内容,以及相应的链接网页地址,把这些网页地址保存,给下一次抓取内容所用。然后对网页的内容进行分词,根据关键字或词建立倒排序索引,完了后保存索引。这样对于网页部分的工作已经完成。

       接下来就是用户要查询关于某个关键字或词的网页内容,首先根据用户输入的字或词,在之前建立好的倒排索引中查找相应的字或词的有关的网页内容,得到这些内容后,再根据这些网页的权重,以及历史的一些信息,分析出网页显示的前后关系,即重要性。GOOGLE专门开发了PAGERANK算法来对结果进行排序。当然用户可能输入不是一个字或词,而是一串,这样就需要对用户输入的信息进行预处理,分解成多个查找条件,再合成这些条件查找的结果。

       对于搜索引擎来说,由于需要不断的去抓取网页,同时网页的更新速度很快,特别是大网站,因此需要隔几天去搜一次。同时网页的数量是非常大,可以说很广。为了能够抓取的更多网页,我们需要大量的机器协同来进行抓取网页,这样就涉及到分布式,可以把网页分给几台机器进行抓取,分析,索引工作。最后用户提交查询后,对这多台机器进行查询,再合并结果就是了。当然还有其他的办法。最终的目的就是效率和性能是关键。一个搜索引擎的好坏,主要看结果是不是最新的,最前面的结果是不是用户最想要的东西,查询结果时响应的速度,等等。