亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Lucene的企業(yè)電子文檔搜索系統(tǒng)的開發(fā)研究

        2017-09-07 06:37:49林鈺杰吳麗賢
        電子設(shè)計工程 2017年17期
        關(guān)鍵詞:文本系統(tǒng)

        林鈺杰,吳麗賢

        (廣東電網(wǎng)有限責(zé)任公司 佛山供電局,廣東 佛山528000)

        基于Lucene的企業(yè)電子文檔搜索系統(tǒng)的開發(fā)研究

        林鈺杰,吳麗賢

        (廣東電網(wǎng)有限責(zé)任公司 佛山供電局,廣東 佛山528000)

        隨著企業(yè)信息化的發(fā)展,企業(yè)的信息資源越來越豐富,電子文檔已成為企業(yè)信息傳遞、保存的重要形式,如何讓員工快速全面地從海量的電子文檔中找到所需的內(nèi)容,日趨顯得重要。針對企業(yè)電子文檔搜索的現(xiàn)狀和不足,本文研究了全文檢索技術(shù)和全文檢索工具Lucene,并將其引入到系統(tǒng)開發(fā)中,在主流的B/S分層架構(gòu)基礎(chǔ)上,重點(diǎn)對文本提取模塊、中文詞劃分模塊、索引模塊和搜索模塊進(jìn)行了設(shè)計與實(shí)現(xiàn),構(gòu)建了一個基于Lucene的企業(yè)電子文檔搜索系統(tǒng)。實(shí)踐表明,本系統(tǒng)為企業(yè)員工提供了一種高效的電子文檔檢索方式,提高了員工的工作效率,改善了系統(tǒng)用戶體驗(yàn)并提升了企業(yè)信息化水平。

        Lucene;全文檢索;電子文檔;企業(yè)搜索引擎

        隨著企業(yè)規(guī)模擴(kuò)大、業(yè)務(wù)拓展以及信息化發(fā)展,企業(yè)內(nèi)部的電子文檔信息每天都在快速增長,這些文檔以不同的格式分別保存在磁盤和數(shù)據(jù)庫中,總數(shù)據(jù)量十分龐大[1]。雖然幾乎所有的信息系統(tǒng)都為用戶提供了信息檢索功能,但基本上僅支持關(guān)鍵字匹配查詢,而且只能檢索數(shù)據(jù)庫中的信息,對于存儲在磁盤上的文件卻無能為力。部分系統(tǒng)會采用數(shù)據(jù)庫自帶的檢索功能,但是檢索結(jié)果往往不理想[2]。由于企業(yè)員工在日常工作中離不開對電子文檔的頻繁搜索,為避免大量時間和精力的浪費(fèi),改善搜索效果,提高工作效率,開發(fā)一個適用于企業(yè)內(nèi)部的電子文檔搜索系統(tǒng)是勢在必行的事情。

        全文檢索(Full-text Retrieval)是現(xiàn)代信息檢索技術(shù)的一個重要組成部分,是結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)處理的有力工具,尤其在非結(jié)構(gòu)化數(shù)據(jù)處理方面,擁有比數(shù)據(jù)庫技術(shù)更強(qiáng)大的檢索能力[3]。在全文檢索領(lǐng)域,Lucene是其中的佼佼者,應(yīng)用Lucene的項目在全世界范圍內(nèi)已經(jīng)非常之多,如主流Java開發(fā)工具Eclipse、Apache項目的郵件歸檔系統(tǒng)Eyebrows、著名房地產(chǎn)信息平臺搜房網(wǎng)(http://search.soufun.com),來自 MIT的文檔管理系統(tǒng)Dspace Federation,等等[4-5]。本文系統(tǒng)正是基于Lucene而構(gòu)建。

        1 全文檢索原理

        全文檢索是指搜索系統(tǒng)對文檔中的每一個詞進(jìn)行掃描,并對其建立索引,將這些信息保存在索引文件中。當(dāng)用戶輸入關(guān)鍵詞進(jìn)行查詢時,搜索系統(tǒng)便據(jù)此搜索索引文件并將結(jié)果返回給用戶[6-7]。圖1展示了全文檢索的主要原理。

        圖1 全文檢索原理

        從圖1可以看出,全文檢索主要分為索引過程和搜索過程。索引過程是指從所有的結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)中提取信息并創(chuàng)建索引,主要步驟包括:

        1)分詞組件接收文檔并對文檔內(nèi)容切詞,去除標(biāo)點(diǎn)符號和停詞,得到詞元;

        2)分詞組件將詞元傳遞給語言處理組件,執(zhí)行語言相關(guān)的處理,得到單詞;

        3)語言處理組件將單詞傳給索引組件,創(chuàng)建一個詞典并排序,合并相同的單詞,形成文檔倒排鏈表。

        搜索過程是指根據(jù)用戶的査詢請求搜索創(chuàng)建的索引,然后返回結(jié)果,主要步驟包括:

        1)用戶輸入查詢語句;

        2)對查詢語句進(jìn)行詞法分析,識別查詢語句中的關(guān)鍵詞;

        3)對關(guān)鍵詞進(jìn)行語法分析,形成語法樹;

        4)對語法書進(jìn)行語言處理,原理同索引過程;

        5)利用語法樹搜索索引,得到匹配的文檔;

        6)對匹配結(jié)果排序并返回給用戶。

        2 Lucene搜索技術(shù)

        2.1 Lucene簡介

        Lucene是Jakarta項目組下的一個子項目,由Apache軟件基金會提供支持。Lucene是一個基于Java的全文檢索引擎框架,雖然不是一個完整的全文檢索引擎,但其原生提供索引、查詢、文字處理等模塊,可方便開發(fā)人員根據(jù)需求開發(fā)特定的全文檢索功能,并集成到各種業(yè)務(wù)應(yīng)用系統(tǒng)中[8-9]。

        Lucene主要有以下5個特點(diǎn):

        1)Lucene的索引文件基于8位字節(jié)長,可兼容不同的系統(tǒng)和平臺,具有良好的獨(dú)立性;

        2)Lucene采用了分塊索引來優(yōu)化傳統(tǒng)的倒排索引技術(shù),可在合并原有索引的基礎(chǔ)上建立小文件索引,從而達(dá)到提升索引速度的目的[10];

        3)Lucene內(nèi)置的查詢引擎實(shí)現(xiàn)了十分強(qiáng)大的檢索功能,可為用戶提供布爾查詢、模糊查詢、分組查詢等查詢方式;

        4)Lucene是基于面向?qū)ο笙到y(tǒng)架構(gòu)設(shè)計的,學(xué)習(xí)難度較低,擴(kuò)展性良好;

        5)Lucene設(shè)計了獨(dú)立于文件格式的文本分析接口,用戶只需實(shí)現(xiàn)該接口即可擴(kuò)展對新的文件格式的分析支持。

        2.2 Lucene系統(tǒng)架構(gòu)

        Lucene的系統(tǒng)架構(gòu)可以大致分為查詢解析器、對外接口、索引核心和基礎(chǔ)結(jié)構(gòu)封裝這4個部分[11],如圖2所示。在源碼上,Lucene共分為7個模塊:

        1)lucene.index是Lucene中的核心包,包括索引建立、索引優(yōu)化、索引維護(hù)與管理等功能;

        2)lucene.store包定義了Lucene的索引存儲方式,包括內(nèi)存存儲和磁盤存儲;

        3)lucene.document包負(fù)責(zé) Lucene的索引文件結(jié)構(gòu)管理,通過定義與物理文件對應(yīng)的邏輯結(jié)構(gòu)Document,為索引文件的處理提供了統(tǒng)一的標(biāo)準(zhǔn);

        4)lucene.util包提供了公用的算法類;

        5)lucene.search是Lucene的另一個核心包,主要負(fù)責(zé)檢索管理,能夠根據(jù)查詢條件檢索結(jié)果;

        6)lucene.analysis包實(shí)現(xiàn)了一整套完整的分析體系,包括標(biāo)準(zhǔn)分析器和便于擴(kuò)展的分析類接口;

        7)lucene.queryParser是Lucene的查詢解析器,可提供查詢關(guān)鍵詞之間的運(yùn)算。

        圖2 Lucene系統(tǒng)架構(gòu)

        2.3 Lucene數(shù)據(jù)流

        圖3為Lucene的數(shù)據(jù)流,其中,虛線箭頭對應(yīng)索引過程,實(shí)線箭頭對應(yīng)搜索過程。Lucene共有4種數(shù)據(jù)流:

        1)文本流表示索引目標(biāo)和交互控制的對象;

        2)Token流是Lucene對文字的一種抽象概念,是索引處理中的最小單元;

        3)字節(jié)流是文件的一種數(shù)據(jù)格式;

        4)查詢語句對象流是查詢解析時傳輸?shù)臄?shù)據(jù)。

        圖3 Lucene數(shù)據(jù)流

        3 系統(tǒng)設(shè)計與實(shí)現(xiàn)

        文中的目標(biāo)是針對企業(yè)內(nèi)部電子文檔應(yīng)用的需求特點(diǎn),利用開源搜索工具Lucene來構(gòu)建一個搜索系統(tǒng),實(shí)現(xiàn)電子文檔的全文檢索,方便用戶快速準(zhǔn)確地查找需要的文檔。系統(tǒng)的總體框架如圖4所示,整個系統(tǒng)按照B/S的三層架構(gòu)進(jìn)行設(shè)計。下面將對文本提取、中文詞劃分、索引和搜索這4個核心模塊的實(shí)現(xiàn)進(jìn)行詳細(xì)描述。

        3.1 文本提取模塊

        圖4 系統(tǒng)總體框架

        企業(yè)的電子文檔大部分為Word、Excel、PDF等格式的文件,但Lucene的處理對象僅限于純文本格式的數(shù)據(jù)。因此,系統(tǒng)必須能夠從各種格式的文檔中抽取出Lucene可處理的文本內(nèi)容。本文選取Tika作為系統(tǒng)的文本提取工具。Tika也是由Apache軟件基金會提供支持,是一個能夠檢測和提取不同類型文檔的文本內(nèi)容的開源工具[12-13]。通過集成PDFBox、Apache POI、EPUB等第三方功能包并封裝為統(tǒng)一的API,Tika可對PDF文檔、Office文檔、電子圖書等多種格式文件進(jìn)行文本提取處理。而且,Tika還提供了可編程擴(kuò)展的接口,可方便支持新的文件格式。調(diào)用Tika抽取文本的實(shí)現(xiàn)代碼如下:

        3.2 中文詞劃分模塊

        中文詞劃分可為中文文本建立正確、合理、高效的索引結(jié)構(gòu),是實(shí)現(xiàn)中文信息檢索的前提。分詞器是實(shí)現(xiàn)中文詞劃分的關(guān)鍵,分詞器的好壞直接關(guān)系到搜索引擎的檢索效果,良好的分詞器能夠?qū)ξ臋n內(nèi)容進(jìn)行準(zhǔn)確的切分以得到合理的單詞,從而讓系統(tǒng)在搜索時能夠匹配出相關(guān)性更高的文檔,使檢索效果更加符合實(shí)際需要[14-15]。然而,Lucene自帶的分詞器在中文詞劃分方面表現(xiàn)并不理想,因此,本文引入算法更為成熟的mmseg4j分詞器,以實(shí)現(xiàn)電子文檔搜索系統(tǒng)的中文詞劃分功能,主要實(shí)現(xiàn)代碼如下:

        3.3 索引模塊

        如第1節(jié)所述,電子文檔在建立索引后才能被系統(tǒng)檢索。為此,索引模塊需要實(shí)現(xiàn)以下3個功能:

        1)索引創(chuàng)建。在Lucene中,IndexWriter類主要用于創(chuàng)建索引文件并將其保存于指定的目錄中。在實(shí)際應(yīng)用時,由于創(chuàng)建索引往往會產(chǎn)生比較小的索引碎片,因而在調(diào)用IndexWriter的構(gòu)造函數(shù)創(chuàng)建實(shí)例后,還需要調(diào)用 addDocument、optimize、close 等方法把一系列的小索引碎片合并到一個文件中。索引創(chuàng)建的主要實(shí)現(xiàn)代碼如下,其中,使用的分詞器必須要和中文詞劃分模塊中使用的保持一致:

        2)索引管理。Lucene的IndexReader類主要負(fù)責(zé)索引在磁盤上的存放、加載和維護(hù)工作,例如,open方法可用于確定引用的具體磁盤文件和目錄、lastModified方法可獲取索引最近一次更新的時間、getCurrentVersion方法用于獲取索引當(dāng)前的版本號(新建的索引使用一個時間戳來標(biāo)記,以后每更新一次,版本號就加1),等;

        3)索引更新??紤]到企業(yè)電子文檔絕大部分為歸檔性、共享性的資源,為避免頻繁加載索引而影響效率,這里采用批量形式定時刪除再追加指定索引的方式來更新索引目錄。

        3.4 搜索模塊

        搜索模塊通過前端Web頁面接收用戶查詢請求并進(jìn)行相應(yīng)的檢索,這一過程包括用戶查詢信息的解析、查詢分析、以及檢索算法的運(yùn)行。在圖4中,系統(tǒng)的表現(xiàn)層包含了搜索的一般流程,其可總結(jié)為以下3個主要步驟:

        1)查詢請求接收。根據(jù)索引庫的格式定義,本文系統(tǒng)提供了多種檢索方式,用戶可以按題目、作者、日期、摘要等關(guān)鍵詞檢索文檔,也可以對文檔正文進(jìn)行全文檢索。Lucene提供了與、或、非共3種邏輯運(yùn)算,可將查詢字段進(jìn)行邏輯組合;

        2)請求信息預(yù)處理。本文系統(tǒng)采用Spring MVC框架,在將前端的表單信息提交到后端代碼之前,首先應(yīng)用驗(yàn)證機(jī)制把非法數(shù)據(jù)過濾,如輸入為空報錯、輸入信息類型不符等;然后,在進(jìn)行檢索之前,對提交到后端的信息進(jìn)行一定的處理,包括編碼轉(zhuǎn)換、去除空格等;最后,把正確的信息提交給檢索組件進(jìn)行全文檢索運(yùn)算;

        3)文檔檢索。檢索組件接收到提交的信息后,便從其中提取出相應(yīng)的查詢項,調(diào)用索引文件進(jìn)行檢索,并把最終匹配的結(jié)果返回給前端頁面顯示。文檔檢索主要實(shí)現(xiàn)代碼如下,其中,檢索結(jié)果保存于collector對象中:

        4 結(jié)束語

        盡管目前互聯(lián)網(wǎng)搜索引擎已得到迅速發(fā)展和全面普及,信息檢索領(lǐng)域的自然語言處理和全文檢索技術(shù)也逐漸成熟,但企業(yè)內(nèi)部的信息系統(tǒng)仍然停留在基于數(shù)據(jù)庫關(guān)鍵字的檢索階段,或者依賴共享文件庫的文件系統(tǒng)提供的原始搜索功能,無法很好地滿足員工對企業(yè)內(nèi)電子文檔的全文查詢需求。為改善這種狀況,本文深入研究了全文檢索技術(shù)以及開源全文檢索工具Lucene,并以B/S[16]的三層架構(gòu)為基礎(chǔ),重點(diǎn)對文本提取、中文詞劃分、索引和搜索這4個模塊進(jìn)行了設(shè)計與實(shí)現(xiàn),構(gòu)建了基于Lucene的企業(yè)電子文檔搜索系統(tǒng)。系統(tǒng)已在某供電局正式上線運(yùn)行,有效解決了傳統(tǒng)搜索文件方式存在的問題,幫助員工更高效、更準(zhǔn)確和更全面地檢索到所需的電子文檔,節(jié)約了員工查找資料的時間,提高了工作效率,降低了辦公成本。

        [1]魏扣.全文檢索技術(shù)在我國新型公共檔案館建設(shè)中的應(yīng)用[J].北京檔案,2013:11-14.

        [2]劉濤.鐵路物資目錄全文檢索技術(shù)研究[J].鐵道技術(shù)監(jiān)督,2012,40(5):38-41.

        [3]梁苑苑,何婉文,王佳.全文檢索系統(tǒng)在網(wǎng)站中的應(yīng)用研究[J].電腦知識與技術(shù),2012,8(4):842-845.

        [4]王振風(fēng).基于Lucene的分布式全文檢索技術(shù)的研究與應(yīng)用[D].上海:東華大學(xué),2015.

        [5]向禹,吳世明.基于雙層PDF和Lucene技術(shù)的全文檢索研究與實(shí)現(xiàn)[J].現(xiàn)代情報,2014,34(6):75-78.

        [6]吳代文,楊方琦.Lucene在數(shù)據(jù)庫全文檢索中的性能研究[J].微計算機(jī)應(yīng)用,2011,32(6):53-59.

        [7]周敬才,胡華平,岳虹.基于Lucene全文檢索系統(tǒng)的設(shè)計與實(shí)現(xiàn) [J].計算機(jī)工程與科學(xué),2015,37(2):252-256.

        [8]周錦程,王丹,余泉,等.基于Lucene的全文檢索系統(tǒng)的研究與實(shí)現(xiàn) [J].計算機(jī)技術(shù)與發(fā)展,2011,21(3):67-71.

        [9]張琦玉.基于Lucene的應(yīng)用系統(tǒng)內(nèi)部搜索的研究與設(shè)計[D].南京:南京理工大學(xué),2013.

        [10]程蕓蕓.基于企業(yè)搜索引擎重排序的研究與應(yīng)用[D].武漢:武漢理工大學(xué),2014.

        [11]朱崇來.基于Lucene的企業(yè)搜索引擎系統(tǒng)研究與實(shí)現(xiàn)[D].重慶:重慶理工大學(xué),2012.

        [12]胡小玉.大型企業(yè)管理系統(tǒng)中實(shí)時搜索引擎應(yīng)用研究[D].北京:北京郵電大學(xué),2014.

        [13]羅惠峰.基于Lucene的站內(nèi)檢索系統(tǒng)的設(shè)計與優(yōu)化[D].杭州:浙江工業(yè)大學(xué),2015.

        [14]曲哲凝.Lucene中文分詞在電子檔案全文檢索中的應(yīng)用研究[D].大連:大連海事大學(xué),2015.

        [15]邵星星.基于Lucene的中文分詞技術(shù)研究[D].西安:西安電子科技大學(xué),2012.

        [16]廖珊.基于C/S與B/S混合結(jié)構(gòu)的機(jī)房管理系統(tǒng)設(shè)計[J].電子科技,2016(5):172-174.

        Research and development of the enterprise electronic document search system based on Lucene

        LIN Yu-jie,WU Li-xian
        (Foshan Power Supply Bureau,Guangdong Power Grid Limited Corporation,F(xiàn)oshan 528000,China)

        With the development of enterprise informationization,the information resource of enterprises is becoming more and more abundant.The electronic document has become an important form of enterprise information transmission and preservation.It is becoming increasingly important that the employees find the desired content quickly and comprehensively from the mass of electronic documents.In view of the present situation and the insufficiency of the enterprise electronic document search,the full-text retrieval technology and the full-text search tool Lucene are studied and introduced into the system development.Based on the mainstream B/S architecture,the text extraction module,the Chinese word segmentation module,the indexing module and the searching module are designed and implemented,and an enterprise electronic document search system based on Lucene is constructed.It is shown that the system provides an efficient way of electronic document retrieval for enterprise employees,improves the work efficiency and the system user experience,and enhances the level of enterprise information.

        Lucene; full-text retrieval; electronic document; enterprise search engine

        TN99

        A

        1674-6236(2017)17-0102-05

        2016-07-21稿件編號:201607157

        林鈺杰(1987—),男,廣東佛山人,碩士研究生,工程師。研究方向:信息系統(tǒng)開發(fā)和管理、營配信息集成。

        猜你喜歡
        文本系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        初中群文閱讀的文本選擇及組織
        甘肅教育(2020年8期)2020-06-11 06:10:02
        基于PowerPC+FPGA顯示系統(tǒng)
        在808DA上文本顯示的改善
        半沸制皂系統(tǒng)(下)
        基于doc2vec和TF-IDF的相似文本識別
        電子制作(2018年18期)2018-11-14 01:48:06
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
        国产剧情av麻豆香蕉精品| 国产精品亚洲片夜色在线| 经典女同一区二区三区| 日本综合视频一区二区| 粗大的内捧猛烈进出小视频| 亚洲国产精品久久久久秋霞影院| 国产情侣一区在线| 亚洲国产精品av麻豆一区| 久久久久亚洲av成人人电影| 成人妇女免费播放久久久| 免费国产黄线在线播放| 99国语激情对白在线观看| 狠狠综合亚洲综合亚洲色| 无码精品日韩中文字幕| 99久久超碰中文字幕伊人| 美女福利视频在线观看网址| 国产精品美女久久久网av| 全部孕妇毛片| 日韩av中出在线免费播放网站| 亚洲精品一区二区三区新线路| 欧美黑人又大又粗xxxxx| 3344永久在线观看视频| 国产裸体AV久无码无遮挡| 亚洲中文字幕精品视频| 一本久久a久久精品vr综合| 无码专区中文字幕DVD| 一区二区三区四区日韩亚洲| 男女男精品视频网站免费看| 蜜臀av 国内精品久久久| 狠狠干视频网站| av国产自拍在线观看| 无码av不卡一区二区三区| 亚洲中久无码永久在线观看软件 | 久久人妻少妇嫩草av蜜桃| 大胸美女吃奶爽死视频| 亚洲中文字幕九色日本| 欧美一区二区三区久久综| 亚洲国产麻豆综合一区| 亚洲熟妇少妇69| 国产99久久精品一区| 国产一区二区三区三区四区精品|