呂霞
摘 要: 電子資源管理是現(xiàn)今圖書館面對的極具挑戰(zhàn)性工作,截止至2010年課題中的圖書館的電子資源數(shù)量已經(jīng)達(dá)到了數(shù)十TB,為進(jìn)一步推進(jìn)人力資源和圖書館集成化管理系統(tǒng),及時讓讀者使用這些電子資源,提出了一套全新的電子資源管理系統(tǒng),其目的是總結(jié)該館以往的電子資源的管理經(jīng)驗(yàn),采取更先進(jìn)的存儲,Lucene索引技術(shù)及ASP.NET MVC 2.0框架,融合Web 2.0與Lib 2.0理念所創(chuàng)建的電子資源管理系統(tǒng)。采取了以上較先進(jìn)的技術(shù),解決了該館大數(shù)據(jù)量電子資源的管理及檢索問題,相比于該館之前的管理系統(tǒng),系統(tǒng)內(nèi)存開銷為原系統(tǒng)的[120,]處理器開銷為原系統(tǒng)的[110,]檢索速度提高了近50倍。
關(guān)鍵詞: 電子文獻(xiàn); Lucene索引; ASP.NET MVC 2.0; Web 2.0; Lib 2.0
中圖分類號: TN911?34; TM417 文獻(xiàn)標(biāo)識碼: 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 引 言
電子資源管理是現(xiàn)今圖書館面對的極具挑戰(zhàn)性工作,課題中涉及的圖書館電子資源管理系統(tǒng)亦不例外[1]。截止至2010年該館的電子資源數(shù)量已經(jīng)達(dá)到了幾十個TB,如何運(yùn)用現(xiàn)有的人力資源和圖書館集成化管理系統(tǒng)[2],及時讓讀者使用這些電子資源,已成為該圖書館的重大挑戰(zhàn)。本館在2009年決定把中文期刊、英文期刊、電子圖書等電子資源的編目工作進(jìn)行調(diào)整,要求采用相關(guān)的計(jì)算機(jī)技術(shù)創(chuàng)建一套全新的電子資源管理系統(tǒng)。本課題的目的是總結(jié)該館以往的電子資源的管理經(jīng)驗(yàn),采取更先進(jìn)的存儲,索引技術(shù)及B/S架構(gòu),融合Web 2.0與Lib 2.0理念所創(chuàng)建的電子資源管理系統(tǒng)[3]。
該系統(tǒng)為用戶提供了便捷高效的電子資源檢索引擎,使用戶可以快速地找到所需資源;與此同時還提供了個性化圖書館的服務(wù),允許用戶上傳個人的電子資源,加強(qiáng)了管理系統(tǒng)的互動共享功能。經(jīng)本課題的研究,從根本上解決了該館大數(shù)據(jù)量電子資源的存儲及使用問題[4]。
1 基于Lucene的檢索系統(tǒng)及實(shí)驗(yàn)驗(yàn)證
1.1 檢索系統(tǒng)
Lucene是以Java為依據(jù)的一個高效的全文檢索庫。完成下述步驟建立全文檢索索引[5]:
首先,為了方便說明建立索引的過程,此處將需要索引一些原文檔(Document)。
其次,分詞組件(Tokenizer)在收到原文檔的傳輸后會做如下事情(此過程稱為 Tokenize) [6]:將文檔拆分成為各個獨(dú)立的單詞;將標(biāo)點(diǎn)符號除去;將停詞(Stop word) 除去。
最后,索引組件(Indexer)在收到得到的詞(Term)之后負(fù)責(zé)以下幾項(xiàng):創(chuàng)建一個以得到的詞(Term)為依據(jù)的字典;按照字母順序?qū)⒆值渑判?;將同樣的詞(Term)進(jìn)行合并并形成文檔倒排(PostingList)鏈表。
1.2 SQL Server檢索與Lucene檢索性能比較
SQL Server數(shù)據(jù)庫產(chǎn)品作為底端的數(shù)據(jù)存儲,利用單純的數(shù)據(jù)庫對這些資源進(jìn)行索引,如果數(shù)據(jù)量達(dá)到上億級,系統(tǒng)運(yùn)行啟開所占用的內(nèi)存大約為幾十GB[7]。除此之外,SQL Server運(yùn)用緩沖池內(nèi)存服務(wù)于SQL Server進(jìn)程中大部分不大于8 KB的其他內(nèi)存請求,以便過程緩存和數(shù)據(jù)存儲。不能從緩存池中得到其他的分配由剩下的未保留內(nèi)存完成。曾經(jīng)使用單純的數(shù)據(jù)庫檢索技術(shù)及Lucene索引技術(shù),并對兩種檢索技術(shù)的效率、消耗系統(tǒng)資源、檢索速度進(jìn)行了詳細(xì)的分析對比[8]。以上實(shí)驗(yàn)中數(shù)據(jù)總條目有三百多萬條,以硬盤存儲空間大約1 TB的資源進(jìn)行測試,分析比對之后的結(jié)果如圖1~圖3所示。
對比圖1~圖3得出,Lucene檢索在各方面都占有一定的優(yōu)勢,所以使用Lucene檢索建設(shè)大數(shù)據(jù)量的電子資源管理平臺為最優(yōu)選項(xiàng)。
2 系統(tǒng)的設(shè)計(jì)
2.1 功能設(shè)計(jì)
圖書館電子資源管理系統(tǒng)功能設(shè)計(jì)如圖4所示。當(dāng)前,圖書館內(nèi)的中文期刊,英文期刊,報紙,學(xué)位論文,電子圖書,網(wǎng)頁信息,多媒體等信息資源數(shù)量眾多,占用系統(tǒng)近20 TB的硬盤儲存空間,因此設(shè)計(jì)和實(shí)現(xiàn)的系統(tǒng)需要對海量的數(shù)據(jù)進(jìn)行科學(xué)存儲的同時還要保證檢索的速度,還不能占用過大的存儲空間或資源。
2.2 系統(tǒng)框架原理
系統(tǒng)依據(jù)ASP.NET MVC 2.0設(shè)計(jì)模式,依次包括Model,View,Control三層結(jié)構(gòu)。系統(tǒng)最重要的部分為Model層,該層中包含了以上兩章中重點(diǎn)提到的Lucene索引技術(shù);View層中個性化的展示了中文期刊,英文期刊,報紙,學(xué)位論文,電子圖書,網(wǎng)頁信息,多媒體等電子資源,Web 2.0技術(shù)被較多的運(yùn)用于View層中;系統(tǒng)的請求分配及權(quán)限管理方面問題的解決是Control層的主要任務(wù)。
(1) Model 層設(shè)計(jì)
期刊的數(shù)據(jù)模型:期刊可以被劃分為非常多的年卷期信息,T_EN_Literary類表示了期刊中的文章信息,由T_EN_Journal到T_EN_Issues是一對多的對應(yīng)法則關(guān)系,而T_EN_Journal類代表特指的某種期刊。系統(tǒng)在進(jìn)行初始化時便建立了數(shù)據(jù)庫的索引,Search接口能夠完成直接從之前所建立的該數(shù)據(jù)庫的索引中查詢數(shù)據(jù)而不會訪問數(shù)據(jù)庫,之后再將結(jié)果反饋給Control層。這種設(shè)計(jì)節(jié)省了CPU及內(nèi)存,此外,保證了快速的檢索速度。每一種資源在電子資源管理系統(tǒng)中都被界說為一個類,update的接口也是通過這些類達(dá)成的,該接口設(shè)置的目的是同步索引以及更新數(shù)據(jù)庫。delete的接口負(fù)責(zé)對數(shù)據(jù)的刪除工作。
(2) View層設(shè)計(jì)
View層中個性化的展示了中文期刊,英文期刊,報紙,學(xué)位論文,電子圖書,網(wǎng)頁信息,多媒體等電子資源,View中用到的數(shù)據(jù)都是由Control層提供,View層還負(fù)責(zé)各種表單的提交,這些表單最終被Control層解析,之后經(jīng)過Control層調(diào)取數(shù)據(jù)對象再返回給View層,這樣就形成了動態(tài)頁面信息的交互。
(3) Control層設(shè)計(jì)
Control層是ASP.NET MVC 2.0框架結(jié)構(gòu)的中央環(huán)節(jié),工作職能是完成各項(xiàng)工作的調(diào)度。Model層將具體數(shù)據(jù)反饋給Control層,Control層在對數(shù)據(jù)完成加工后,通過相應(yīng)形式反饋給View層,即為用戶瀏覽器頁面中顯示的內(nèi)容。
2.3 用戶權(quán)限管理設(shè)計(jì)
Model層數(shù)據(jù)模型使每個類中都有Owner,Edit,Visit功能,通過上述功能完成對數(shù)據(jù)級權(quán)限的管理。數(shù)據(jù)對象擁有者的ID儲存于Owner中,該資源最高級的權(quán)限由這些用戶持有,這些用戶能夠完成數(shù)據(jù)的瀏覽、修改、增加、刪除等操作。對數(shù)據(jù)對象有編輯權(quán)用戶的ID儲存于Edit中,該資源的編輯權(quán)限由這些用戶掌握,這個功能可以使資源權(quán)限更加方便的管理。對數(shù)據(jù)對象擁有訪問權(quán)用戶的ID儲存于Visit中,這些用戶擁有瀏覽該資源的權(quán)限。
3 系統(tǒng)整體實(shí)現(xiàn)
3.1 核心功能實(shí)現(xiàn)
圖書館電子資源管理系統(tǒng)主頁截圖見圖5,圖書館電子資源管理系統(tǒng)包含7大功能:
(1) 圖書館現(xiàn)存有報紙,檔案、中、英文期刊,學(xué)位論文,畢業(yè)論文,電子圖書網(wǎng)頁信息,多媒體等電子資源。
(2) 運(yùn)用中文期刊,英文期刊,電子圖書模塊提供給專業(yè)人員的A?Z的導(dǎo)航功能,用專業(yè)化樹狀的形式展示期刊的年卷期,用目錄樹展示功能實(shí)現(xiàn)電子圖書的中圖分類法,除此之外,還需提供上述資源的正則表達(dá)式等高級檢索功能以及模糊檢索,從而方便用戶對資源的定位。
(3) 模塊功能的資源編輯可授權(quán)用戶進(jìn)行編輯處理。
(4) 增加資源評論和打分的屬性,用戶可以評價、分享并推薦優(yōu)秀資源,方便其他用戶閱讀,幫助系統(tǒng)高效的運(yùn)行,更有利于資源的分享。
(5) 在資源倉庫模塊中,高級用戶可以對目錄樹進(jìn)行編輯,目錄樹創(chuàng)建后自動生成RSS訂閱鏈接,高級用戶可以對目錄樹進(jìn)行創(chuàng)建并對資源類型進(jìn)行定義,使信息資源的推送更加方便。
(6) 站內(nèi)資源的收藏管理功能可以通過收藏模塊實(shí)現(xiàn),在瀏覽站內(nèi)資源時,相對應(yīng)位置有收藏該資源的功能按鈕,用戶點(diǎn)擊后可直接收藏該資源。
(7) 數(shù)據(jù)級權(quán)限管理以及功能級權(quán)限管理通過權(quán)限管理模塊實(shí)現(xiàn)。
3.2 結(jié)構(gòu)實(shí)現(xiàn)
(1) 索引功能
Lucene索引信息存儲的選擇方式有兩種:文件系統(tǒng)(FS)、內(nèi)存(RAM)。大型檢索一般用文件系統(tǒng)存儲,較小的檢索系統(tǒng)主要運(yùn)用內(nèi)存存儲。由于目前的大部分信息平臺中的信息量都達(dá)到百萬級以上,因此索引的存儲采取的是文件系統(tǒng)(FS)。
(2) 檢索功能
系統(tǒng)主要由QueryParser,IndexSearcher,Hits三個類組成了Lucene的檢索接口。QueryParser的主要任務(wù)是解析用戶提交需查詢的關(guān)鍵字,即為查詢解析器創(chuàng)建一個新的解析器時需要設(shè)定使用何種語言分析器以及要解析的域,保證查詢結(jié)果的正確性。例如,URL和網(wǎng)頁標(biāo)題。在用戶面前所呈現(xiàn)的便是通過處理的信息。在系統(tǒng)中輸入檢索詞“cell”,檢索結(jié)果如圖6所示。
(3) View層的實(shí)現(xiàn)
View層中大量使用了JQuery框架,使數(shù)量眾多的個性化功能得以實(shí)現(xiàn),此處以目錄樹的編輯功能為例進(jìn)行說明。
用戶打開目錄編輯頁面之后便可以同編輯文件夾目錄結(jié)構(gòu)一樣,對文件夾目錄樹進(jìn)行重命名,添加、刪除、展開等操作,所有的操作都是利用Ajax技術(shù)實(shí)現(xiàn)的,當(dāng)用戶在要修改的目錄樹中點(diǎn)擊右鍵時,會彈出編輯菜單欄。通過Ajax技術(shù)將數(shù)據(jù)發(fā)往后臺進(jìn)行驗(yàn)證,驗(yàn)證通過后,目錄樹的名字會改變,若驗(yàn)證失敗,會提示用戶相關(guān)錯誤。
Control層實(shí)現(xiàn)了系統(tǒng)的整體調(diào)度,在前兩節(jié)中已經(jīng)對該層的設(shè)計(jì)做了詳細(xì)的描述,下面重點(diǎn)介紹電子資源管理系統(tǒng)中對IP驗(yàn)證功能的實(shí)現(xiàn)。ASP.NET MVC 2.0框架中重要的過濾器能在IP的驗(yàn)證功能發(fā)揮重要的作用。首先建立一個文件請求過濾器CheckIPAttribute類,該類繼承自ActionFilterAttribute類,功能就是當(dāng)用戶請求被解析到Control層時,在Control層執(zhí)行之前,對相關(guān)的請求合法性進(jìn)行驗(yàn)證,為請求進(jìn)行解析。
3.3 一站式檢索功能
一站式檢索功能將目前圖書館中的中文期刊,英文期刊,報紙,學(xué)位論文,電子圖書,網(wǎng)頁信息,多媒體等各種異構(gòu)的電子資源進(jìn)行統(tǒng)一的檢索,同時將檢索的結(jié)果返回給用戶,這一部分也是該系統(tǒng)的亮點(diǎn)之一。為了達(dá)到較快的統(tǒng)一檢索及相關(guān)度排序,為每種資源返回的數(shù)量設(shè)置閾值,這樣返回結(jié)果的速度很快,并且降低了系統(tǒng)資源的消耗,一站式檢索功能的截圖,如圖7所示。當(dāng)用戶檢索“cell”時,系統(tǒng)將已經(jīng)勾選的資源類型都檢索出來。
3.4 資源評價功能
當(dāng)用戶查閱資源后,可以對資源進(jìn)行評價,這樣不但是對其他用戶閱讀時的一種引導(dǎo),在科研工作中也降低了研究時間。
3.5 社區(qū)分享功能
目前的社交網(wǎng)絡(luò)已經(jīng)十分發(fā)達(dá),圖書館電子資源管理系統(tǒng)也做了社交網(wǎng)絡(luò)資源共享的功能,用戶可以將觀看的文章分享到人人網(wǎng),新浪微博等社交網(wǎng)絡(luò)中。點(diǎn)擊側(cè)邊欄“分享到”按鈕后分享菜單會自動彈出,如圖8所示。
4 結(jié) 論
采用Lucene數(shù)據(jù)索引技術(shù)結(jié)合MySQL等開源數(shù)據(jù)庫可以開發(fā)出一套更好的數(shù)據(jù)庫產(chǎn)品,其中MySQL僅用來當(dāng)作數(shù)據(jù)的備份及數(shù)據(jù)邏輯的保存,數(shù)據(jù)復(fù)雜的檢索可以由Lucene完成。這樣可以加快數(shù)據(jù)庫的檢索速度及數(shù)據(jù)庫的運(yùn)行速度,但是節(jié)省了大量的內(nèi)存及CPU資源,同時由于MySQL與Lucene都是免費(fèi)的,這樣既降低了系統(tǒng)的成本,又加快了系統(tǒng)的效率。
參考文獻(xiàn)
[1] 鄭依華.搜索引擎也開源[J].計(jì)算機(jī)世界報,2006 (47):67?70.
[2] 涂新輝,何婷婷,羅景.一種全文檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005(17):27?30.
[3] 彭波.大規(guī)模搜索引擎檢索系統(tǒng)框架與實(shí)現(xiàn)要點(diǎn)[J].計(jì)算機(jī)工程與科學(xué),2006(3):12?15.
[4] 鐘濤,陳新明,萬鈞,等.中文文本W(wǎng)eb搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2001(17):41?45.
[5]威者林碧英,趙銳,陳良臣.基于Lucene的全文檢索引擎研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,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] 霍正雷.圖書館網(wǎng)絡(luò)化協(xié)作發(fā)展及措施[J].新教育時代電子雜志,2015(20):36?39.