图书馆电子资源管理系统的开发
2016-07-09吕霞
吕霞
摘 要: 电子资源管理是现今图书馆面对的极具挑战性工作,截止至2010年课题中的图书馆的电子资源数量已经达到了数十TB,为进一步推进人力资源和图书馆集成化管理系统,及时让读者使用这些电子资源,提出了一套全新的电子资源管理系统,其目的是总结该馆以往的电子资源的管理经验,采取更先进的存储,Lucene索引技术及ASP.NET MVC 2.0框架,融合Web 2.0与Lib 2.0理念所创建的电子资源管理系统。采取了以上较先进的技术,解决了该馆大数据量电子资源的管理及检索问题,相比于该馆之前的管理系统,系统内存开销为原系统的[120,]处理器开销为原系统的[110,]检索速度提高了近50倍。
关键词: 电子文献; Lucene索引; ASP.NET MVC 2.0; Web 2.0; Lib 2.0
中图分类号: TN911?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)07?0103?04
Abstract: The electronic resource management is the very challenging work to current library. The library′s electronic resource quanlity before 2010 have reached dozens of TB. In order to further promote the integrated management system of human resource and library, and timely use the electronic resources, a set new electronic resource management system is put forward to describe the past electronic resource management experience of the the library. The more advanced storage, Lucene index technology and ASP.NET MVC 2.0 framework are adopted to establish the electronic resource management system based on Web 2.0 and Lib 2.0 idea. The above more advanced technologies are used to solve the large data volume electronic resource management and retrieval problem of the library. Compared to the previous management system, the memory cost of system is [120] of that of the original system, the processor cosst is [110] of that of the original system, and the retrieval speed is increased by 50 times.
Keywords: electronic document; Lucene index; ASP.NET MVC 2.0; Web 2.0; Lib 2.0
0 引 言
电子资源管理是现今图书馆面对的极具挑战性工作,课题中涉及的图书馆电子资源管理系统亦不例外[1]。截止至2010年该馆的电子资源数量已经达到了几十个TB,如何运用现有的人力资源和图书馆集成化管理系统[2],及时让读者使用这些电子资源,已成为该图书馆的重大挑战。本馆在2009年决定把中文期刊、英文期刊、电子图书等电子资源的编目工作进行调整,要求采用相关的计算机技术创建一套全新的电子资源管理系统。本课题的目的是总结该馆以往的电子资源的管理经验,采取更先进的存储,索引技术及B/S架构,融合Web 2.0与Lib 2.0理念所创建的电子资源管理系统[3]。
该系统为用户提供了便捷高效的电子资源检索引擎,使用户可以快速地找到所需资源;与此同时还提供了个性化图书馆的服务,允许用户上传个人的电子资源,加强了管理系统的互动共享功能。经本课题的研究,从根本上解决了该馆大数据量电子资源的存储及使用问题[4]。
1 基于Lucene的检索系统及实验验证
1.1 检索系统
Lucene是以Java为依据的一个高效的全文检索库。完成下述步骤建立全文检索索引[5]:
首先,为了方便说明建立索引的过程,此处将需要索引一些原文档(Document)。
其次,分词组件(Tokenizer)在收到原文档的传输后会做如下事情(此过程称为 Tokenize) [6]:将文档拆分成为各个独立的单词;将标点符号除去;将停词(Stop word) 除去。
最后,索引组件(Indexer)在收到得到的词(Term)之后负责以下几项:创建一个以得到的词(Term)为依据的字典;按照字母顺序将字典排序;将同样的词(Term)进行合并并形成文档倒排(PostingList)链表。
1.2 SQL Server检索与Lucene检索性能比较
SQL Server数据库产品作为底端的数据存储,利用单纯的数据库对这些资源进行索引,如果数据量达到上亿级,系统运行启开所占用的内存大约为几十GB[7]。除此之外,SQL Server运用缓冲池内存服务于SQL Server进程中大部分不大于8 KB的其他内存请求,以便过程缓存和数据存储。不能从缓存池中得到其他的分配由剩下的未保留内存完成。曾经使用单纯的数据库检索技术及Lucene索引技术,并对两种检索技术的效率、消耗系统资源、检索速度进行了详细的分析对比[8]。以上实验中数据总条目有三百多万条,以硬盘存储空间大约1 TB的资源进行测试,分析比对之后的结果如图1~图3所示。
对比图1~图3得出,Lucene检索在各方面都占有一定的优势,所以使用Lucene检索建设大数据量的电子资源管理平台为最优选项。
2 系统的设计
2.1 功能设计
图书馆电子资源管理系统功能设计如图4所示。当前,图书馆内的中文期刊,英文期刊,报纸,学位论文,电子图书,网页信息,多媒体等信息资源数量众多,占用系统近20 TB的硬盘储存空间,因此设计和实现的系统需要对海量的数据进行科学存储的同时还要保证检索的速度,还不能占用过大的存储空间或资源。
2.2 系统框架原理
系统依据ASP.NET MVC 2.0设计模式,依次包括Model,View,Control三层结构。系统最重要的部分为Model层,该层中包含了以上两章中重点提到的Lucene索引技术;View层中个性化的展示了中文期刊,英文期刊,报纸,学位论文,电子图书,网页信息,多媒体等电子资源,Web 2.0技术被较多的运用于View层中;系统的请求分配及权限管理方面问题的解决是Control层的主要任务。
(1) Model 层设计
期刊的数据模型:期刊可以被划分为非常多的年卷期信息,T_EN_Literary类表示了期刊中的文章信息,由T_EN_Journal到T_EN_Issues是一对多的对应法则关系,而T_EN_Journal类代表特指的某种期刊。系统在进行初始化时便建立了数据库的索引,Search接口能够完成直接从之前所建立的该数据库的索引中查询数据而不会访问数据库,之后再将结果反馈给Control层。这种设计节省了CPU及内存,此外,保证了快速的检索速度。每一种资源在电子资源管理系统中都被界说为一个类,update的接口也是通过这些类达成的,该接口设置的目的是同步索引以及更新数据库。delete的接口负责对数据的删除工作。
(2) View层设计
View层中个性化的展示了中文期刊,英文期刊,报纸,学位论文,电子图书,网页信息,多媒体等电子资源,View中用到的数据都是由Control层提供,View层还负责各种表单的提交,这些表单最终被Control层解析,之后经过Control层调取数据对象再返回给View层,这样就形成了动态页面信息的交互。
(3) Control层设计
Control层是ASP.NET MVC 2.0框架结构的中央环节,工作职能是完成各项工作的调度。Model层将具体数据反馈给Control层,Control层在对数据完成加工后,通过相应形式反馈给View层,即为用户浏览器页面中显示的内容。
2.3 用户权限管理设计
Model层数据模型使每个类中都有Owner,Edit,Visit功能,通过上述功能完成对数据级权限的管理。数据对象拥有者的ID储存于Owner中,该资源最高级的权限由这些用户持有,这些用户能够完成数据的浏览、修改、增加、删除等操作。对数据对象有编辑权用户的ID储存于Edit中,该资源的编辑权限由这些用户掌握,这个功能可以使资源权限更加方便的管理。对数据对象拥有访问权用户的ID储存于Visit中,这些用户拥有浏览该资源的权限。
3 系统整体实现
3.1 核心功能实现
图书馆电子资源管理系统主页截图见图5,图书馆电子资源管理系统包含7大功能:
(1) 图书馆现存有报纸,档案、中、英文期刊,学位论文,毕业论文,电子图书网页信息,多媒体等电子资源。
(2) 运用中文期刊,英文期刊,电子图书模块提供给专业人员的A?Z的导航功能,用专业化树状的形式展示期刊的年卷期,用目录树展示功能实现电子图书的中图分类法,除此之外,还需提供上述资源的正则表达式等高级检索功能以及模糊检索,从而方便用户对资源的定位。
(3) 模块功能的资源编辑可授权用户进行编辑处理。
(4) 增加资源评论和打分的属性,用户可以评价、分享并推荐优秀资源,方便其他用户阅读,帮助系统高效的运行,更有利于资源的分享。
(5) 在资源仓库模块中,高级用户可以对目录树进行编辑,目录树创建后自动生成RSS订阅链接,高级用户可以对目录树进行创建并对资源类型进行定义,使信息资源的推送更加方便。
(6) 站内资源的收藏管理功能可以通过收藏模块实现,在浏览站内资源时,相对应位置有收藏该资源的功能按钮,用户点击后可直接收藏该资源。
(7) 数据级权限管理以及功能级权限管理通过权限管理模块实现。
3.2 结构实现
(1) 索引功能
Lucene索引信息存储的选择方式有两种:文件系统(FS)、内存(RAM)。大型检索一般用文件系统存储,较小的检索系统主要运用内存存储。由于目前的大部分信息平台中的信息量都达到百万级以上,因此索引的存储采取的是文件系统(FS)。
(2) 检索功能
系统主要由QueryParser,IndexSearcher,Hits三个类组成了Lucene的检索接口。QueryParser的主要任务是解析用户提交需查询的关键字,即为查询解析器创建一个新的解析器时需要设定使用何种语言分析器以及要解析的域,保证查询结果的正确性。例如,URL和网页标题。在用户面前所呈现的便是通过处理的信息。在系统中输入检索词“cell”,检索结果如图6所示。
(3) View层的实现
View层中大量使用了JQuery框架,使数量众多的个性化功能得以实现,此处以目录树的编辑功能为例进行说明。
用户打开目录编辑页面之后便可以同编辑文件夹目录结构一样,对文件夹目录树进行重命名,添加、删除、展开等操作,所有的操作都是利用Ajax技术实现的,当用户在要修改的目录树中点击右键时,会弹出编辑菜单栏。通过Ajax技术将数据发往后台进行验证,验证通过后,目录树的名字会改变,若验证失败,会提示用户相关错误。
Control层实现了系统的整体调度,在前两节中已经对该层的设计做了详细的描述,下面重点介绍电子资源管理系统中对IP验证功能的实现。ASP.NET MVC 2.0框架中重要的过滤器能在IP的验证功能发挥重要的作用。首先建立一个文件请求过滤器CheckIPAttribute类,该类继承自ActionFilterAttribute类,功能就是当用户请求被解析到Control层时,在Control层执行之前,对相关的请求合法性进行验证,为请求进行解析。
3.3 一站式检索功能
一站式检索功能将目前图书馆中的中文期刊,英文期刊,报纸,学位论文,电子图书,网页信息,多媒体等各种异构的电子资源进行统一的检索,同时将检索的结果返回给用户,这一部分也是该系统的亮点之一。为了达到较快的统一检索及相关度排序,为每种资源返回的数量设置阈值,这样返回结果的速度很快,并且降低了系统资源的消耗,一站式检索功能的截图,如图7所示。当用户检索“cell”时,系统将已经勾选的资源类型都检索出来。
3.4 资源评价功能
当用户查阅资源后,可以对资源进行评价,这样不但是对其他用户阅读时的一种引导,在科研工作中也降低了研究时间。
3.5 社区分享功能
目前的社交网络已经十分发达,图书馆电子资源管理系统也做了社交网络资源共享的功能,用户可以将观看的文章分享到人人网,新浪微博等社交网络中。点击侧边栏“分享到”按钮后分享菜单会自动弹出,如图8所示。
4 结 论
采用Lucene数据索引技术结合MySQL等开源数据库可以开发出一套更好的数据库产品,其中MySQL仅用来当作数据的备份及数据逻辑的保存,数据复杂的检索可以由Lucene完成。这样可以加快数据库的检索速度及数据库的运行速度,但是节省了大量的内存及CPU资源,同时由于MySQL与Lucene都是免费的,这样既降低了系统的成本,又加快了系统的效率。
参考文献
[1] 郑依华.搜索引擎也开源[J].计算机世界报,2006 (47):67?70.
[2] 涂新辉,何婷婷,罗景.一种全文检索系统的设计与实现[J].计算机工程,2005(17):27?30.
[3] 彭波.大规模搜索引擎检索系统框架与实现要点[J].计算机工程与科学,2006(3):12?15.
[4] 钟涛,陈新明,万钧,等.中文文本Web搜索引擎的设计与实现[J].计算机工程与应用,2001(17):41?45.
[5]威者林碧英,赵锐,陈良臣.基于Lucene的全文检索引擎研究与应用[J].计算机技术与发展,2007,17(5):186?190.
[6] LESK M E. Word?word associations in document retrieval systems [J]. American documentation, 1969, 20(1): 27?38.
[7] FREEMAN E, FREEMAN E, SIERRA K, et al. Head first design patterns [M]. USA: O′Reilly, 2005: 218?225.
[8] 霍正雷.图书馆网络化协作发展及措施[J].新教育时代电子杂志,2015(20):36?39.