賈曉霞(神木職業(yè)技術(shù)學(xué)院 公共課教學(xué)部, 陜西 榆林 719300)
大數(shù)據(jù)發(fā)展的時(shí)代下,網(wǎng)絡(luò)中的數(shù)據(jù)信息量迅速增多,因此動(dòng)態(tài)檢索系統(tǒng)隨之出現(xiàn),為了推動(dòng)海量數(shù)據(jù)信息動(dòng)態(tài)檢索系統(tǒng)的優(yōu)化與發(fā)展,引入Lucene全文檢索工具,其中網(wǎng)絡(luò)資源索引信息的全文搜索是以數(shù)據(jù)庫(kù)中的海量文獻(xiàn)信息作為檢索對(duì)象,通過(guò)設(shè)置的檢索目標(biāo),實(shí)現(xiàn)對(duì)海量網(wǎng)絡(luò)資源的檢索[1]。Lucene全文檢索工具不是一個(gè)完整的全文搜索引擎,而是一個(gè)引擎框架,根據(jù)該框架構(gòu)建一個(gè)完整的檢索引擎,還有許多工作要做。國(guó)外對(duì)于Lucene全文檢索工具的應(yīng)用較早,經(jīng)調(diào)查,Lucene檢索系統(tǒng)最早出現(xiàn)于1940年美國(guó)人口數(shù)據(jù)普查中,該系統(tǒng)面對(duì)海量的人口信息數(shù)據(jù),利用識(shí)別技術(shù)改進(jìn)Lucene的檢索功能,實(shí)現(xiàn)對(duì)人口信息的檢索。同時(shí)對(duì)比國(guó)內(nèi),對(duì)Lucene動(dòng)態(tài)檢索系統(tǒng)的研究與設(shè)計(jì)還處于探索階段,但隨著近些年來(lái)的不斷探究與分析,我國(guó)Lucene動(dòng)態(tài)檢索系統(tǒng)的設(shè)計(jì)也取得了不錯(cuò)的成績(jī)。當(dāng)前階段,文獻(xiàn)[2]所提到的Lucene動(dòng)態(tài)檢索系統(tǒng),通過(guò)分析Lucene的索引方法,設(shè)計(jì)該檢索系統(tǒng)的動(dòng)態(tài)檢索程序,但隨著大數(shù)據(jù)發(fā)展,該系統(tǒng)的應(yīng)用已經(jīng)存在檢索漏洞,因此設(shè)計(jì)一個(gè)全新的Lucene的網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)[2]是很有必要的。重新設(shè)計(jì)該系統(tǒng)的意義,就在于滿足人們對(duì)網(wǎng)絡(luò)資源的需求,通過(guò)更加完整的系統(tǒng)檢索,得到與需求更加匹配的索引信息,所以設(shè)計(jì)一個(gè)穩(wěn)定的、高效的和全面的檢索系統(tǒng)勢(shì)在必行。
Lucene作為一個(gè)全文檢索引擎的架構(gòu),要想將其完全應(yīng)用于網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)中,需要開(kāi)發(fā)者在Lucene的基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),已知Lucene向檢索系統(tǒng)提供了分析接口、索引引擎、存儲(chǔ)管理和查詢引擎。Lucene 的核心邏輯架構(gòu)[3],如圖1所示。
圖1 Lucene核心邏輯架構(gòu)
由圖1可知,查詢者通過(guò)查詢語(yǔ)句搜索到查詢結(jié)果,再把待索引文件進(jìn)行索引,保存得到的結(jié)果;或者檢查者直接對(duì)待索引文件進(jìn)行分析,通過(guò)對(duì)外接口發(fā)送消息,其中基礎(chǔ)結(jié)構(gòu)包括文件和工具包,根據(jù)邏輯圖我們可以看到,Lucene運(yùn)行時(shí),各個(gè)模塊之間的調(diào)用關(guān)系,其中接口模塊,通過(guò)語(yǔ)法分析器分析索引文本,并結(jié)合基礎(chǔ)結(jié)構(gòu)公共模塊,將分析后的數(shù)據(jù)寫入索引文件中,使用者進(jìn)行查詢時(shí),通過(guò)接口模塊將查詢語(yǔ)句發(fā)送到索引核心模塊,通過(guò)讀取索引文件中的數(shù)據(jù),得到檢索結(jié)果,并執(zhí)行反饋操作。
Lucene的網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng),其整體框架由三部分組成,頁(yè)面層、控制層和數(shù)據(jù)庫(kù)層,如圖2所示[4]。
圖2 系統(tǒng)整體框架
以中間控制層為核心,通過(guò)Lucene連接頁(yè)面層和數(shù)據(jù)層,實(shí)現(xiàn)索引信息的全區(qū)域檢索。
為了保證在海量信息中,可以無(wú)間斷、高效、快速獲取檢索結(jié)果,需要設(shè)計(jì)網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)硬件,通過(guò)改變?cè)袡z索系統(tǒng)中的部分硬件設(shè)備,提升檢索系統(tǒng)的穩(wěn)定性。而檢索系統(tǒng)硬件的選擇,自然想到了通過(guò)改變系統(tǒng)硬件的并行度,提高系統(tǒng)檢索效率。已知檢索系統(tǒng)會(huì)存在多個(gè)子系統(tǒng)并行檢索信息的情況,根據(jù)這些被劃分成多個(gè)子模塊的檢索任務(wù),重新選取若干個(gè)功能更好的處理器與檢索系統(tǒng)建立連接,該處理器共有64位,可以對(duì)同步進(jìn)行的子任務(wù)執(zhí)行加速操作。重新選擇的處理器,與計(jì)算機(jī)連接后的實(shí)物圖[5],如圖3所示。
圖3 處理器實(shí)物圖
該處理器為每一子模塊之間、子模塊與索引信息之間的信息檢索,提供高效的反應(yīng)速度,同時(shí)在該處理器的連接下,保證系統(tǒng)其它硬件之間的數(shù)據(jù)傳遞,不會(huì)在信息傳送途中遺漏關(guān)鍵信息,可以為檢索系統(tǒng)的實(shí)時(shí)檢索提供更加嚴(yán)謹(jǐn)?shù)募夹g(shù)支持。
由于網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)所需的支持硬件不多,因此只需將處理器改進(jìn)即可。在此基礎(chǔ)上,對(duì)網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)軟件展開(kāi)設(shè)計(jì)。
網(wǎng)絡(luò)資源是面向普羅大眾的,雖然其知識(shí)專業(yè)性不強(qiáng),但由于涵蓋的知識(shí)范圍廣,知識(shí)點(diǎn)數(shù)據(jù)量大因此檢索不易。對(duì)于設(shè)計(jì)網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)軟件,應(yīng)該設(shè)計(jì)網(wǎng)絡(luò)資源分詞方式[6]。中文分詞是Lucene全文檢索中核心的處理步驟,當(dāng)對(duì)網(wǎng)絡(luò)資源進(jìn)行索引和搜索時(shí),都會(huì)需要進(jìn)行中文分詞。設(shè)計(jì)的分詞方式,通過(guò)分析用戶輸入的關(guān)鍵詞,得出檢索目標(biāo)。設(shè)K=k1,k2,…,kn為待切分的網(wǎng)絡(luò)資源字符串,其中ki(n=1,2,…,n)為字符串中的單個(gè)漢字字符,假設(shè){k1k2}、{k2…kj}是待檢索數(shù)據(jù)庫(kù)中的字串,存在約束條件n≥j≥4,利用最大匹配法進(jìn)行第一次切分,如式(1)。
(1)
式中,K2為數(shù)據(jù)庫(kù)中相似的網(wǎng)絡(luò)資源字符串[7]。此時(shí)最長(zhǎng)的詞{k2…kj}并沒(méi)有被單獨(dú)切分,假設(shè)待切分網(wǎng)絡(luò)資源字符串的長(zhǎng)度為n,數(shù)據(jù)庫(kù)中的字符串,其中最長(zhǎng)句段的長(zhǎng)度為i,利用歸左原則進(jìn)行切分,提取網(wǎng)絡(luò)資源字段中的前i個(gè)字,將它與檢索數(shù)據(jù)庫(kù)中的詞條分別進(jìn)行匹配,當(dāng)沒(méi)有語(yǔ)句與當(dāng)前的字符串匹配時(shí),則取第2個(gè)到第i+1個(gè)字符重復(fù)上述步驟[8]。當(dāng)出現(xiàn)匹配成功字樣時(shí),將成功的字符串從一個(gè)句子中,單獨(dú)切分出去,將其作為一個(gè)獨(dú)立的檢索目標(biāo),同時(shí)將原句中,除了該詞之外的語(yǔ)句組成新的句式結(jié)構(gòu),繼續(xù)進(jìn)行匹配。若匹配i長(zhǎng)度字串均失敗,則對(duì)匹配長(zhǎng)度為i-1的詞,重復(fù)此步驟,直到網(wǎng)絡(luò)資源的整個(gè)句子被完全切分[9-10]。下面所示部分的代碼,為設(shè)計(jì)網(wǎng)絡(luò)資源分詞方式的關(guān)鍵步驟代碼。
Dispart( K[0], K[n-1] ) {
for(int j=maxlength; j>=1; j--)
{
for(int i=0; i { if(match( K[i], j)) { stringDispart(K[i], j); if(i>0) Dispart( K[0], K[i-1] ); else if(i+j Dispart( K[i+j+1], K[n-1] ); } 根據(jù)上述代碼,設(shè)計(jì)網(wǎng)絡(luò)資源在進(jìn)行動(dòng)態(tài)檢索之前,對(duì)于語(yǔ)句的分詞方式,為檢索數(shù)據(jù)庫(kù)中的海量網(wǎng)絡(luò)資源的動(dòng)態(tài)檢索,提供目標(biāo)。 影響檢索速度的兩個(gè)關(guān)鍵信息,一個(gè)是檢索目標(biāo)的確認(rèn),另一個(gè)是對(duì)同類網(wǎng)絡(luò)資源索引信息的合并優(yōu)化,因此利用Lucene設(shè)計(jì)索引信息的動(dòng)態(tài)檢索。首先對(duì)與檢索目標(biāo)的位置確認(rèn)優(yōu)化設(shè)計(jì),要確定檢索數(shù)據(jù)庫(kù)中檢索目標(biāo)在標(biāo)題處位置權(quán)重[11-12],如式(2)。 ωa∈q,title=μσa∈q,title (2) 式中,a表示檢索目標(biāo);q表示檢索數(shù)據(jù)庫(kù)中,所有網(wǎng)絡(luò)資源索引信息;ωa∈q,title表示檢索目標(biāo)在查詢標(biāo)題中的位置權(quán)重;μ表示檢索目標(biāo)在標(biāo)題中的出現(xiàn)頻次;σa∈q,title表示檢索目標(biāo)的詞量數(shù)目。其次還要確定檢索目標(biāo)在正文位置中的出現(xiàn)權(quán)重[13-14],如式(3)。 (3) 式中,m表示檢索目標(biāo)在正文中的出現(xiàn)頻次;ωa∈q,text表示檢索目標(biāo)在正文中的位置權(quán)重;σa∈q,text表示檢索目標(biāo)的詞量數(shù)目;|f|表示待檢索數(shù)據(jù)庫(kù)中的特征詞總數(shù)。根據(jù)上述公式所獲結(jié)果,設(shè)計(jì)海量數(shù)據(jù)信息下,Lucene對(duì)索引信息的全文動(dòng)態(tài)檢索,如圖4所示。 圖4 Lucene對(duì)索引信息的動(dòng)態(tài)檢索方案 由圖4可知,對(duì)待索引數(shù)據(jù)進(jìn)行信息提取,得到數(shù)據(jù)字符串,將字符串進(jìn)行分詞寫入索引文件,再讀取索引,通過(guò)搜索索引確定是否合并,如果是,進(jìn)行相關(guān)性排序,得到檢索結(jié)果;對(duì)于科普文獻(xiàn)索引信息,先進(jìn)行分詞,再搜索索引,確定是否合并,如果是,則重復(fù)上述操作。按照檢索目標(biāo)在標(biāo)題處的位置權(quán)重、以及在正文位置中出現(xiàn)的權(quán)重,完成對(duì)檢索目標(biāo)的加載設(shè)置;同時(shí)利用Lucene進(jìn)行數(shù)據(jù)檢測(cè),根據(jù)得到的子類數(shù)據(jù),自動(dòng)執(zhí)行同類網(wǎng)絡(luò)資源索引信息合并,至此Lucene的網(wǎng)絡(luò)資源索引信息動(dòng)態(tài)檢索系統(tǒng)設(shè)計(jì)完畢[15-16]。 搭建實(shí)驗(yàn)測(cè)試環(huán)境,檢測(cè)此次設(shè)計(jì)的檢索系統(tǒng),和文獻(xiàn)[2]所設(shè)計(jì)的系統(tǒng)的檢索差異。已知實(shí)驗(yàn)測(cè)試環(huán)境的選擇,會(huì)直接影響所設(shè)計(jì)系統(tǒng)的功能和效率,因此需要注意實(shí)驗(yàn)測(cè)試環(huán)境中的硬件選擇,保證實(shí)驗(yàn)測(cè)試環(huán)境中的測(cè)試硬件與兩個(gè)系統(tǒng)可以兼容。 由于網(wǎng)絡(luò)資源數(shù)量龐大,特選取其中的科普文獻(xiàn)作為參照。選取一個(gè)科普文獻(xiàn)查詢網(wǎng)站Z,將其作為實(shí)驗(yàn)測(cè)試對(duì)象來(lái)源網(wǎng)站,對(duì)其中的6種網(wǎng)絡(luò)資源進(jìn)行動(dòng)態(tài)檢索。該網(wǎng)站的初始登錄頁(yè)面,如圖5所示。 圖5 網(wǎng)絡(luò)資源中科普類網(wǎng)站登錄界面 為保證實(shí)驗(yàn)測(cè)試結(jié)果的可靠性,計(jì)算該網(wǎng)站中每一類科普文獻(xiàn)在一年內(nèi)的平均檢索率,如表1所示。 表1 科普文獻(xiàn)信息 由表1可知,在該科普類網(wǎng)絡(luò)資源檢索網(wǎng)站中,同樣的科普信息數(shù)據(jù)在兩次檢測(cè)下,其平均檢索率較為接近,因此可知選取的科普類文獻(xiàn)在該網(wǎng)站中被活躍使用,可以將這幾項(xiàng)數(shù)據(jù)作為實(shí)驗(yàn)測(cè)試對(duì)象。已知01科普文獻(xiàn)的類別為健康類;02為教育類;03是自然科學(xué)類;04是天文類;05為環(huán)保類;06為農(nóng)業(yè)類,不同的科普文獻(xiàn)保證了系統(tǒng)功能測(cè)試的不唯一性。將兩個(gè)檢索系統(tǒng)與該網(wǎng)站之間建立連接,保證運(yùn)行順暢后考試實(shí)驗(yàn)。 實(shí)驗(yàn)將此次設(shè)計(jì)的系統(tǒng)運(yùn)行測(cè)試結(jié)果作為實(shí)驗(yàn)組,將文獻(xiàn)[2]設(shè)計(jì)的系統(tǒng)運(yùn)行測(cè)試結(jié)果作為對(duì)照組,在表1中,選擇科普類網(wǎng)絡(luò)資源中Z-02類的科普文獻(xiàn)作為測(cè)試對(duì)象,兩組頁(yè)面,為不同檢索系統(tǒng)對(duì)同一科普文獻(xiàn)索引的動(dòng)態(tài)檢索結(jié)果,如圖6所示。 a 實(shí)驗(yàn)組檢索頁(yè)面 根據(jù)上述兩組動(dòng)態(tài)檢索結(jié)果可知,此次設(shè)計(jì)的動(dòng)態(tài)檢索系統(tǒng),利用Lucene全文檢索工具,將網(wǎng)站Z中的以“云教學(xué)”為關(guān)鍵詞的科普文獻(xiàn)Z-02,全部檢索出來(lái);而文獻(xiàn)[2]的系統(tǒng),由于只計(jì)算了關(guān)鍵詞在標(biāo)題處的位置權(quán)重,因此只得到1頁(yè)檢索結(jié)果。為了保證測(cè)試結(jié)果的可靠性,將Z-05作為實(shí)驗(yàn)測(cè)試對(duì)象,以“農(nóng)村景觀保護(hù)”為科普文獻(xiàn)索引信息關(guān)鍵詞,分別利用兩個(gè)系統(tǒng)對(duì)其進(jìn)行信息檢索,為兩個(gè)實(shí)驗(yàn)測(cè)試組的檢索結(jié)果,如圖7所示。 a 實(shí)驗(yàn)組檢索頁(yè)面 根據(jù)圖中的檢索頁(yè)面可知,在同樣的關(guān)鍵詞之下,實(shí)驗(yàn)組檢索得到的網(wǎng)絡(luò)資源中的科普文獻(xiàn)共有29頁(yè),而對(duì)照組中的檢索頁(yè)面,只有一頁(yè),同時(shí)該頁(yè)面內(nèi)的科普文獻(xiàn)數(shù)量也只有4個(gè)。綜合上述兩組實(shí)驗(yàn)測(cè)試結(jié)果可知,此次設(shè)計(jì)的檢索系統(tǒng)的性能更好,可以針對(duì)不同的索引信息位置,獲取數(shù)量更多、范圍更廣的網(wǎng)絡(luò)資源中的科普文獻(xiàn)。 此次設(shè)計(jì)的檢索系統(tǒng),充分發(fā)揮了Lucene工具檢索特點(diǎn),通過(guò)計(jì)算多個(gè)角度的索引信息權(quán)重,保證系統(tǒng)對(duì)海量網(wǎng)絡(luò)資源的逐一篩選。該檢索系統(tǒng)在獲取索引信息、合并同類數(shù)據(jù)上,得到了極大提升,通過(guò)逐層篩選,保證檢索結(jié)果的匹配性和準(zhǔn)確性。但此次設(shè)計(jì)的系統(tǒng)仍然存在一些不足,第一是沒(méi)有將題目相關(guān)與內(nèi)容相關(guān)進(jìn)行區(qū)分;第二是沒(méi)有根據(jù)文獻(xiàn)年份進(jìn)行排序,這兩個(gè)不足之處會(huì)影響使用者對(duì)網(wǎng)絡(luò)資源重要性的判斷,因此在今后的檢索系統(tǒng)優(yōu)化設(shè)計(jì)中需要加以改進(jìn)。2.2 基于Lucene設(shè)計(jì)索引信息的動(dòng)態(tài)檢索
3 實(shí)驗(yàn)與分析
3.1 準(zhǔn)備階段
3.2 結(jié)果與分析
4 總結(jié)