1引言
在这个信息爆炸的时代,搜索引擎已经成为一个新兴而重要的计算机应用领域,更是成为全球资本关注的一个亮点.搜索引擎克服了数据库中存在的不足,为数据的检索提供了更为方便快捷的方式.
搜索引擎是以一定的策略在指定的搜索空间上收集和查找信息,对信息进行处理和组织后为用户提供信息查询服务。按照工作原理的不同,可以把它分为两个基本类别:全文搜索引擎和分类目录。全文搜索引擎的数据库是依靠一个叫"网络机器人(Spider)"或者"网络蜘蛛(crawlers)"的软件,通过网络上的各种链接自动获取大量的网页信息,并按一定的规则分析整理形成的.分类目录则是通过人工的方式收集整理网站资料形成数据库的,比如雅虎中国以及国内的搜狐、新浪、网易分类目录。
一个好的搜索引擎,不仅数据库容量要大,更新频率、检索速度要快,支持对多语言的搜索,而且随着数据库容量的不断膨胀,还要能从庞大的资料库中精确地找到正确的资料.垂直搜索引擎所提供的数据库资源对用户来说更有针对性和适用性,能够更好的满足用户对信息需求的准确性.由于提高了信息的质量,因此搜索的效果会更好.
本文在基于垂直搜索引擎的工作原理下,选择以Heritrix为引擎的网络爬虫,通过扩展自己的组件来完成抓取任务,利用Lucene对抓取的信息以一定的规则进行过滤,排序,分页并建立索引.最终构建一个WEB平台通过Lucene的分析器实现与用户的智能交互过程,完成搜索功能。
2面向垂直的搜索引擎的设计
2.1需求分析
本搜索引擎是一个基于网络爬虫程序为数据来源支持,为用户提供信息查询服务的平台.
网络爬虫通过自己的策略实现从互联网网站抓取信息,然后经过组织整理,构建信息数据库,同时为各种内容建立索引,以供用户检索。用户可以通过信息检察界面,搜索他们所需要的信息,并能在搜索结果中打开一个有关详细信息的页面浏览.
2.2总体设计
此引擎分为搜索和查询两部分.搜索部分具有自动信息搜集功能,引擎主动派出"蜘蛛"程序,对一定IP地址范围的互朕网站进行信息检索,一旦发现有自己需要的产品信息,进而分析,建立索引,并将数据加入到自己的数据库中;查询部分具有简单的查询功能,用户在进入查询页面中通过输入关键字来查询相关信息.
2.3详细设计
网络爬虫部分从指定的种子URL地址开始,每次动态分析出包含待查信息且不重复的待抓取URL,从待抓URL中提取出完整的信息,包括其原始链接URL等,部分数据还需要深加工处理,如详细页的关键信息描述文本的提取.支持有条件地保存抓取来的信息,含控制台程序,可控制、监视系统运行,运行结束反馈总结报告信息.
索引部分,为了使检索功能的性能更高,速度更快的系统要求,采用建立Lucene索引机制的方式。
Lucene作为一个优秀的全文检索引擎,其系统结构具有强烈的面向对象特征.首先是定义了一个与平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终达成了一个低耦合高效率,容易二次开发的检索引擎系统。
2.4系统实现
本文在详细设计的基础上完成系统各功能的开发,建立各功能界面,实现系统的各个功能.通过对框架的整合和功能模块的单元测试表现,系统的基本功能已经完成,达到预期想要的结果.运行网络爬虫后会在硬盘目录上生成镜像目录存储结构,以及通过索引操作生成的索引文件,如图2-1和图2-2.
3结论
本系统采用B/S模式架构,用RIA方式减少了服务器上不必要的积压,从而保证系统的健康稳定运行。在系统的维护上,由于系统的工作性质是具有强大的后台数据源支持的,所以维护人员除了基本的日常维护外,还需要进行数据库的数据备份和数据库的灾后恢复工作.
另外,由于网络爬虫需要经常性的对某个网站进行信息抓取,这样网站容易改版,维护成本高;在服务器端运行,容易封IP,这样维护起来相对较难,需要维护人员经常对网站信息进行跟踪处理,可维护性有待加强.
参考文献:
[1]曾伟辉。深层网络爬虫研究综述[J].计算机系统应用,2008.5:122-126.
[2]范轩苗,郑宁,范渊。一种基于Ajax的爬虫模型的设计与实现[J].计算机应用与软件,2010.1:102-105.
[3]王晓伟。垂直搜索引擎若干关键技术的研究[D].浙江大学,2007.6.
[4]刘琦。垂直搜索引擎的设计开发[D].中山大学,2010.6[5]垂直搜索引擎[OL].