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