基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng),屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。采用一級(jí)索引的方式和Lucene搜索引擎實(shí)現(xiàn)光盤(pán)庫(kù)全文檢索系統(tǒng)。從本地文件系統(tǒng)中提取信息資源,通過(guò)構(gòu)造索引庫(kù),構(gòu)造分析器,構(gòu)造索引創(chuàng)建器,為獲取的文件數(shù)據(jù)建立索引,對(duì)文件的內(nèi)容信息進(jìn)行分詞處理等一系列操作為數(shù)據(jù)創(chuàng)建索引。根據(jù)獲取的用戶(hù)輸入的檢索信息,對(duì)其進(jìn)行關(guān)鍵詞拆分,得到關(guān)鍵詞。通過(guò)檢索器對(duì)關(guān)鍵詞進(jìn)行檢索,并對(duì)檢索的結(jié)果進(jìn)行過(guò)濾,獲得檢索結(jié)果集。通過(guò)索引獲得關(guān)鍵詞在磁盤(pán)文件的信息列表,用戶(hù)通過(guò)光盤(pán)庫(kù)管理系統(tǒng)操作該信息列表,讀取對(duì)應(yīng)的文本信息。所以,只需要輸入關(guān)鍵詞,就能獲取關(guān)鍵詞在整個(gè)光盤(pán)上哪些文件上出現(xiàn)過(guò),并獲取與關(guān)鍵詞相關(guān)的信息。用戶(hù)可在任意平臺(tái)操作,有效解決了基于超大存儲(chǔ)設(shè)備的檢索困難問(wèn)題。
【專(zhuān)利說(shuō)明】
基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種面向光盤(pán)庫(kù)的全文檢索系統(tǒng),屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]Lucene是一套用于全文檢索和搜尋的開(kāi)源程式庫(kù),由Apache軟件基金會(huì)支持和提供。它提供了一個(gè)簡(jiǎn)單卻強(qiáng)大的應(yīng)用程式接口,能夠做全文索引和搜尋。Lucene作為一個(gè)全文檢索引擎,其具有如下突出的優(yōu)點(diǎn):
[0003](I)索引文件格式獨(dú)立于應(yīng)用平臺(tái)lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件。
[0004](2)在傳統(tǒng)全文檢索引擎的倒排索引的基礎(chǔ)上,實(shí)現(xiàn)了分塊索引,能夠針對(duì)新的文件建立小文件索引,提升索引速度。然后通過(guò)與原有索引的合并,達(dá)到優(yōu)化的目的。
[0005](3)優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),使得對(duì)于Lucene擴(kuò)展的學(xué)習(xí)難度降低,方便擴(kuò)充新功能。
[0006](4)設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,索引器通過(guò)接受Token流完成索引文件的創(chuàng)立,用戶(hù)擴(kuò)展新的語(yǔ)言和文件格式,只需要實(shí)現(xiàn)文本分析的接口。
[0007](5)已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查詢(xún)引擎,用戶(hù)無(wú)需自己編寫(xiě)代碼即可使系統(tǒng)可獲得強(qiáng)大的查詢(xún)能力,Lucene的查詢(xún)實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢(xún)、分組查詢(xún)等。
[0008]更重要的是,在Java開(kāi)發(fā)環(huán)境里L(fēng)ucene是一個(gè)成熟的免費(fèi)開(kāi)源工具,任何人都可以根據(jù)應(yīng)用的實(shí)際情況編寫(xiě)出更適合當(dāng)前應(yīng)用的全文檢索引擎,其跨平臺(tái)性也是面向光盤(pán)庫(kù)系統(tǒng)得以使用的重要原因。
[0009]綜上,將光盤(pán)庫(kù)管理系統(tǒng)與Lucene全文檢索引擎結(jié)合可以實(shí)現(xiàn)光盤(pán)庫(kù)的全文檢索系統(tǒng)。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的是為了解決現(xiàn)有光盤(pán)庫(kù)管理系統(tǒng)無(wú)法實(shí)現(xiàn)光盤(pán)庫(kù)全文檢索的問(wèn)題,提出一種基于Lucene實(shí)現(xiàn)的光盤(pán)庫(kù)的全文檢索系統(tǒng)。
[0011 ]本發(fā)明的目的是通過(guò)下述技術(shù)方案實(shí)現(xiàn)的。
[0012]—種基于Lucene實(shí)現(xiàn)的光盤(pán)庫(kù)全文檢索系統(tǒng),包括如下步驟:
[0013]步驟ULucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件,因而可為要存入光盤(pán)庫(kù)的文件建立索引文件。
[0014]步驟2、LuCene在傳統(tǒng)全文檢索引擎的倒排索引的基礎(chǔ)上,實(shí)現(xiàn)了分塊索引,能夠針對(duì)新的文件建立小文件索引,提升索引速度??蓪?shí)現(xiàn)光盤(pán)庫(kù)索引文件的追加,通過(guò)與原有索引的合并,達(dá)到優(yōu)化的目的。
[0015]步驟3、Lucene的查詢(xún)實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢(xún)、分組查詢(xún)等,可根據(jù)索弓I文件對(duì)光盤(pán)庫(kù)中的文件進(jìn)行全文檢索。
[0016]本發(fā)明的一種基于Lucene實(shí)現(xiàn)的光盤(pán)庫(kù)全文檢索系統(tǒng)與現(xiàn)有的技術(shù)相比,具有以下優(yōu)點(diǎn):
[0017]1、索引文件的建立速度快。
[0018]2、索引文件可以建立在磁盤(pán)上,避免占用光盤(pán)的存儲(chǔ)空間。
[0019]3、本發(fā)明直接以文件的形式將數(shù)據(jù)存入光盤(pán)庫(kù)中,直接對(duì)光盤(pán)庫(kù)的文件進(jìn)行操作而并不是通過(guò)數(shù)據(jù)庫(kù)文件進(jìn)行存儲(chǔ)和檢索,降低了數(shù)據(jù)存儲(chǔ)和光盤(pán)庫(kù)操作的復(fù)雜性。
[0020]4、檢索方法簡(jiǎn)單易行,檢索速度快。
【附圖說(shuō)明】
[0021]圖1是本發(fā)明利用基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng)在磁盤(pán)上直接建立文件索引的方法流程圖;
[0022]圖2是本發(fā)明利用基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng)通過(guò)磁盤(pán)索引文件直接查詢(xún)與關(guān)鍵詞相關(guān)的文件信息的方法流程圖。
[0023]圖3是本發(fā)明利用基于Lucene的光盤(pán)庫(kù)全文檢索的系統(tǒng)實(shí)現(xiàn)用戶(hù)刻錄文件操作方法的流程圖。
【具體實(shí)施方式】
[0024]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做詳細(xì)說(shuō)明。
[0025]—種基于Lucene的面向光盤(pán)庫(kù)的全文檢索系統(tǒng),包括索引文件的建立和關(guān)鍵詞檢索。
[0026]實(shí)施例
[0027]1.如圖1所示,利用基于光盤(pán)庫(kù)的全文檢索系統(tǒng)在磁盤(pán)上直接建立光盤(pán)文件倒排索引的方法,步驟如下:
[0028]步驟11從本地文件系統(tǒng)中提取文本信息資源或其它類(lèi)型的文件資源,作為全文檢索的目標(biāo)。
[0029]步驟12構(gòu)造索引庫(kù)Directory。在本地文件系統(tǒng)中找到索引文件存放的位置,設(shè)置為索引庫(kù)的位置,也即索引存入的位置。
[°03°] 步驟13構(gòu)造分析器Analyzer。用于對(duì)文件信息進(jìn)行分詞處理。
[0031]步驟14構(gòu)造索引創(chuàng)建器Indexffriter。索引創(chuàng)建器所創(chuàng)建的文件索引存放到索引庫(kù)的位置,如果索引庫(kù)中沒(méi)有索引,則索引創(chuàng)建的方式為新建方式;否則設(shè)置為追加方式。
[0032]步驟15為獲取的文件數(shù)據(jù)建立索引,根據(jù)不同的文件類(lèi)型創(chuàng)建相應(yīng)的文檔描述Document,并設(shè)置相應(yīng)屬性域Fi led的內(nèi)容,如文件名、文件路徑、文件內(nèi)容。
[0033]步驟16對(duì)文件的內(nèi)容信息進(jìn)行分詞處理,然后通過(guò)索引構(gòu)造器將文件的索引內(nèi)容寫(xiě)入到索引庫(kù)中。
[0034]2.如圖2所示,利用基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng)通過(guò)磁盤(pán)索引文件直接檢索關(guān)鍵詞所在文件信息的方法,步驟如下:
[0035]步驟21構(gòu)造檢索器IndexSearcher,以只讀的方式打開(kāi)索引文件用于檢索。
[0036]步驟22構(gòu)造分析器Analyzer,用于構(gòu)造查詢(xún)條件。
[0037]步驟23獲取用于檢索文件的關(guān)鍵詞信息。
[0038]步驟24構(gòu)造查詢(xún)條件Query,設(shè)置所要查詢(xún)的屬性域。
[0039]步驟25構(gòu)造過(guò)濾器Filter,用于對(duì)檢索的結(jié)果進(jìn)行過(guò)濾。
[0040]步驟26利用查詢(xún)條件,通過(guò)檢索器進(jìn)行檢索,并對(duì)檢索的結(jié)果進(jìn)行過(guò)濾,獲得檢索結(jié)果集TopDocs。
[0041]步驟27通過(guò)結(jié)果集獲取檢索到的文件對(duì)應(yīng)的文檔描述,通過(guò)檢索器讀取文檔描述中對(duì)應(yīng)屬性域的內(nèi)容,如文件內(nèi)容信息,文件名信息。
[0042]步驟28通過(guò)檢索獲得的文件信息,通過(guò)光盤(pán)庫(kù)管理系統(tǒng)對(duì)文件進(jìn)行操作,實(shí)現(xiàn)打開(kāi)或下載。
[0043]3.如圖3所示,利用基于Lucene的光盤(pán)庫(kù)全文檢索的系統(tǒng)實(shí)現(xiàn)用戶(hù)刻錄文件操作方法,步驟如下:
[0044]步驟31在Opensuse平臺(tái)上進(jìn)行操作,將需要進(jìn)行刻錄的文件導(dǎo)入Opensuse平臺(tái)上。
[0045]步驟32用戶(hù)添加需要刻錄的文件。
[0046]步驟32用戶(hù)對(duì)添加的文件進(jìn)行確認(rèn),可進(jìn)行刪除和再次添加的操作。
[0047]步驟33在用戶(hù)確認(rèn)進(jìn)行刻錄后,將需要導(dǎo)入光盤(pán)庫(kù)的文件復(fù)制到刻錄的目錄下,等待固定的一段時(shí)間。
[0048]步驟34全文檢索系統(tǒng)調(diào)用光盤(pán)庫(kù)管理系統(tǒng)刻錄功能。
[0049]步驟35光盤(pán)庫(kù)管理系統(tǒng)對(duì)文件進(jìn)行刻錄。
[0050]綜上所述,以上僅為本發(fā)明的實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于Lucene的光盤(pán)庫(kù)全文檢索系統(tǒng),其特征在于:包括索引文件建立及關(guān)鍵詞檢索; 其中文件索引建立包含從本地文件系統(tǒng)中提取信息資源,通過(guò)構(gòu)造索引庫(kù),構(gòu)造分析器,構(gòu)造索引創(chuàng)建器,為獲取的文件數(shù)據(jù)建立索引,對(duì)文件的內(nèi)容信息進(jìn)行分詞處理等一系列操作為數(shù)據(jù)創(chuàng)建索引。 關(guān)鍵詞檢索包含根據(jù)獲取的用戶(hù)輸入的檢索信息,對(duì)其進(jìn)行關(guān)鍵詞拆分,得到關(guān)鍵詞。通過(guò)檢索器對(duì)關(guān)鍵詞進(jìn)行檢索,并對(duì)檢索的結(jié)果進(jìn)行過(guò)濾,獲得檢索結(jié)果集。通過(guò)索引獲得關(guān)鍵詞在磁盤(pán)文件的信息列表,用戶(hù)通過(guò)光盤(pán)庫(kù)管理系統(tǒng)操作該信息列表,讀取對(duì)應(yīng)的文本信息。
【文檔編號(hào)】G06F17/30GK106055546SQ201510640451
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2015年10月8日
【發(fā)明人】劉清閣, 宋丹丹, 高宗成
【申請(qǐng)人】北京慧存數(shù)據(jù)科技有限公司