賈曉霞(神木職業技術學院 公共課教學部, 陜西 榆林 719300)
大數據發展的時代下,網絡中的數據信息量迅速增多,因此動態檢索系統隨之出現,為了推動海量數據信息動態檢索系統的優化與發展,引入Lucene全文檢索工具,其中網絡資源索引信息的全文搜索是以數據庫中的海量文獻信息作為檢索對象,通過設置的檢索目標,實現對海量網絡資源的檢索[1]。Lucene全文檢索工具不是一個完整的全文搜索引擎,而是一個引擎框架,根據該框架構建一個完整的檢索引擎,還有許多工作要做。國外對于Lucene全文檢索工具的應用較早,經調查,Lucene檢索系統最早出現于1940年美國人口數據普查中,該系統面對海量的人口信息數據,利用識別技術改進Lucene的檢索功能,實現對人口信息的檢索。同時對比國內,對Lucene動態檢索系統的研究與設計還處于探索階段,但隨著近些年來的不斷探究與分析,我國Lucene動態檢索系統的設計也取得了不錯的成績。當前階段,文獻[2]所提到的Lucene動態檢索系統,通過分析Lucene的索引方法,設計該檢索系統的動態檢索程序,但隨著大數據發展,該系統的應用已經存在檢索漏洞,因此設計一個全新的Lucene的網絡資源索引信息動態檢索系統[2]是很有必要的。重新設計該系統的意義,就在于滿足人們對網絡資源的需求,通過更加完整的系統檢索,得到與需求更加匹配的索引信息,所以設計一個穩定的、高效的和全面的檢索系統勢在必行。
Lucene作為一個全文檢索引擎的架構,要想將其完全應用于網絡資源索引信息動態檢索系統中,需要開發者在Lucene的基礎上進行二次開發,已知Lucene向檢索系統提供了分析接口、索引引擎、存儲管理和查詢引擎。Lucene 的核心邏輯架構[3],如圖1所示。

圖1 Lucene核心邏輯架構
由圖1可知,查詢者通過查詢語句搜索到查詢結果,再把待索引文件進行索引,保存得到的結果;或者檢查者直接對待索引文件進行分析,通過對外接口發送消息,其中基礎結構包括文件和工具包,根據邏輯圖我們可以看到,Lucene運行時,各個模塊之間的調用關系,其中接口模塊,通過語法分析器分析索引文本,并結合基礎結構公共模塊,將分析后的數據寫入索引文件中,使用者進行查詢時,通過接口模塊將查詢語句發送到索引核心模塊,通過讀取索引文件中的數據,得到檢索結果,并執行反饋操作。
Lucene的網絡資源索引信息動態檢索系統,其整體框架由三部分組成,頁面層、控制層和數據庫層,如圖2所示[4]。

圖2 系統整體框架
以中間控制層為核心,通過Lucene連接頁面層和數據層,實現索引信息的全區域檢索。
為了保證在海量信息中,可以無間斷、高效、快速獲取檢索結果,需要設計網絡資源索引信息動態檢索系統硬件,通過改變原有檢索系統中的部分硬件設備,提升檢索系統的穩定性。而檢索系統硬件的選擇,自然想到了通過改變系統硬件的并行度,提高系統檢索效率。已知檢索系統會存在多個子系統并行檢索信息的情況,根據這些被劃分成多個子模塊的檢索任務,重新選取若干個功能更好的處理器與檢索系統建立連接,該處理器共有64位,可以對同步進行的子任務執行加速操作。重新選擇的處理器,與計算機連接后的實物圖[5],如圖3所示。

