基于Nutch的垂直搜索技术研究

时间:2022-10-08 04:42:15

基于Nutch的垂直搜索技术研究

摘要:该文主要介绍了垂直搜索引擎的概念及优越性,对垂直搜索引擎理论和技术进行了深入的分析,重点介绍了网络蜘蛛的运行规则设计,并使用Nutch工具创建垂直搜索系统。

关键词:Nutch;垂直搜索;搜索引擎

中图分类号:TP18文献标识码:A文章编号:1009-3044(2011)24-5831-02

The Research about Vertical Search Based on Nutch

LIU Jin-liang, SU Lin, SHI Yun

(Cangzhou Electric Power Company of Hebei, Cangzhou 061001, China)

Abstract: This paper introduces vertical search engines and its superiority. And this article focuses on the network design of a spider's operating rules. At last, we use the Nutch tools to create vertical search system.

Key words: Nutch; vertical search engine; information retrieval

网络搜索引擎又称网络检索引擎,广义上是指一种Internet的信息查询系统,包括信息抓取、信息管理和信息检索;狭义上是指一种为搜集Internet上的网页而设计的检索软件。搜索引擎自面世后,迅速成为人们网上搜索的有效工具。随着网络信息资源呈几何级数增长,搜索引擎对网络信息的覆盖率在整体上呈下降趋势,尤其令以覆盖所有学科、所有类型信息为宗旨的综合性搜索引擎越来越难以应对,就是功能最为强大的搜索引擎在网络信息搜索与加工软件的升级开发上亦无法跟上网络信息的增长速度。

用户在使用综合性互联网搜索引擎时,搜索引擎显示不准确、信息重复率高、信息时效性不强,而且搜索不能做到智能化。作为综合性搜索引擎的补充,垂直搜索引擎能做到自动符合用户个性化需求进行自助搜索。而本文所研究的就是基于开源码工具Nutch的垂直搜索系统。

1 系统研究与分析

1.1 垂直搜索引擎介绍

垂直搜索也称行业搜索,是针对性的为某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息检索服务。垂直搜索引擎的搜索器只搜索特定的主题信息,按预先已定义好的专题有选择地收集相关的网页。这样大大降低了收集信息的难度,提高了信息的质量。由于垂直搜索引擎只涉及一个或几个领域,词汇一词多意可能性降低,而且可以利用专业词表进行规范和控制,大大提高查全率和查准率。

1.2 开源工具Nutch介绍

Nutch是一个开源Java 实现的搜索引擎,它几乎提供了我们运行自己的搜索引擎所需的全部工具。Nutch非常灵活,它可以被很好地客户订制并集成到应用程序中,使用插件机制,Nutch可以作为一个搜索不同信息载体的搜索平台。

在Nutch中,总体上可以分为两个部分:抓取部分和检索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引;检索程序则对反向索引检索回答用户的请求。抓取程序和检索程序的接口是索引。

1.3 网页抓取系统

Nutch搜索引擎的网页抓取模块包括“蜘蛛控制”和“网络蜘蛛”两部分,“蜘蛛”这个称呼形象的描述出了信息收集模块在网络数据形成的“Web”上进行信息获取的功能。网络蜘蛛从种子网页出发,通过反复下载网页并从文档中寻找未曾见过的URL,达到访问其他网页得以遍历Web的目的。

搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎就不用重新翻查它所有保存的信息,从而迅速找到所要的资料。将纷繁复杂的网页数据整理成可以被检索系统高效、可靠、方便使用的格式是这一模块的工作。

1.4 信息检索系统

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

2 系统的设计

垂直搜索系统中搜索引擎的体系结构主要包括四个模块:网页采集Crawler、信息索引Indexer、信息检索Searcher、用户接口UserInterface。

首先网页采集器在互联网上抓取原始未经过处理的数据,存放到数据库中,然后由信息索引器定取规则建立索引,最后重新放入数据库中。用户通过用户接口制定查询的条件,由信息检索器直接从索引完毕的数据库里取得数据信息。而用户的一系列操作将通过用户接口提交到用户行为日志中。技术人员会通过日志分析器分析用户的各种行为,来制定各种优化搜索引擎的方案。

2.1 网页采集

1)垂直搜索网页采集器的特点:

在基本原理和主要功能组件方面,垂直搜索引擎与通用搜索引擎是基本相同的。两者主要的区别在于spider程序爬行的范围和网页信息处理的深度两个方面。垂直搜索引擎与通用搜索引擎的网页爬行策略的一个本质的区别是:普通搜索引擎采取逐页爬行的原则,对所有的网页全部进行分析,然后对网页进行索引放入数据库。垂直搜索引擎则根据系统对网页与主题相关性的计算,采取一定的策略预测相关网页的位置,动态的调整网页爬行方式;使系统尽可能的在与主题相关的网页集中的地方爬行,对网页进行分析。这一点是垂直搜索引擎优势所在,它节约了系统运行的硬件和网络资源开销。相关网页的预测策略实际上就是算法所实现的内容,所以选样一个高效率的搜索算法将会决定整个系统的运行效率。

