基于Lucene.net的档案垂直搜索引擎的实现

时间:2022-09-21 02:33:32

基于Lucene.net的档案垂直搜索引擎的实现

摘要:随着计算机技术的发展,档案信息的检索技术有待提高,垂直搜索引擎作为面向特定主题的搜索引擎,非常适合用来开发专业领域的搜索引擎。介绍了垂直搜索引擎的特点和系统结构,引入了的开源项目,提出了实现基于的档案垂直搜索引擎的设计方案,给出了搜索引擎系统中采集模块、索引模块和检索模块的实现方法。

关键词:档案检索 垂直搜索引擎 技术

计算机技术和网络技术的快速发展推动了档案信息化的发展。但是,我国档案信息化建设还处于初步发展阶段,存在许多问题,一些档案馆只提供档案目录的简单检索而不能提供智能化或专门用于档案领域的搜索服务,各类档案资源成为信息孤岛。如何充分利用现有档案资源,提高档案利用率成为我们急需解决的问题。搜索引擎作为互联网发展的核心技术,将互联网上各种不同格式的网络资源搜集并整理,挖掘其中大量隐含资源,提供海量数据服务于用户,在各行各业发挥着重要的作用①。垂直搜索引擎是在普通搜索引擎的基础上发展而来的,是指专门针对某一特定领域的搜索引擎。档案垂直搜索引擎就是将搜索引擎技术引入档案领域,构建面向档案领域的搜索引擎,该搜索引擎可以大量收集互联网上档案相关资源,进行优化整合,提供给用户具有价值的档案信息,最大限度的满足档案用户的需求。

一、垂直搜索引擎

搜索引擎一般分为通用搜索引擎和垂直搜索引擎,百度、谷歌、搜狗等均属于通用搜索引擎,通用搜索引擎是针对互联网上所有网站的信息进行搜集和检索,其范围覆盖了各个领域和各个行业。垂直搜索引擎是一种特定面向主题的专业搜索引擎,是针对某一特定领域、某一特定人群或某一特定需求,面向某一特定的用户群体,提供更有价值、更准确的信息服务,是通用搜索引擎的细分和延伸②。与通用搜索引擎相比,垂直搜索引擎具有如下特点:

第一,垂直搜索引擎面向特定的领域,其信息量相对较小,但对其特定领域资源的覆盖率较高,信息质量较高,保证了搜索引擎对本领域信息搜集的全面性和实时性。

第二,垂直搜索引擎只涉及特定的领域,用语中出现一词多义的可能性比通用搜索引擎小很多,通过利用特定领域的专业词库,可以保证信息检索的准确性。

第三,网络爬虫在采集特定领域的信息后,需要对该信息进行结构化提取,并进行深度处理,这样就保证了网页信息抽取的准确性,提高用户的查询效率。

二、技术介绍

是一个由c#开发的开源全文索引库,是从apache的lucene项目移植到.Net平台上的③。的开源代码分为核心包和用户接口包,核心包用来实现搜索功能,用户接口包来用实现高亮显示等辅助功能。的核心包是由7个子包组成:

(1) 索引管理包(.Index):实现索引的建立、删除和文档中词的排序;(2) 检索管理包(.Search):利用折半查找进行检索,返回结果;(3) 数据存储管理包(.Store):实现数据存储等IO操作;(4) 公用算法包(.Util):封装了一些常用的函数;(5) 文档结构包(.Documents):描述索引存储中文档结构的管理和操作;(6) 查询分析器包(.QueryParsers):解析查询串,构成查询对象,通过检索器对其调用,返回查询结果;(7) 语言分析器包(.Analysis):用于切分放入索引的文档和查询词,可以通过对Analysis进行扩展来实现对自然语言的处理。

三、基于的档案垂直搜索引擎的设计与实现

1.系统的总体设计

基于的档案垂直搜索引擎的设计与实现是在windows平台下进行的,开发工具是Visual Studio 2010和SQL Server 2008数据库。垂直搜索引擎主要是由采集模块、索引模块和检索模块组成。系统的总体设计方案如图1,首先,利用面向档案的主题爬虫通过互联网抓取档案信息。然后利用分词工具对抓取的档案信息进行处理,并建立档案信息对应的索引。最后,由用户输入的关键词,根据已建立的索引进行检索,并返回查询结果给用户。

2.采集模块

(1)普通的网络爬虫是从一些种子站点出发,下载种子URL的网页,分析网页中的超链接,并遍历这些超链接,在遍历链接下载网页的同时,提取网页中有用的信息存储在本地。这种爬虫是不适合档案领域的,因为档案领域的爬虫需要搜索的网络范围有限,它不需要去搜索整个互联网,只需要搜索一些指定的档案网站就可以。所以,数据采集模块的核心就是建立一个档案领域的主题爬虫。该主题爬虫的实现方法是:(1)预先定义好要从哪些档案类网站进行信息采集,将要采集档案网站的URL地址作为初始地址放入到一个专门队列URL Queue中,该队列是用来记录网络爬虫需要遍历访问的所有URL地址,如上图(2)。

