搜索引擎工作原理(Nutch)

二、搜索引擎工作原理

2.1 搜索引擎模块组成

一个典型的网络信息检索系统的系统架构由信息收集、信息处理和查询服务三个模块组成。

从具体运行方式上说,系统根据站点/网页的URL信息和网页之间的链接关系,利用网络蜘蛛在互联网上收集数据;收集的数据分别通过链接信息分析器和文本信息分析器处理,保存在链接数据库和文本索引数据库中,同时,网页质量评估器依据网页的链接关系和页面结构特征对页面质量进行评估,并将评估的结果保存在索引数据库中;查询服务器负责与用户的交互,它根据用户的检索需求,从索引数据库中读取对应的索引,并综合考虑查询相关性与页面质量评估结果之间的关系,给出查询结果列表反馈给用户。[1]

2.1.1 网信息收集模块

搜索器的信息收集模块包括“蜘蛛控制”和“网络蜘蛛”两部分,“蜘蛛”这个称呼形象的描述出了信息收集模块在网络数据形成的“Web”上进行信息获取的功能。总体而言,网络蜘蛛从种子网页出发,通过反复下载网页并从文档中寻找未曾见过的URL,达到访问其他网页得以遍历Web的目的。而其工作策略一般则可以分为累积式抓取(cumulative crawling)和增量式抓取(incremental crawling)两种。

累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境下,经过足够的运行时间,累积式抓取的策略可以保证抓取到相当规模的网页集合。但由于Web数据的动态特性,集合中网页的被抓取时间点是不同的,页面被更新的情况也不同,因此累积式抓取到的网页集合事实上并无法与真实环境中的网络数据保持一致。

与累积式抓取不同,增量式抓取是指在具有一定量规模的网络页面集合的基础上,采用更新数据的方式选取已有集合中的过时网页进行抓取,以保证所抓取到的数据与真实网络数据足够接近。进行增量式抓取的前提是,系统已经抓取了足够数量的网络页面,并具有这些页面被抓取的时间信息。

面向实际应用环境的网络蜘蛛设计中,通常既包括累积式抓取,也包括增量式抓取的策略。累积式抓取一般用于数据集合的整体建立或大规模更新阶段;而增量式抓取则主要针对数据集合的日常维护与即时更新。

在确定了抓取策略之后,如何从充分利用网络带宽,合理确定网页数据更新的时间点就成了网络蜘蛛运行策略中的核心问题。

总体而言,在合理利用软硬件资源进行针对网络数据的即时抓取方面,已经形成了相对比较成熟的技术和实用性解决方案,这方面目前所需解决的主要问题,是如何更好的处理动态网络数据问题(如数量越来越庞大的Web2.0数据等),以及更好的根据网页质量修正抓取策略的问题。

2.1.2 索查询服务模块

查询服务模块是指网络信息检索系统中,直接与用户查询需求交互的组成部分。从功能上讲,这个模块主要完成两方面的任务:首先是用户交互,即收集用户查询并用符合用户行为习惯的方式对查询结果进行反馈;其次是信息查询和检索,使用收集到的用户查询在由信息收集模块抓取,并由信息处理模块建立索引的网络数据上进行检索。这其中涉及到的核心技术包括:检索系统网络服务的建立和维护、面向网络信息的检索模型建立等。

网络信息检索系统严格意义上说也在提供一种网络服务(Web Service),因此它的建立和运行、维护机制符合网络服务系统的一般规律。但由于网络信息检索用户行为习惯存在宏观上的统计特性,系统的网络服务也应进行优化以更好的适应这种行为习惯。针对搜索引擎日志分析的工作说明,尽管网络信息检索用户所提出的查询数目异常繁杂,但搜索需求中的大多数是重复的,重复的比例超过用户所提交查询需求的70%以上乃至更多。因此在检索系统的网络服务部分加入某种类型的缓存机制就是非常必要的,对检索结果序列或检索结果页面本身的缓存都有助于大大减轻网络数据检索的负担。

面向网络信息的检索模型研究一直是网络信息相关研究的重点,研究的主要方法一般集中在以下两点:改进传统文本信息检索技术以适应网络信息需求;不对传统检索技术进行改动,而尝试对传统检索结果与网络信息质量评估结果进行融合。前者主要的研究工作包括对网络半结构化文本检索方式的研究和对链接文本检索方式的研究等;而后一方面主要的研究工作则集中在将网络链接关系分析算法(PageRank)的结果融合到传统文本检索结果模型的尝试。而这方面最重要的研究平台之一是TREC的网络信息检索(Web Track)和超大规模文本检索(Terabyte Track)论坛。上述不少研究所基于的实验数据都来自于这两个论坛从2001年以来的积累,我们研究中涉及到的一部分实验结果也是基于这个研究领域比较公认的平台得出的。

总体而言,面向用户的查询服务技术是网络信息检索技术研究的热点之一,而主要的研究方向,则是基于传统文本信息检索技术,融入网络信息检索的应用需求元素,借以建立新的检索模型或对原有模型进行改进。当前,这方面研究集中在对用户信息需求的挖掘与发现、改进网络信息检索系统的用户交互方式等方面上。

2.1.3 搜信息处理模块

除去上两个模块之外的部分都可以归入信息处理模块的范畴,将纷繁复杂的网页数据整理成可以被检索系统高效、可靠、方便使用的格式是这一模块的工作。具体来讲,信息处理包括对传统内容信息的处理和对非内容信息(主要是链接结构信息和文本结构信息等)进行处理两个方面的内容。

对文本内容信息的处理与传统文本信息检索系统的信息处理模块功能类似,最主要的目的是建立以词项(term)为中心的文本倒排索引,以便检索系统中检索功能模块进行内容相似度计算使用,提高系统检索效率。这方面的主要研究工作集中在对倒排索引结构合理设计上,如是否记录文字位置信息以及记录的形式等。对中文信息检索系统而言,在这一部分还研究其特殊的预处理过程,即分词并建立词项的过程。由于这方面的研究较多涉及到实际工程层面的实现原理与技术细节,因此相关研究工作的介绍并不多,仅有部分工程技术报告涉及,如863信息检索评测的相关工作等。

与纯文本数据相比,网络数据不仅包括非结构化的内容信息,也包括一定程度的结构化信息,这些结构化信息在网络信息检索工具评价数据质量、挖掘数据相关性等方面发挥着十分重要的作用。

因此,网络信息检索中对非内容信息的处理是其与传统文本信息检索系统最大的区别所在,而其中应用最广泛的是利用超链接结构分析方法的网络数据质量评价技术,因此在下次的介绍中将对这方面技术的主要发展情况进行讨论。

2.2搜索引擎的工作流程

索引擎的工作流程大致可以分为:

2.2.1 搜集信息

搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他网页中的超链接,就像日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。

2.2.2 整理信息

搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来,再快的计算机系统也没有用。

2.2.3 接受查询

用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值