夏敏捷,張慎武,韓新超
(中原工學院,鄭州450007)
為使國家行政機關的公文處理規(guī)范化、制度化、科學化,國家專門制定了《國家行政機關公文處理辦法》[1].公文辦理完畢后要進行整理(立卷)、歸檔,定期向檔案部門移交.紙質公文的管理、整理和歸檔辦法經過多年的使用和修訂,已相當成熟,完全達到真實、完整、安全、可用和長期保存的要求.
隨著計算機應用和互聯(lián)網的普及,紙質公文逐步數(shù)字化,以適應快速查找公文信息的要求.但是,由于數(shù)字化公文的處理、管理、整理和歸檔完全是新的領域,涉及新的技術,數(shù)字化公文與紙質公文相比,在真實、安全和長期保存方面存在諸多問題,限制了數(shù)字化公文的應用.因此,數(shù)字化公文管理需要在每個環(huán)節(jié)上達到紙質公文管理的要求,才能得到廣泛應用.
隨著電子政務在政府部門的廣泛應用,產生出大量繁雜的電子公文,如何從海量的電子公文中找到辦公需要的公文,是亟待解決的問題.因此政府部門有必要建立一個數(shù)字化公文檢索系統(tǒng).建立數(shù)字化公文檢索系統(tǒng)的基礎是建立數(shù)字化公文數(shù)據(jù)庫.
(1)建立數(shù)字化公文數(shù)據(jù)庫是完善公文管理制度的需要.適時做好數(shù)字化公文管理,不僅是實現(xiàn)辦公自動化的需要,更是加強并完善不同載體形式的公文處理的需要.
(2)建立數(shù)字化公文數(shù)據(jù)庫是確保數(shù)字化公文保真、保密的需要[2].由于數(shù)字化公文的形成、處理、收集、積累、整理、歸檔、保管和利用等各個環(huán)節(jié)都存在著信息更改、丟失的可能性,因此,加強對數(shù)字化公文的管理,并相應地建立一套科學、合理、嚴密的管理制度,從每一個環(huán)節(jié)堵塞信息失真的隱患,對于維護數(shù)字化公文的原始性、真實性是非常重要的.
紙質公文的管理由專職人員負責,例如,各部委的司局指定專人負責管理紙質公文.數(shù)字化公文數(shù)據(jù)庫也應按照紙質公文的管理方法進行管理.各單位指定專人(軟件工程師)負責管理數(shù)據(jù)庫軟件,這里稱作系統(tǒng)管理員.各部門指定專人負責管理數(shù)字化公文數(shù)據(jù)庫,這里稱作部門管理員.部門管理員按照職能或業(yè)務給本部門用戶和用戶組授權訪問數(shù)據(jù)庫,系統(tǒng)管理員無權給部門用戶和用戶組授權訪問數(shù)據(jù)庫.
數(shù)字化公文數(shù)據(jù)庫的特點如下:
(1)將公文的全部內容裝入數(shù)據(jù)庫,包括正文、附件和批閱文件(例如 Word、Text、Excel、Pdf、Jpg、Tiff等),不外掛,保證數(shù)據(jù)的完整性.
(2)無附件或批閱文件,不占存儲空間;有附件或批閱文件,占存儲空間.有幾個附件或批閱文件,就占幾個附件或批閱文件的存儲空間.可存儲任意個附件或批閱文件,無冗余.
(3)將正文、附件和批閱文件的內容(例如 Word、Text、Excel等)全部抽取出來放入數(shù)據(jù)庫.
(4)能夠在同一臺服務器上建立多個部門的數(shù)據(jù)庫,且各部門數(shù)據(jù)庫相互獨立.
傳統(tǒng)關系數(shù)據(jù)庫在全文檢索時存在一些不足.傳統(tǒng)關系數(shù)據(jù)庫在對數(shù)據(jù)進行檢索時,采用逐記錄遍歷,對每條記錄的檢索字段進行匹配來實現(xiàn)檢索.在數(shù)據(jù)量比較少時,這種檢索方式查找速度快,但是對于海量的電子公文,這種遍歷的效率會存在嚴重問題,反應速度慢是用戶不能承受的.
Lucene技術采用倒排索引結構,可以很好地解決信息量龐大的問題.Lucence技術不是由記錄來確定屬性值,而是由屬性值來確定某條記錄,所以稱為倒排索引.倒排索引的索引對象是文檔中的單詞,倒排索引文件存儲在一個文檔或者一組文檔中每一個單詞出現(xiàn)的位置(文檔中的第幾個單詞),或字符出現(xiàn)的位置(文檔中的第幾個字符)[3].倒排索引由于在索引時建立了“單詞”和“文檔”的映射關系,所以檢索時間是毫秒級的,能滿足用戶的檢索需要.但需要注意的是,建立倒排索引結構需要大量的時間.
Lucene技術是高性能、可伸縮的信息搜索及開放源代碼的全文檢索引擎工具包[3],是全文檢索引擎的架構,而不是具有完整特征的搜索應用程序.它本身只關注文本的索引和搜索,不管數(shù)據(jù)源是什么格式,只要它能被轉化為文本形式,就可以被Lucene分析利用.也就是說,不管是 Html、Pdf、Word還是其他什么形式的文件,只要可以從中抽取出文字形式的內容,就可以被Lucene索引及搜索.
為減少索引文件的大小,Lucene采用一些壓縮算法.首先是對文件中的“單詞”進行壓縮,“單詞”壓縮為<前綴長度,后綴>[3].例如:當前詞為“中國人”,上一個詞為“中國”,那么“中國人”壓縮為<2,人>.其次是對數(shù)字壓縮,數(shù)字只保存與上一個值的差值,這樣可以減小數(shù)字的長度,進而減少保存該數(shù)字需要的字節(jié)數(shù).例如:當前文檔號是15 467(不壓縮要用3個字節(jié)保存),上一文檔號是15461,壓縮后保存6(只用一個字節(jié)).在這種索引結構下,索引文檔通常非常小.
本系統(tǒng)可實現(xiàn)對各種常見的數(shù)字化公文(如Text、Pdf、Word、Excel等格式)進行全文檢索.針對政府部門數(shù)字化公文全文檢索對設計目標和功能的需求,數(shù)字化公文全文檢索系統(tǒng)總體流程如圖1所示.
圖1 數(shù)字化公文全文檢索系統(tǒng)總體流程
整個系統(tǒng)分成3個模塊:公文抽取模塊、索引模塊、搜索模塊.公文抽取模塊主要是利用一些技術對數(shù)據(jù)源中的文本數(shù)據(jù)進行抽取.索引模塊負責對存儲到Lucene中的公文文本進行內容分詞、倒排索引.搜索模塊主要按用戶輸入的查詢信息,利用Lucene索引功能找到相關的公文,并按相關程度排序顯示搜索結果.
當部門接收到各種格式的數(shù)據(jù)源,如Text、Pdf、Word、Excel等格式數(shù)字化公文時,采用Lucene作為數(shù)據(jù)庫,需要進行文本數(shù)據(jù)抽取.若數(shù)據(jù)源是Word和Excel格式,可以采用POI技術來抽取文件中的文本.若數(shù)據(jù)源是Pdf格式,則采用PdfBox來抽取文件中的文本.這樣,不僅將文件的文本信息作為字段存儲到Lucene數(shù)據(jù)庫中,同時將文件名、標題、接收日期、發(fā)文單位等信息作為相關字段存儲到Lucene數(shù)據(jù)庫中.公文抽取和牽引過程如圖2所示.
對電子公文中 Text、Word、Pdf、Excel等格式的文件進行有針對性的文本抽取后,索引模塊將其轉化成為索引的固定格式,方便全文檢索系統(tǒng)對內容進行索引和存儲,從而支持各種格式文件的全文檢索.
圖2 公文抽取和索引過程
使用Lucene時,選擇一個合適的分詞器是非常關鍵的.分詞器就是利用特定的算法把文檔中的內容以單詞為單位進行劃分[4].對分詞器的選擇沒有惟一的標準.系統(tǒng)采用的分詞器是極易分詞mmseg4j.
建立索引的過程可以通過以下3個步驟來實現(xiàn)[5]:
(1)將不同的數(shù)據(jù)源組織成一個Document類型的對象;
(2)對要建立索引的數(shù)據(jù)對象進行分析.在文本索引之前,文本先通過Analyzer進行分析,Analyzer把分詞后的內容交給IndexWriter來建立索引;
(3)按照Lucene的索引格式將數(shù)據(jù)寫入索引文件.
完成數(shù)字化公文索引以后,就可以對用戶提供搜索服務了.搜索模塊負責提供搜索界面,接受用戶提供的檢索請求,并根據(jù)請求訪問相應的Lucene索引數(shù)據(jù)庫,最后對檢索到的記錄集按照相關度進行排序[5],將結果返回給用戶.
Lucene支持B/S方式對所有內容進行全文檢索,包括對公文正文、附件和批閱文件的所有內容進行全文檢索.全文檢索能夠對字、詞、詞組、數(shù)字、數(shù)值進行檢索,不需設定關鍵詞.為方便用戶檢索,Lucene支持以下檢索方式:
(1)簡單檢索.點擊相關信息常用項(公文標題、主題詞等),得到相應的數(shù)據(jù).
(2)高級檢索.用戶可以通過And、OR邏輯組合查詢條件進行檢索.
圖3 數(shù)字化公文搜索結果頁面
當用戶在圖3所示界面中提出搜索請求時,例如“黨務”,search.jsp頁面的<form>表單會將數(shù)據(jù)提交給SearchServlet,Lucene語言分析器接受用戶請求并進行分詞處理,根據(jù)搜索詞從Lucene中按照某種算法排序,將相關結果信息返回給用戶.本系統(tǒng)是按照相關度進行降序排序,相關度排序是使用Sort對象無參數(shù)構造函數(shù)完成的,文檔相關度是基于Lucene中文檔的Score和DocID,這在Lucene中也被稱為“評分機制”.
搜索的結果是以HTTP消息包的形式發(fā)送到用戶的瀏覽器,完成一次搜索操作.搜索結果頁面如圖3所示.查看搜索到的公文詳細內容可單擊搜索結果中的標題,如圖4所示.
圖4 公文詳細內容查看
數(shù)字化公文全文檢索系統(tǒng)建設不是簡單地通過電子設備將公文電子化的過程,而是一種管理行為的電子化,其目的是利用數(shù)字化的優(yōu)勢來擴展其服務功能,擴大應用范圍,提供一個能夠超越時間和空間的檔案公文共享平臺,為社會提供服務.Lucene技術可以對數(shù)字化公文數(shù)據(jù)庫管理、用戶管理、訪問權限、數(shù)據(jù)庫備份、全文檢索提供較好的解決方法,提高數(shù)據(jù)庫的安全性和檢索準確性.
[1]李燕萍.電子文件的特點及電子檔案的管理[J].山西檔案,2010(S1):6-7.
[2]徐銳.淺談辦公自動化與電子文檔管理[J].黑龍江史志,2012(13):23-25.
[3]沐陽.倒排索引.[EB/OL].[2013-06-11].http://www.cnblogs.com/Lyush/archive/2013/01/11/2856918.html.
[4]陳康,滕育平.中文信息檢索引擎的分詞與檢索技術[J].計算機應用,2004(7):25-29.
[5]陶榮.基于Lucene小型搜索引擎的研究與實現(xiàn)[J].大眾科技,2010(2):12-15.