摘 要:隨著海量數(shù)據(jù)的快速增長,信息的搜索被應(yīng)用的越來越廣泛。建立統(tǒng)一的,能夠快速搜索資源的高效率系統(tǒng)顯得越來越重要。本文初步探討了基于Servlet技術(shù)的分布式網(wǎng)絡(luò)資源檢索系統(tǒng),該系統(tǒng)實現(xiàn)了對內(nèi)網(wǎng)服務(wù)器上的共享資源進行高效地分類、快速檢索、預(yù)覽以及下載等功能,保證資源流通共享性,防止“信息孤島的形成”。對實現(xiàn)在海量數(shù)據(jù)中快速檢索和資源優(yōu)化具有一定的指導(dǎo)意義。
關(guān)鍵詞:Servlet;Lucene引擎;檢索
中圖分類號:TP391.3
隨著數(shù)據(jù)的海量增長,信息的搜索被應(yīng)用的越來越廣泛。網(wǎng)絡(luò)上存在大量的資源共享服務(wù)器。這些服務(wù)器存儲了一定量的資源,并以web服務(wù)的方式供用戶和其它服務(wù)器訪問?,F(xiàn)存的問題在于不同服務(wù)器的資源組織方式往往不同,有的是通過數(shù)據(jù)庫,有的是通過描述文件(如XML),而且數(shù)據(jù)庫的種類和結(jié)構(gòu)也有很大的差別,這就導(dǎo)致不同服務(wù)器之間資源共享和資源發(fā)現(xiàn)都十分困難。
本文正是針對上述問題,采用基于Servlet技術(shù)的分布式的資源檢索策略則可以有效的解決這一問題。該策略的思想是當(dāng)用戶登陸任何一臺服務(wù)器的時候,這個服務(wù)器除了要檢索自己本地的資源以外,還可以作為一個客戶端,自動地去連接其它服務(wù)器,發(fā)出檢索請求,并將檢索的結(jié)果進行合并和匯總,返回給用戶。這樣,用戶只需要登陸任意一臺服務(wù)器,就可以檢索到大量所需資源,盡管這些資源來自于不同的服務(wù)器,但檢索的過程對用戶來說是透明的,用戶檢索和獲取這些資源就如同檢索和獲取所請求的服務(wù)器上的資源一樣。
1 Servlet技術(shù)的特點
對分布式框架我們?yōu)槭裁匆褂肧ervlet,而不是使用是用RMI、P2P,因為Servlet和其他技術(shù)相比有很多的優(yōu)勢,包括:可移植性、功能強大、高效、耐久、安全、簡潔、集成化、可擴展性、靈活性。用戶登錄的服務(wù)器向內(nèi)網(wǎng)中所有開放遠(yuǎn)程Servlet的服務(wù)器發(fā)送檢索請求,遠(yuǎn)程主機會對自己上面的資源進行檢索,并使用一定的格式來返回數(shù)據(jù),通過獲取Servlet的打開流來獲得檢索結(jié)果。大大減少了配置和系統(tǒng)不必要的開銷。用戶界面采用基于Windows操作系統(tǒng)的B/S的用戶界面的規(guī)范來設(shè)計,努力做到界面美觀和易用。使用test.xml為數(shù)據(jù)庫,通過解析來訪問?;赟ervlet技術(shù)它具有以下特點:(1)數(shù)據(jù)精確度。該系統(tǒng)為用戶提供多種查詢服務(wù),包括分詞檢索、快速檢索和全文檢索。并提供了表達式查詢法,大大增強了查詢的功能,保證查全率和查準(zhǔn)率;(2)時間特性。該系統(tǒng)采用兩種不同的搜索模塊:Web services和Socket。Web services的優(yōu)點是平臺無關(guān)性,別的平臺可以根據(jù)我們提供的WSDL來連接查詢。而對于用java語言開發(fā)的平臺,可以采用Socket來連接,提高查詢效率。一般操作響應(yīng)時間應(yīng)在1秒左右;(3)靈活性。該系統(tǒng)由于采用了兩種不同的搜索模塊,實現(xiàn)了具有平臺無關(guān)性的Web services作為搜索模塊,做到了真正意義上的平臺無關(guān)。
2 基于Servlet技術(shù)的分布式資源檢索的解決方案
2.1 系統(tǒng)架構(gòu)
局域網(wǎng)內(nèi)分布式檢索基于Servlet技術(shù)為基礎(chǔ),采用B/S架構(gòu),即Browser/Server(瀏覽器/服務(wù)器)模式進行構(gòu)建。在局域網(wǎng)環(huán)境下,每臺主機上的%Tomcat_Home%\webapps文件夾下存放一個test.xml和一個resources文件夾(存放資源用),該test.xml文件內(nèi)容是本機resources文件夾下每條資源的描述信息。檢索時就是通過檢索這個test.xml文件來查找資源的。測試的主機會安裝所需的服務(wù)器和部署我們的檢索系統(tǒng)。
動態(tài)添加刪除服務(wù)器的實現(xiàn):動態(tài)添加服務(wù)器的實現(xiàn)是在服務(wù)器啟動時自動執(zhí)行一個初始化的Servlet,用來通知內(nèi)網(wǎng)所有部署了本項目的服務(wù)器,將新開啟的服務(wù)器加入服務(wù)器列表中,實現(xiàn)動態(tài)添加。關(guān)于動態(tài)刪除服務(wù)器方面,由于服務(wù)器分為正常關(guān)閉和當(dāng)機兩種情況,雖然方式不同,但對于結(jié)果一樣,都是無法檢索服務(wù)器上得資源,所以我們在檢索的過程中一旦發(fā)現(xiàn)服務(wù)器無法正常連接,就將無效的服務(wù)器自動從服務(wù)器列表中剔除,下次檢索時就排除掉本臺主機。同時也可以手動將某臺服務(wù)器加入黑名單。
全文檢索、分詞、部分預(yù)覽的實現(xiàn):使用Lucene引擎來實現(xiàn)全文檢索功能,在啟動服務(wù)器的同時,對本主機上所有的資源建立索引,以便更好更快的進行全文檢索。對檢索條件進行分詞后再進行檢索可以提高檢索資源的相關(guān)度,返回更多用戶需要的信息。預(yù)覽功能預(yù)覽文件的部分相關(guān)內(nèi)容,第一時間讓用戶確定檢索到的文件中的內(nèi)容,這幾種功能該系統(tǒng)都是通過Lucene來實現(xiàn),保證了統(tǒng)一高效。
檢索結(jié)果顯示的實現(xiàn):對于資源預(yù)覽的實現(xiàn),該系統(tǒng)將后臺生成的資源路徑,在返回前臺之前對資源路徑進行預(yù)處理,按照用戶檢索條件的相關(guān)性進行排序,最符合檢索條件的最先出現(xiàn),同時增加分詞高亮顯示等功能,并對資源進行分類,前臺通過JQuery來實現(xiàn)顯示方面的效果及功能,來獲得良好的用戶體驗。
2.2 主要功能
(1)快速檢索功能。快速檢索是針對用戶輸入的關(guān)鍵字進行精確且快速的檢索,只對資源標(biāo)題進行匹配,不進行分詞檢索,所以檢索所需時間一般比較少。適合用戶對某些特殊專有名詞檢索;(2)分詞檢索功能。分詞檢索功能是系統(tǒng)最常用的功能,系統(tǒng)會與用戶輸入的檢索條件中某一部分詞匯進行匹配,相比快速檢索,會返回更多相關(guān)的資源給用戶,但是分詞檢索可能會帶給用戶一些無用的數(shù)據(jù)結(jié)果;(3)全文檢索功能。全文檢索是對文字類文件的全文內(nèi)容進行檢索,通常需要的時間比較長,但是返回的結(jié)果內(nèi)容也是最符合用戶要求的。有時候用戶更需要檢索文檔內(nèi)部的關(guān)鍵字,所以選擇全文檢索功能會為用戶節(jié)省不少寶貴的時間;(4)后臺管理功能。本系統(tǒng)的后臺管理功能可以對主機上得資源和test.xml同步進行增加、刪除和修改等,同時可以添加刪除資源服務(wù)器,將某些服務(wù)器加入黑名單。也可以設(shè)置敏感詞匯,過濾搜索到的資源結(jié)果,讓別的主機無法檢索到帶敏感詞匯的資源;(5)資源預(yù)覽功能。利用POI實現(xiàn)對主流文檔的讀取,采用Lucene引擎中讀取pdf的方法來實現(xiàn)對pdf的預(yù)覽,同時可以預(yù)覽圖片、大部分視頻和音頻等文件,通過JQuery控制圖片和視頻的顯示,給用戶良好的體驗。
3 結(jié)束語
建立合理高效的基于Servlet技術(shù)的檢索系統(tǒng)解決方案是加快搜索速度的重要目標(biāo),本文在Servlet的特點基礎(chǔ)上初步探討了針對用戶難以檢索到自己需要的資源的解決方案,它保證資源流通共享性,防止“信息孤島的形成”,提高了搜索引擎的運行效率。利用該檢索系統(tǒng)解決方案很好地滿足了當(dāng)前在海量數(shù)據(jù)里面搜索有效數(shù)據(jù)的需要,通過進一步提高檢索效率對用戶使用該檢索系統(tǒng)起到良好的推動和促進作用。
參考文獻:
[1]閆術(shù)卓,楊強.程序天下—Strusts2技術(shù)詳解[M].北京:電子工業(yè)出版社,2008(06).
[2]賈素玲,王強,姚琪琳.XML技術(shù)應(yīng)用[M].北京:清華大學(xué)出版社,2007.
[3]耿詳義,張躍平.JSP實用教程[M].北京:清華大學(xué)出版社,2007.
[4]Otis Gospodnetic,Erik Hatcher.Lucene IN ATION[M].北京:電子工業(yè)出版社,2007.
[5]李剛,宋偉,邱哲.Ajax+Lucene[M].北京:人民郵電出版社,2006.
[6]盧菊平,郭江杰.精通JSP+XML+CSS網(wǎng)絡(luò)開發(fā)混合編程[M].北京:電子工業(yè)出版社,2006.
作者簡介:王莉(1991-),女,湖北荊州人,碩士,研究方向:移動云計算;杜友福(1961-),男,湖北麻城人,教授,研究方向:數(shù)據(jù)庫技術(shù)、人工智能技術(shù)、網(wǎng)絡(luò)安全技術(shù)等;王同喜(1972-),男,湖北黃岡人,副教授,研究方向:軟件工程、數(shù)據(jù)庫原理及應(yīng)用、JAVA程序設(shè)計等。
作者單位:長江大學(xué) 計算機科學(xué)學(xué)院,湖北荊州 434023