1引言
在這個信息爆炸的時代,搜索引擎已經成為一個新興而重要的計算機應用領域,更是成為全球資本關注的一個亮點.搜索引擎克服了數據庫中存在的不足,為數據的檢索提供了更為方便快捷的方式.
搜索引擎是以一定的策略在指定的搜索空間上收集和查找信息,對信息進行處理和組織后為用戶提供信息查詢服務。按照工作原理的不同,可以把它分為兩個基本類別:全文搜索引擎和分類目錄。全文搜索引擎的數據庫是依靠一個叫"網絡機器人(Spider)"或者"網絡蜘蛛(crawlers)"的軟件,通過網絡上的各種鏈接自動獲取大量的網頁信息,并按一定的規則分析整理形成的.分類目錄則是通過人工的方式收集整理網站資料形成數據庫的,比如雅虎中國以及國內的搜狐、新浪、網易分類目錄。
一個好的搜索引擎,不僅數據庫容量要大,更新頻率、檢索速度要快,支持對多語言的搜索,而且隨著數據庫容量的不斷膨脹,還要能從龐大的資料庫中精確地找到正確的資料.垂直搜索引擎所提供的數據庫資源對用戶來說更有針對性和適用性,能夠更好的滿足用戶對信息需求的準確性.由于提高了信息的質量,因此搜索的效果會更好.
本文在基于垂直搜索引擎的工作原理下,選擇以Heritrix為引擎的網絡爬蟲,通過擴展自己的組件來完成抓取任務,利用Lucene對抓取的信息以一定的規則進行過濾,排序,分頁并建立索引.最終構建一個WEB平臺通過Lucene的分析器實現與用戶的智能交互過程,完成搜索功能。
2面向垂直的搜索引擎的設計
2.1需求分析
本搜索引擎是一個基于網絡爬蟲程序為數據來源支持,為用戶提供信息查詢服務的平臺.
網絡爬蟲通過自己的策略實現從互聯網網站抓取信息,然后經過組織整理,構建信息數據庫,同時為各種內容建立索引,以供用戶檢索。用戶可以通過信息檢察界面,搜索他們所需要的信息,并能在搜索結果中打開一個有關詳細信息的頁面瀏覽.
2.2總體設計
此引擎分為搜索和查詢兩部分.搜索部分具有自動信息搜集功能,引擎主動派出"蜘蛛"程序,對一定IP地址范圍的互朕網站進行信息檢索,一旦發現有自己需要的產品信息,進而分析,建立索引,并將數據加入到自己的數據庫中;查詢部分具有簡單的查詢功能,用戶在進入查詢頁面中通過輸入關鍵字來查詢相關信息.
2.3詳細設計
網絡爬蟲部分從指定的種子URL地址開始,每次動態分析出包含待查信息且不重復的待抓取URL,從待抓URL中提取出完整的信息,包括其原始鏈接URL等,部分數據還需要深加工處理,如詳細頁的關鍵信息描述文本的提取.支持有條件地保存抓取來的信息,含控制臺程序,可控制、監視系統運行,運行結束反饋總結報告信息.
索引部分,為了使檢索功能的性能更高,速度更快的系統要求,采用建立Lucene索引機制的方式。
Lucene作為一個優秀的全文檢索引擎,其系統結構具有強烈的面向對象特征.首先是定義了一個與平臺無關的索引文件格式,其次通過抽象將系統的核心組成部分設計為抽象類,具體的平臺實現部分設計為抽象類的實現,此外與具體平臺相關的部分比如文件存儲也封裝為類,經過層層的面向對象式的處理,最終達成了一個低耦合高效率,容易二次開發的檢索引擎系統。
2.4系統實現
本文在詳細設計的基礎上完成系統各功能的開發,建立各功能界面,實現系統的各個功能.通過對框架的整合和功能模塊的單元測試表現,系統的基本功能已經完成,達到預期想要的結果.運行網絡爬蟲后會在硬盤目錄上生成鏡像目錄存儲結構,以及通過索引操作生成的索引文件,如圖2-1和圖2-2.
3結論
本系統采用B/S模式架構,用RIA方式減少了服務器上不必要的積壓,從而保證系統的健康穩定運行。在系統的維護上,由于系統的工作性質是具有強大的后臺數據源支持的,所以維護人員除了基本的日常維護外,還需要進行數據庫的數據備份和數據庫的災后恢復工作.
另外,由于網絡爬蟲需要經常性的對某個網站進行信息抓取,這樣網站容易改版,維護成本高;在服務器端運行,容易封IP,這樣維護起來相對較難,需要維護人員經常對網站信息進行跟蹤處理,可維護性有待加強.
參考文獻:
[1]曾偉輝。深層網絡爬蟲研究綜述[J].計算機系統應用,2008.5:122-126.
[2]范軒苗,鄭寧,范淵。一種基于Ajax的爬蟲模型的設計與實現[J].計算機應用與軟件,2010.1:102-105.
[3]王曉偉。垂直搜索引擎若干關鍵技術的研究[D].浙江大學,2007.6.
[4]劉琦。垂直搜索引擎的設計開發[D].中山大學,2010.6[5]垂直搜索引擎[OL].