呂霞



摘 要: 電子資源管理是現今圖書館面對的極具挑戰性工作,截止至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.