1,搜索引擎的架构
搜索引擎根据用户提交的类自然语言查询词或者短语,将一系列很可能与该查询相关的网页信息返回给用户,此时搜索引擎并不真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。现代大规模高质量搜索引擎的主流是采用“从互联网上抓取网页(搜集)-建立索引数据库(整理)-在索引数据库中搜索并排序(服务)”的三段式工作流程。其系统流程如下图所示:
2,Crawler
Crawler也称为“网络机器人”(Robot),“网络蜘蛛”(Spider),是一个功能很强的Web搜集程序。它可以在搜集Web页面的同时发现其内的超链接并加入搜集队列等待以后搜集。因为Web广泛使用超链接,所以Crawler程序理论上可以访问整个Web页面。
为了保证网络机器人遍历信息的广度和深度需要设定一些重要的链接并制定相关的搜集策略然后对这些链接进行遍历,在遍历过程中不断记录网页中的链接,这样不断遍历下去,直到访问完所有链接。搜索引擎的Crawler一般还要定期重新访问所有网页,更新网页索引数据库,以反映出网页文字的更新情况,所以Crawler的实现常需要采用分布式、并行计算技术,以提高信息发现和更新的速度。
3,索引
由分析索引系统程序对Crawler收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的所有关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面文字中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引。
索引的建立方法对搜索引擎来说具有很大的影响,好的索引能提高搜索引擎系统运行的效率以及检索结果的质量。其中主要涉及的技术是文本分析,包括提取索引项、自动摘要、自动分类器、文本聚类等。索引通常按照倒排文件的格式进行组织和存储,并且需要对索引进行及时更新以保证用户利用搜索引擎能检索到最新的信息。
4,用户检索
当用户输入查询信息后,由检索程序从网页索引中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
搜索的最终目的是获取需要的信息,在大量的信息中进行查找是很讨厌的一件事情,很难做到令人满意。即使是在现实生活中,面对一大堆自己辛辛苦苦找来的资料时,你往往会发现并不是所有的资料都有用。目前搜索引擎所实现的只是通常意义上的相关信息搜索,常用的相关信息查找方法有相似性函数法、归类(组)法等。在这一研究领域有两种比较有影响的方法,就是Page Rank方法和Authority and Hub方法。这两种方法都是利用页面中的链接来对文档的重要性进行判断。





