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

        ?

        基于Lucene全文檢索的設(shè)計(jì)與實(shí)現(xiàn)

        2013-12-31 00:00:00李麗枝陶振凱

        摘 要:針對(duì)工建設(shè)領(lǐng)域信息公開(kāi)系統(tǒng)信息檢索的需求,在Lucene的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了近實(shí)時(shí)的全文檢索系統(tǒng),核心模塊包括語(yǔ)言處理模塊、索引管理模塊和檢索模塊。通過(guò)研究Lucene的內(nèi)部原理,對(duì)中文分詞IKAnalyser擴(kuò)展同義詞。

        關(guān)鍵詞:Lucene;全文檢索;近實(shí)時(shí)

        中圖分類(lèi)號(hào):TP391.3;TP393.092

        近年來(lái),政府積極增加工程建設(shè)領(lǐng)域信息公開(kāi)透明度。在工程建設(shè)領(lǐng)域項(xiàng)目信息和信用信息公開(kāi)共享系統(tǒng)中,可以獲得任一項(xiàng)目信息和信用信息。面對(duì)巨大的信息,為用戶(hù)提供快速準(zhǔn)確的檢索到所需有效信息的方法非常必要。

        目前,常見(jiàn)的大型搜索引擎[1]有Google,Baidu,Yahoo等,但這種搜索引擎并不適應(yīng)于中小型的站內(nèi)搜索。傳統(tǒng)數(shù)據(jù)庫(kù)的索引的更新會(huì)導(dǎo)致大量的I/O操作,且不能索引附件,而由Doug Cutting設(shè)計(jì)開(kāi)發(fā)的開(kāi)源搜索引擎Lucene的目標(biāo)是為各種中小型應(yīng)用程序加入全文檢索功能,Lucene不是一個(gè)完整的全文索引應(yīng)用,而是一個(gè)引擎工具包,它可以方便的嵌入到各種應(yīng)用中實(shí)現(xiàn)針對(duì)應(yīng)用的全文檢索功能。

        1 開(kāi)源全文檢索引擎Lucene

        Lucene是一個(gè)高效可擴(kuò)展的全文檢索庫(kù),用Java實(shí)現(xiàn),無(wú)須配置, 僅支持純文本文件的索引和搜索,不負(fù)責(zé)由其他格式的文件抽取純文本文件,或從網(wǎng)絡(luò)中抓取文件的過(guò)程。

        Lucene源碼中共包括7個(gè)模塊[2],其中主要的有analysis模塊主要負(fù)責(zé)詞法分析及語(yǔ)言處理而形成Term;index模塊主要負(fù)責(zé)索引的創(chuàng)建;store模塊主要負(fù)責(zé)索引的讀寫(xiě);QueryParser主要負(fù)責(zé)語(yǔ)法分析;search模塊主要負(fù)責(zé)對(duì)索引的搜索;similarity模塊主要負(fù)責(zé)對(duì)相關(guān)性打分的實(shí)現(xiàn)。

        Lucene有索引和檢索的兩個(gè)過(guò)程,包含索引創(chuàng)建,索引,檢索三個(gè)要點(diǎn)。

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

        系統(tǒng)采用B/S三層架構(gòu),開(kāi)發(fā)框架采用SSH框架,開(kāi)發(fā)工具是Myeclipse 6.0,Tomcat 5.5和SQL Server 2005。系統(tǒng)核心模塊包括語(yǔ)言處理模塊、索引管理模塊和檢索模塊。

        2.1 語(yǔ)言處理模塊

        Lucene的檢索過(guò)程是將輸入的關(guān)鍵詞與已建好的索引匹配,索引使文章的關(guān)鍵詞與文章建立了對(duì)應(yīng)關(guān)系,而分詞器就是用于切分文章得到關(guān)鍵詞的工具。

        Lucene分詞的流程為:

        由Reader讀入數(shù)據(jù)流,Tokenizer 將數(shù)據(jù)流轉(zhuǎn)換為語(yǔ)匯單元,TokenFilter對(duì)語(yǔ)匯單元進(jìn)行過(guò)濾操作,最后得到TokenStream。

        Lucene并未提供很好的中文分詞,本系統(tǒng)采用第三方分詞器IKAnalyser[3],并對(duì)其擴(kuò)展同義詞查詢(xún)。同義詞詞庫(kù)以.dic文件保存,每行兩個(gè)詞以逗號(hào)隔開(kāi),將.dic文件按行讀入后以map(key,value)形式存放。利用map.get(String token)檢查tokenStream中詞元是否有同義詞,如果有則存入棧內(nèi),保存當(dāng)前詞元的信息,清空保存詞元的變量CharTermAttribute,將同義詞加入其中,同時(shí)將詞與詞的位置增量設(shè)為0,即setPositionIncrement(0),從而實(shí)現(xiàn)將同義詞加入到tokenStream中。

        2.2 索引管理模塊

        該模塊實(shí)現(xiàn)索引建立和索引的管理。提供更新、刪除、添加和重構(gòu)索引的功能。重構(gòu)索引是對(duì)索引進(jìn)行刪除和重新建立并提供手動(dòng)和定時(shí)執(zhí)行兩種方式。

        用戶(hù)總希望實(shí)時(shí)檢索到更新后的信息,即數(shù)據(jù)發(fā)生變化后,需由writer.commit()提交索引寫(xiě)入硬盤(pán),但該函數(shù)會(huì)隨著索引的增加效率越來(lái)越低。Lucene提供的近實(shí)時(shí)檢索是由NRTManager來(lái)管理一切,當(dāng)更新數(shù)據(jù)后,先將索引保存到內(nèi)存,在某個(gè)時(shí)間提交內(nèi)存中索引,寫(xiě)入硬盤(pán),檢索時(shí)直接檢索內(nèi)存。NRTManager的getSearcherManager(true)方法獲取線程安全的SearcherManager來(lái)管理IndexSearcher,當(dāng)索引更新時(shí),需要重新獲取IndexSearcher,SearcherManager每隔一小段時(shí)間執(zhí)行maybereopen()重新讀取已更新的索引,從而實(shí)現(xiàn)了近實(shí)時(shí)的全文檢索。

        圖1是建立索引的流程圖,IndexField存儲(chǔ)建立索引的字段,field2doc()實(shí)現(xiàn)將IndexField轉(zhuǎn)換為L(zhǎng)ucene可處理類(lèi)型Document,TempIndex記錄暫存于內(nèi)存中還未寫(xiě)入硬盤(pán)的索引,以免發(fā)生意外,導(dǎo)致信息不一致。

        2.3 檢索模塊

        由語(yǔ)言處理模塊對(duì)用戶(hù)輸入的關(guān)鍵詞進(jìn)行處理得到一系列term,將索引讀入內(nèi)存,通過(guò)檢索模塊檢索,得到每個(gè)term的文檔鏈表,對(duì)文檔鏈表進(jìn)行交、差操作,得到結(jié)果文檔,而后按相關(guān)度和時(shí)間排序并向用戶(hù)分頁(yè)顯示查詢(xún)結(jié)果。

        圖2是檢索流程圖,scoreAfter(ScoreDoc scoreDoc,Query query,int viewNum)實(shí)現(xiàn)分頁(yè)顯示,scoreDoc獲得當(dāng)前頁(yè)的第一條結(jié)果,query實(shí)現(xiàn)多字段查詢(xún),viewNum是頁(yè)面顯示結(jié)果條數(shù)。Index封裝jsp頁(yè)面要顯示的字段,標(biāo)題title、內(nèi)容摘要content、發(fā)布人creatorName、發(fā)布單位chushiName、發(fā)布時(shí)間createTime、類(lèi)型type。

        3 總結(jié)

        本文采用Lucene技術(shù)結(jié)合實(shí)際需求,實(shí)現(xiàn)了基于Lucene的全文檢索系統(tǒng),主要模塊包括語(yǔ)言處理模塊、索引管理模塊和檢索模塊。本文不足之處是,限于實(shí)際硬件條件和數(shù)據(jù)量,本系統(tǒng)還需要進(jìn)行優(yōu)化。

        參考文獻(xiàn):

        [1]張蕾.基于Lucene的站內(nèi)電子檔案檢索系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012,4.

        [2]勞志佳.J基于Lucene 3.5搜索技術(shù)的研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2012,2.

        [3]義天鵬,陳啟安.基于Lucene的中文分析器分詞性能比較研究[J].計(jì)算機(jī)工程,2012,11.

        作者簡(jiǎn)介:李麗枝(1987.5.17-),女,河北省無(wú)極縣人,碩士研究生,研究方向:數(shù)據(jù)庫(kù)理論與信息系統(tǒng)。

        作者單位:沈陽(yáng)理工大學(xué),沈陽(yáng) 110168;遼寧省信息中心,沈陽(yáng) 110002

        亚洲精品无码乱码成人| 区一区二区三区四视频在线观看 | av手机在线观看不卡| 亚洲男同gay在线观看| 天堂在线www中文| caoporon国产超碰公开| 高清中文字幕一区二区三区| 亚洲av综合一区二区在线观看| 日本护士吞精囗交gif| 国产精品一区二区三级| 成人影院视频在线播放| 中文字幕人成乱码熟女| 欧美mv日韩mv国产网站| 久久夜色精品国产噜噜噜亚洲av| av网站免费观看入口| 亚洲精品第一国产综合精品 | 狼狼综合久久久久综合网| 无码国产激情在线观看| 日韩肥熟妇无码一区二区三区| 亚洲一区二区三区av资源| 亚洲小说图区综合在线| 国产欧美日韩专区| 99国产精品欲av麻豆在线观看| 黄色av一区二区在线观看| 午夜成人无码福利免费视频| 日韩最新在线不卡av| 国产自拍av在线观看| 久久婷婷五月综合97色一本一本| 婷婷综合久久中文字幕蜜桃三电影| 亚洲高清在线观看免费视频| 亚洲香蕉av一区二区三区| 日韩吃奶摸下aa片免费观看| 超碰Av一区=区三区| 美女被强吻并脱下胸罩内裤视频| a级国产乱理伦片| 精品久久综合亚洲伊人| 日本中文字幕一区二区在线观看| 在线视频观看国产色网| 99久久精品费精品国产一区二区| 99久久亚洲国产高清观看| 小池里奈第一部av在线观看|