(2)从爬虫队列URLQueue中,提取出队列的第一个URL地址,并下载该URL地址对应用的网页。如上图中的(2)。

(3)网络爬虫下载的网页是以文本格式返回的,文本的内容是含有html标签的网页源文件。网页解析器是将网页源文件作为字符串,通过定义不同的正则表达式与该字符串进行匹配,并从网页中提取需要的信息,去掉无关的信息和html标签。上图中的(3)就是利用网页解析器分析下载的网页,提取网页中含有的所有超链接存入一个用来存储链接地址的列表List中,同时,从网页中解析出档案文件的题名、关键词、内容、时间、责任者等信息。

(4)将从网页中解析出的档案题名、关键词、内容、时间、责任者等信息添加到数据采集库中。在添加数据前,需要对每条档案数据进行,防止相同的数据多次插入数据库而影响系统的运行效率。如上图中的(4)。

(5)对于从网页中提取出来的所有超链接,利用Page Rank算法计算每个超链接与档案主题的相关度,链接的相关度越高,说明该链接指向的网页越具有较高的价值。通过对每个超链接与主题相关度的计算,排除不相关的链接,将与主题相关的链接加入到网络爬虫要访问的队列URL Queue中。

循环重复(1)至(5)的步骤,直到爬虫队列URLQueue为空的时候,说明网络爬虫已经遍历了所有与档案主题相关的网页,同时,相关档案信息也被采集到了数据库中。

3.索引模块

档案信息被采集到数据库后,就可以对每条信息建立索引了。建立索引的核心是分词,分词的质量会直接影响搜索引擎的搜索速度和搜索精度,由于英文单词是以空格来分开的,所以英文分词相对比较容易,而中文分词就复杂多了,这是因为汉字的排列组合不同,可能使得相同的汉字具有不同的含义,比如“上海”和“海上”虽然由相同的汉字组成,但是其排列方式不同就使得两个词汇的含义完全不同。由于提供的中文分词(CJKTokenizer和ChineseTokenizer)功能较弱,所以应用基于词库的分词方法MMAnalyzer,其分词原理是建立专业词库,并依据词库中的词汇进行分词处理。这样做虽然延长了分词处理时间,却使得分词效果更加理想。建立索引的过程如下:

(1)提取采集模块中采集的数据,返回结构化的数据。如上图中的(6)。

(2)要对一条数据进行索引,需要将该数据转化成中的Document格式。如上图中的(7)。

(3)利用MMAnalyzer分词工具对Document数据进行分词,过滤停用词,建立文档与关键词的倒排序索引。倒排序索引是相对于正向索引而言的,是指建立关键词到文档的映射关系,通过单词来索引文档。最后,建立文档的索引到索引库。如上图中的(8)。

4.检索模块

检索模块是根据用户输入的关键词,进行分词处理、过滤处理,并将检索条件封装到查询分析器QueryParse中,通过QueryParse完成检索,返回查询结果,查询结果是与关键词相关的文档集合,这时文档的数目可能很大,会按照这些文档与关键词的相关度由大到小进行排序。,与关键词相关度高的文档排在搜索结果的前面,所以,在每次检索的时候,都需要按照关键词对检索到的所有文档进行评分,根据分值来判断文档与关键词的相关程度。是采用向量空间检索模型,通过Tf-idf算法来计算关键词与文档的相关度来给每个文档进行评分。检索模块的具体实现如下:

(1)用户输入关键词,如上图中的(9)

(2)分词工具对关键词进行分词切分,停用词过滤等处理,如上图中的(10)

(3)将分词后的词汇组成查询条件,封装到查询分析器中,如上图中的(11)

(4)查询分析器通过与索引库中的索引进行匹配,检索得到与关键词匹配的所有文档,如上图中的(12)

(5)通过索引模块中建立的文档倒排序索引,利用Tf-idf算法对所有匹配文档进行文档评分,如上图中的(13)

(6)按照匹配结果中对每个文档的评分,对匹配结果进行相关度排序,与关键词相关度高的文档排在匹配结果的前面,如上图中的(14)

(7)将经过排序的文档以Hits对象的方式返回用户,完成检索任务,如上图中的(15)

四、结束语

目前,我国档案领域的搜索引擎技术还相对滞后,研究和开发档案垂直搜索引擎意义重大。在全文索引库的基础上,开发档案领域的垂直搜索引擎,有利于快速准确的定位到具有价值的档案资源,为档案用户提供更有效更专业的信息服务。

项目基金:高校青年自然科学基金(52WU1002)基于.Net的电子档案管理系统开发与利用

注释:

①王振华.档案领域垂直搜索技术的研究与实现[D].上海:东华大学,2010

②刘朋.基于lucene的垂直搜索引擎关键技术的研究应用[D].武汉:武汉理工大学,2009

③李占波等.基于DotLucene的垂直搜索引擎的研究[J].微计算机信息,2007,23

作者单位:天津师范大学档案馆

上一篇:美国公共档案馆动力机制探析 下一篇:抗旱性强桑树新品种“川桑7431”等