圖3 處理器實物圖
該處理器為每一子模塊之間、子模塊與索引信息之間的信息檢索,提供高效的反應速度,同時在該處理器的連接下,保證系統其它硬件之間的數據傳遞,不會在信息傳送途中遺漏關鍵信息,可以為檢索系統的實時檢索提供更加嚴謹的技術支持。
由于網絡資源索引信息動態檢索系統所需的支持硬件不多,因此只需將處理器改進即可。在此基礎上,對網絡資源索引信息動態檢索系統軟件展開設計。
網絡資源是面向普羅大眾的,雖然其知識專業性不強,但由于涵蓋的知識范圍廣,知識點數據量大因此檢索不易。對于設計網絡資源索引信息動態檢索系統軟件,應該設計網絡資源分詞方式[6]。中文分詞是Lucene全文檢索中核心的處理步驟,當對網絡資源進行索引和搜索時,都會需要進行中文分詞。設計的分詞方式,通過分析用戶輸入的關鍵詞,得出檢索目標。設K=k1,k2,…,kn為待切分的網絡資源字符串,其中ki(n=1,2,…,n)為字符串中的單個漢字字符,假設{k1k2}、{k2…kj}是待檢索數據庫中的字串,存在約束條件n≥j≥4,利用最大匹配法進行第一次切分,如式(1)。
(1)
式中,K2為數據庫中相似的網絡資源字符串[7]。此時最長的詞{k2…kj}并沒有被單獨切分,假設待切分網絡資源字符串的長度為n,數據庫中的字符串,其中最長句段的長度為i,利用歸左原則進行切分,提取網絡資源字段中的前i個字,將它與檢索數據庫中的詞條分別進行匹配,當沒有語句與當前的字符串匹配時,則取第2個到第i+1個字符重復上述步驟[8]。當出現匹配成功字樣時,將成功的字符串從一個句子中,單獨切分出去,將其作為一個獨立的檢索目標,同時將原句中,除了該詞之外的語句組成新的句式結構,繼續進行匹配。若匹配i長度字串均失敗,則對匹配長度為i-1的詞,重復此步驟,直到網絡資源的整個句子被完全切分[9-10]。下面所示部分的代碼,為設計網絡資源分詞方式的關鍵步驟代碼。
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] ); } 根據上述代碼,設計網絡資源在進行動態檢索之前,對于語句的分詞方式,為檢索數據庫中的海量網絡資源的動態檢索,提供目標。 影響檢索速度的兩個關鍵信息,一個是檢索目標的確認,另一個是對同類網絡資源索引信息的合并優化,因此利用Lucene設計索引信息的動態檢索。首先對與檢索目標的位置確認優化設計,要確定檢索數據庫中檢索目標在標題處位置權重[11-12],如式(2)。 ωa∈q,title=μσa∈q,title (2) 式中,a表示檢索目標;q表示檢索數據庫中,所有網絡資源索引信息;ωa∈q,title表示檢索目標在查詢標題中的位置權重;μ表示檢索目標在標題中的出現頻次;σa∈q,title表示檢索目標的詞量數目。其次還要確定檢索目標在正文位置中的出現權重[13-14],如式(3)。 (3) 式中,m表示檢索目標在正文中的出現頻次;ωa∈q,text表示檢索目標在正文中的位置權重;σa∈q,text表示檢索目標的詞量數目;|f|表示待檢索數據庫中的特征詞總數。根據上述公式所獲結果,設計海量數據信息下,Lucene對索引信息的全文動態檢索,如圖4所示。 圖4 Lucene對索引信息的動態檢索方案 由圖4可知,對待索引數據進行信息提取,得到數據字符串,將字符串進行分詞寫入索引文件,再讀取索引,通過搜索索引確定是否合并,如果是,進行相關性排序,得到檢索結果;對于科普文獻索引信息,先進行分詞,再搜索索引,確定是否合并,如果是,則重復上述操作。按照檢索目標在標題處的位置權重、以及在正文位置中出現的權重,完成對檢索目標的加載設置;同時利用Lucene進行數據檢測,根據得到的子類數據,自動執行同類網絡資源索引信息合并,至此Lucene的網絡資源索引信息動態檢索系統設計完畢[15-16]。 搭建實驗測試環境,檢測此次設計的檢索系統,和文獻[2]所設計的系統的檢索差異。已知實驗測試環境的選擇,會直接影響所設計系統的功能和效率,因此需要注意實驗測試環境中的硬件選擇,保證實驗測試環境中的測試硬件與兩個系統可以兼容。 由于網絡資源數量龐大,特選取其中的科普文獻作為參照。選取一個科普文獻查詢網站Z,將其作為實驗測試對象來源網站,對其中的6種網絡資源進行動態檢索。該網站的初始登錄頁面,如圖5所示。 圖5 網絡資源中科普類網站登錄界面 為保證實驗測試結果的可靠性,計算該網站中每一類科普文獻在一年內的平均檢索率,如表1所示。 表1 科普文獻信息 由表1可知,在該科普類網絡資源檢索網站中,同樣的科普信息數據在兩次檢測下,其平均檢索率較為接近,因此可知選取的科普類文獻在該網站中被活躍使用,可以將這幾項數據作為實驗測試對象。已知01科普文獻的類別為健康類;02為教育類;03是自然科學類;04是天文類;05為環保類;06為農業類,不同的科普文獻保證了系統功能測試的不唯一性。將兩個檢索系統與該網站之間建立連接,保證運行順暢后考試實驗。 實驗將此次設計的系統運行測試結果作為實驗組,將文獻[2]設計的系統運行測試結果作為對照組,在表1中,選擇科普類網絡資源中Z-02類的科普文獻作為測試對象,兩組頁面,為不同檢索系統對同一科普文獻索引的動態檢索結果,如圖6所示。 a 實驗組檢索頁面 根據上述兩組動態檢索結果可知,此次設計的動態檢索系統,利用Lucene全文檢索工具,將網站Z中的以“云教學”為關鍵詞的科普文獻Z-02,全部檢索出來;而文獻[2]的系統,由于只計算了關鍵詞在標題處的位置權重,因此只得到1頁檢索結果。為了保證測試結果的可靠性,將Z-05作為實驗測試對象,以“農村景觀保護”為科普文獻索引信息關鍵詞,分別利用兩個系統對其進行信息檢索,為兩個實驗測試組的檢索結果,如圖7所示。 a 實驗組檢索頁面 根據圖中的檢索頁面可知,在同樣的關鍵詞之下,實驗組檢索得到的網絡資源中的科普文獻共有29頁,而對照組中的檢索頁面,只有一頁,同時該頁面內的科普文獻數量也只有4個。綜合上述兩組實驗測試結果可知,此次設計的檢索系統的性能更好,可以針對不同的索引信息位置,獲取數量更多、范圍更廣的網絡資源中的科普文獻。 此次設計的檢索系統,充分發揮了Lucene工具檢索特點,通過計算多個角度的索引信息權重,保證系統對海量網絡資源的逐一篩選。該檢索系統在獲取索引信息、合并同類數據上,得到了極大提升,通過逐層篩選,保證檢索結果的匹配性和準確性。但此次設計的系統仍然存在一些不足,第一是沒有將題目相關與內容相關進行區分;第二是沒有根據文獻年份進行排序,這兩個不足之處會影響使用者對網絡資源重要性的判斷,因此在今后的檢索系統優化設計中需要加以改進。2.2 基于Lucene設計索引信息的動態檢索

3 實驗與分析
3.1 準備階段


3.2 結果與分析


4 總結