2)网页采集的步骤:

在Nutch系统中采集信息的策略大致可分为三大步骤:

首先,从互联网上抓取网页。利用能够从互联网上自动收集网页的spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这个过程,并把爬过的所有网页收集回来。

然后,建立索引数据库。由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中的关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

最后,在索引数据库中搜索排序。当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。

3)网页采集的方法:

① 采集地址列表:使用Nutch的爬行器进行网页采集,需要一个爬行url列表,还需要在crawl-urlfilter.txt文件中配置爬行规则。把搜索host定义成可设置,读取规则用正则匹配方式读入代码中。由于我们需要抓取多个网址,所以可以进行如下设置。

# accept hosts in MY.DOMAIN.NAM

+^([a-z0-9]*\.)*cn/

+^([a-z0-9]*\.)*com/

上段代码的含义是,抓取以.cn及.com域名结尾的任何网站。基于垂直搜索系统的特点我们可以在url列表中增加限定条件,使spider程序只爬行本行业相关的网页,也由于Nutch系统爬行程序的这种设计使得它对于建立垂直搜索系统具有先天的优势。

② 采集信息的类型:采集信息类型取决于最后搜索引擎提供服务需要哪些信息,只要把最后提供服务的信息搜集回来,搜集子系统的目的就达到了。在搜集过程中,除了HTML文本和普通文本,还可以搜集pdf,doc等资源。

抓取时可以过滤其他格式的文件,如扩展名后缀以gif、jpg、ico、zip、ppt、xls、gz、tgz、mov、exe、rar、等结尾的格式链接,这样可以节省大量的数据存储空间。

2.2 信息索引

信息索引模块的功能是对信息检索器所搜索的信息进行分析处理,从中抽取出索引项,用于表示文档以及生成文档库的索引表。索引项有元数据索引项和内容索引项两种:元数据索引项与文档的语意内容无关;内容索引项是用来反映文档内容的。建立信息索引包含三个步骤:1)词的切分和词法分析;2)进行词性标注及自然语言处理;3)建立检索项索引。

2.3 信息搜索

信息搜索模块的功能是根据用户的查询在索引库中快速搜索出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。搜索器从索引中找出与用户查询请求相关的文档,采用与分析索引文档相识的方法来处理用户查询请求。垂直搜索引擎的相关度判断与用户的需求吻合程度要求比较高。

对于一个经过索引后的网页集合的每个元素来说,至少包含几个方面的信息:原始网页文档、URL和标题、编号、所含的重要关键词的集合(以及它们在文档中出现的位置信息)、其他一些指标(如重要程度、分类代码等)。系统关键词总体的集合和文档的编号一起构成了一个倒排文件结构,使得一旦得到一个关键词输入,系统能迅速给出相关文档编号和集合输出。

2.4 用户接口

垂直搜索系统用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。主要的目的是方便用户使用垂直搜索系统,高效率、多方式地从搜索引擎中得到有效、及时的信息。用户接口的设计和实现使用人机交互(Computer Human Interaction)的理论和方法,要充分适应人类的思维习惯。

用户输入接口可以分为简单接口和复杂接口两种。简单接口面向普通非专业的查询用户,一般只提供内容浏览和简单的输入框;复杂接口面向专业的查询用户,可以让用户指定查询条件和查询限制,如逻辑运算(与、或、非;+、-)、相近关系(相邻、NEAR)、域名范围(如.edu、.com)、出现位置(如标题,内容)、信息时间、长度等等。3 总结与展望

垂直搜索的难点不是技术,而是用户参与门户网站行为的创新和垂直门户网站对产业上下游信息资源的整合,所以在学习垂直搜索引擎技术的同时更要与实际相结合,并伴随着搜索引擎技术的发展,更加深入的去研究和讨论。

互联网的信息量呈爆炸趋势增长,增强了人们对搜索技术的依赖性。但随着网络技术的飞速发展,获取更加准确、更加详细、更加深层的专业信息,成为对搜索引擎提出的新要求,这也为垂直搜索的发展提供了良好的契机。

目前,垂直搜索引擎技术大都处于研究和试验阶段,很多关键功能不太成熟,可借鉴的资料有限。但凭借Nutch的开源和良好框架优势,对其进行进一步深入的研究必将对垂直搜索引擎的发展产生积极的作用。

参考文献:

[1] 胡华梁,何进,钟元生.图书垂直搜索引擎的设计[J].浙江理工大学经济管理学院,2007(06).

[2] 刘畅.综合搜索引擎与垂直搜索引擎的比较研究[J].北京大学信息管理系,2006(01).

[3] /.

[5] .

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于.net的三层构架在网络实训学习平台的应用... 下一篇:短进程优先算法探讨