【摘 要】為滿足辦公室環(huán)境下文檔資料全文檢索的需求,本文基于Lucene API研究并實現(xiàn)了一個面向海量文檔數(shù)據(jù)的全文檢索系統(tǒng),該系統(tǒng)能實現(xiàn)對DOC、XLS和PDF等各種格式文檔資料的全文檢索。系統(tǒng)在實際辦公室資料檢索應(yīng)用的結(jié)果說明系統(tǒng)具有良好檢索性能,有較高的查全率和查準率,能夠滿足辦公室人員快速檢索文檔資料的需求。通過擴展,系統(tǒng)可以適應(yīng)C/S和B/S這兩種應(yīng)用需求,有廣闊的應(yīng)用前景。
【關(guān)鍵詞】全文檢索;索引;檢索;辦公室;文檔
1.引言
目前,各企事業(yè)單位行政辦公室都積累有大量的文檔資料,這些中文檔有Word文檔(后綴為doc)、Excel文檔(后綴為xls)和Pdf文檔(后綴為pdf)等。通常查找這些文件時都是通過文件名查找,如果不記得文件名后則只能挨個目錄查看所需要的文件,這往往是一個極其費時費力的過程。要解決這個問題就需要引入文檔的全文檢索功能,讓用戶能根據(jù)文檔內(nèi)容來進行檢索。本文基于Lucene API研究并實現(xiàn)了一個面向海量文檔資料的全文檢索系統(tǒng),該系統(tǒng)能實現(xiàn)對辦公室各種格式文檔的全文檢索。
2.Lucene簡介
Lucene是一個開源的基于Java全文信息檢索工具包,提供了很多通用的用于索引和檢索的API;它主要為應(yīng)用程序提供索引和搜索功能。Lucene提供一個通用的結(jié)構(gòu)(Document對象)來接受索引的輸入,因此可以非常靈活的適應(yīng)各種應(yīng)用,輸人的數(shù)據(jù)源可以是結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),如Word、Excel和PDF等文檔,只要前端有合適的轉(zhuǎn)換器從數(shù)據(jù)源提取出純文本,然后再將這些文本轉(zhuǎn)換成通用的Document對象就可以索引為文本磁盤文件了。基于這些原因,所以Lucene很適合于用來構(gòu)建異構(gòu)數(shù)據(jù)源環(huán)境下的全文檢索系統(tǒng)[1]。
3.系統(tǒng)設(shè)計與實現(xiàn)
3.1 系統(tǒng)總體架構(gòu)
文檔資料全文檢索系統(tǒng)可以針對多種格式文檔資料進行綜合搜索,便于用戶快速檢索信息并協(xié)助其它信息系統(tǒng)的應(yīng)用。此全文檢索系統(tǒng)的總體架構(gòu)如圖1所示[2]:
圖1 系統(tǒng)總體結(jié)構(gòu)圖
圖1中,文檔資料庫保存的是不同格式的文檔資料,這些資料需要經(jīng)過文本分析引擎分別提取純文本后并進行索引,將索引信息存入索引庫內(nèi)以供檢索使用。當用戶輸入查詢語句后,文本分析引擎會對查詢語句進行分析,查詢引擎利用查詢語句的分析結(jié)果檢索索引庫,并對命中文檔按一定規(guī)則進行排序后反饋給用戶。
3.2 索引的設(shè)計與實現(xiàn)
Lucene默認只能分析并索引HTML和TXT文檔,本文首先利用POI和PDFBox等開源工具抽取DOC、XLS和PDF文檔中的文本。然后利用Lucene索引這些提取出來的文本,將提取的文本封裝為Lucene的Document對象中一個字段。當然還可以提取文檔的其他信息,如文檔路徑、文件名和最后修改時間等,再將這些信息作為輔助字段添加到Lucene的Document對象。最終不同格式的文檔就被封裝為通用Document對象,這些Document對象可以寫入索引文件供以后全文檢索使用[3][4],文本分析引擎的流程圖如圖2所示。
圖2 文本分析流程圖
3.3 檢索的實現(xiàn)
文檔檢索使用流程比較簡單,用戶在輸入檢索關(guān)鍵詞后,系統(tǒng)通過查找Lucene索引文本時創(chuàng)建的本地索引文件,快速地將滿足條件的結(jié)果反饋給用戶[5][6]。文本檢索的流程圖如圖3所示。
檢索結(jié)果中顯示的是符合檢索條件的文檔的標題、摘要和文檔格式,用戶如果想查看某一篇文檔的具體內(nèi)容,只需要點擊該文檔的標題即可打開相應(yīng)的文檔進行瀏覽。如果用戶輸入的是一個句子或者是多個檢索詞的組合,那么會先對句子或檢索詞組合進行分詞,然后將查詢結(jié)果進行布爾運算后返回給用戶。
圖3 文本檢索流程圖
4.總結(jié)與展望
本全文檢索系統(tǒng)在J2EE環(huán)境下實現(xiàn),并作為辦公室資料檢索系統(tǒng)投入試用,取得了一定的應(yīng)用成果。系統(tǒng)在實際資料檢索應(yīng)用的結(jié)果說明系統(tǒng)具有良好檢索性能,有較高的查全率和查準率,能夠滿足辦公室環(huán)境下快速檢索資料的需求[7]。
參考文獻:
[1]吳代文.基于Lucene的全文檢索應(yīng)用研究[J].微計算機應(yīng)用,2011,02:62-65.
[2]吳代文.基于Lucene站內(nèi)全文檢索系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,03(6):42-44.
[3]譚文堂,賀明科,李阜.基于Lucene.Net的分布式全文檢索系統(tǒng)[J].計算機應(yīng)用與軟件,2009,26(9):142-145.
[4]王志嘉,薛質(zhì).一種基于Lucene的中文分詞的設(shè)計與測試[J].信息技術(shù),2010,12(12):50-53.
[5]鄭廷,鄭誠.基于Lucene的語義檢索系統(tǒng)[J].計算機工程,2008,08(16):92-94.
[6]郎小偉,王申康.基于Lucene的全文檢索系統(tǒng)研究與開發(fā)[J].計算機工程,2006,02(36):94-96.
[7]勵子閏,余青松,陳勝東.基于全文檢索引擎的信息檢索技術(shù)的應(yīng)用研究[J].計算機與數(shù)字工程,2008,9:81-85
資助項目:基于Lucene的二次檢索系統(tǒng)應(yīng)用研究(編號:13YKP001)。
作者簡介:吳代文(1979—),湖南衡陽人,碩士,講師,主要研究方向:遠程教育、教育信息檢索。