联系我们 |
 |
合作经济与科技杂志社
地址:石家庄市建设南大街21号
邮编:050011
电话:0311-86049879 |
|
|
经济/产业 |
[提要] 现代网络信息化水平日益提高,网页信息量急剧增加,搜索引擎已经成为人们获取所需知识的必要工具之一。本文结合校园网搜索引擎的具体需求,介绍校园网搜索引擎的整体框架。其中,lucene作为开源的检索框架,具有很好的应用性。
关键词:搜索引擎;lucene;网络爬虫;站内搜索
中图分类号:TP393 文献标识码:A
收录日期:2012年5月29日
一、引言
21世纪是网络信息化的时代,网络信息已经成为人们工作与学习中不可或缺的东西。网络在世界范围内向用户提供信息服务及其所拥有的信息资源,但随着网络的蓬勃发展,信息数量的快速增长,当今网络上的这些海量信息形态各异,且分散在网络中的各个角落。因此,如何从网络上的海量信息中检索出用户所需要的信息,成为了我们关注的一个重要问题。目前,虽然有了像Google、百度这样的通用搜索引擎,但是它们并不能适合人们所有的情况和需要,也没有哪个最大最好的搜索引擎可以覆盖所有的搜索范围,因为不同的人群范围所需求的信息资源也是不尽相同的。人们习惯在互联网上查找信息,往往在同一个网站内拥有丰富的信息资源,如何在网站内部快速查找用户所要的信息,也成为了人们当前关注的一个焦点。
二、搜索引擎
搜索引擎是一个为用户提供信息检索功能的网络工具。搜索引擎是随着互联网络信息的快速增长,开始逐步发展起来的技术。在互联网发展的最初阶段,网站的数量相对较少,信息查找比较容易。但随着互联网技术爆炸性的发展,网络上面的信息越来越多,并且以各种各样的形态存在,这时用户便很难找到所需要的信息,一些为满足大众信息检索需求的专业搜索网站就应运而出了。如今,Google的巨大成功让整个世界都把眼光投入到搜索引擎这个领域中,并且Google在一定程度上起到了引导作用。Google公司在2007年决定向小型网站提供专门的搜索服务。这些都表明小型专用的搜索引擎将在人们获取互联网信息中发挥着想当重要的作用。
三、lucene
Lucene是Apache软件基金会Jakarta项目组的子项目,它是一个开放源码的全文检索工具。Lucene在起初是基于Java开发的,在网站建设中扮演的是一个全文索引工具的角色。与传统的直接从数据库中搜索记录相比较,使用Lucene可以大大增加搜索引擎的性能。Lucene的搜索机制是基于文件索引的,所以性能要比从数据库中检索更快,尤其当数据量大的时候区别更加明显。Lucene可以及时索引所有需要的内容,并更新和删除它们。
Lucene的系统结构具有良好的二次开发性能。首先它的索引格式与平台无关,其次它将各个组成部分封装成抽象类,具体的实现定义为抽象类的实现过程,并且具有强烈的面向对象的特征。(图1)
四、校园网的搜索引擎框架
现代网络信息化水平迅速提高,校园网作为一个信息核心领域,所涉及到的内容也是形态各异的。本文就如何搭建一个校园网内的搜索引擎,以方便在校师生快速准确地查找各自所需信息的整体流程,给出详细的介绍。搜索引擎首先根据网站的需求选择合适的网络爬虫,对网络上的信息进行爬取,爬取到信息之后,对其中的有用信息进行提取,并利用Lucene对所提取到的有用信息进行索引,最终输出与用户查询结果匹配度最大的信息。
本文研究的校园网搜索引擎有三个功能模块:信息采集模块、信息处理模块和信息检索模块。信息采集模块,顾名思义,就是对网络上的信息进行采集,这是整个搜索引擎系统一项最初始的准备工作,也是最基础的工作。该搜索系统针对的目标群体主要是在校师生,也就是说,要捕获的信息主要来源于校园网络。信息处理模块,主要负责对采集到的信息进行提取,提取到所需的有价值的信息之后并为其建立索引,为后续的信息检索模块构建好索引数据库。信息检索模块主要负责在已构建好的索引数据库中查找包含用户查询关键字在内的文本内容,并负责用户从搜索界面接收关键字以及查询结果信息的返回工作。校园网的搜索引擎系统组织结构图如图2所示。(图2)
(一)信息采集模块。信息采集模块是校园网搜索系统最基础的组成部分,它的作用是对指定网站的页面信息进行采集,并将采集到的信息保存到数据库中。这一部分主要依靠网络爬虫程序来实现。网络爬虫是一个自动获取网页内容的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成部分。它从一个或一组初始网页的URL开始,获取初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。本文利用网络爬虫从校园网上抓取网页URL、网页标题和网页文本内容,并保存到已构建好的本地页面数据库中。信息处理模块从页面数据库中读取页面信息,分析信息内容并为其建立索引。
一个好的网页爬虫应该具有很好的灵活性和健壮性,并且易于管理员操作管理。灵活性旨在爬虫能够尽可能多的适用于各种不同的场合。健壮性则要求爬虫在面对各种奇怪的规则或者链接时具有很好的处理策略,以保证系统能够正常运作。人性化管理界面是爬虫网络是否受欢迎的一个重要评判标准,越简单清晰越高效的管理系统会更加受到人们的欢迎。
(二)信息处理模块。Lucene开源检索框架是基于文件索引机制的,只能对文本文件进行索引。信息处理模块主要包含3个步骤:读取页面内容、页面内容解析和构建索引。结构图如3所示。(图3)
1、读取页面内容。首先,该模块从已构建好的页面数据库中提取网页标题和网页文本内容;然后将提取到的信息传递给下一步骤处理。
2、页面内容解析。读取到从页面数据库传送过来的文本内容之后,就要对其进行解析处理了。解析就是对文本内容进行解释和分析。分析在Lucene中是指将文本转换为最基本的索引项的一个过程。所谓的分析器就是对分析操作的封装类。对于不同的语言,分析器所要完成的功能是不一样的。比如,对英语来说,要将文档字母从大写转换成小写、过滤忽略词等。校园网搜索引擎面对的语言主要是中文,分析器需要实现的就是对完整的语句进行分词。分词,顾名思义,就是将一段文本拆分成多个词。在建立索引的时候,写入索引库中并能够被用户检索的是一个个的词条。所谓词条就是通过分析器进行分词和相关处理后的文本单元项,只有通过分词才可能让搜索系统理解用户的检索请求,进而为其搜索相关的内容。
对于一个工作性能良好的搜索引擎来说,分词是必不可少的一个核心模块。分词的质量将直接决定搜索引擎的搜索精度,分词的速度也将影响搜索的速度。所以,选择一个合适的分词器对整个系统的性能是至关重要的。JE分词,这是Lucene中自带的工具之一,可以很好地完成系统的分词工作。JE分词的下载地址为http://www.jesoft.cn/,这是一套由java写成的分析软件。
3、构建索引。事实上,常用的索引方式有3种,分别是倒排索引、后缀数组索引和签名文档索引。
Lucene采用的是倒排索引结构。倒排索引非常符合人们的思维习惯,同时它对关键字检索特别有效。倒排是一种面向单词项的索引机制。通常,由词项(关键字)和出现情况两部分组成。对于索引中的每个词项(关键字),都跟随一个列表(位置表),用来跟踪记录单词在所有文档中出现过的位置。
Lucene中涉及两个非常重要的概念,分别是Document和Field。Document,解释为文档,在Lucene中,它代表一种逻辑文件。Lucene本身无法对物理文件建立索引,而只能识别并处理Document类型的文件。Document作为一种数据源的集合,Lucene会从其中取出相关的数据源内容,并根据属性配置进行相应的处理。Field,我们可以理解为字段,在Lucene中,是用Field来表示一个一个的Document数据源的。在用户构建完Document、并为其添加如合适的Field后,便可以按照Lucene的索引格式将数据写入索引文件,构成索引文件库。
(三)用户检索模块。在建立好索引库之后,用户就可以根据索引进行检索了。在Lucene中,搜索引擎在接收到用户检索关键字后,首先会对关键字进行分析,然后在已建立好的索引库中进行搜索,搜索完毕后,将与关键字最相关的内容返回给用户。搜索的具体步骤如下:
第一步:初始化检索工具IndexSearcher,设置索引存放路径。
IndexSearcher searcher=new IndexSearcher(INDEX_STORE_PATH);
第二步:构建一个Query对象。
Term t=new Term(”a”,”b”);
Query q=new Query(t);
其总a是Document文档,b是用户要检索的关键字。
第三步:检索并返回查询结果。
执行完这三个步骤,用户将会得到所输入关键字的相关结果。
五、结束语
本文对校园网的搜索引擎框架做了一个整体的介绍。现代网络信息以多样化的形式快速增长,互联网用户想要得到自己所需要的信息,搜索引擎起着至关重要的作用。当代社会分工不同,人们所关注的信息产业范围也不尽相同,所需要的信息也越发的呈现出模块化,分属于不同的站。站内搜索将越来越受到人们的关注,具有很好的研究价值和前景。
(作者单位:西安邮电大学)
主要参考文献:
[1]车东.Lucene:基于Java的全文检索引擎简介[OL].[2008-11-24].http://www.chedong.com/tech/lucene.html.
[2]薛宇星.基于Heritrix和Lucene的Web站内搜索系统[D].西安:西安电子科技大学,2008.
[3]Lucene中国[EB/OL].http://www.lucene.com.cn,2010.5.27.
[4]冯斌.基于Lucene小型搜索引擎的研究与发现[D].武汉:武汉理工大学,2008.
[5]胡俊,李星.校园网信息资源搜索引擎的研究与实现[J].计算机工程与设计,2006.7.
[6]张贤,周娅.基于Lucene网页排序算法的改进.广西:计算机应用,2009.
[7]赵珂,逯鹏.基于Lucene的搜索引擎设计与实现[J].计算机工程,2011.37.16. |
|
|
|