摘要: 為了設計與開發校園網智能搜索引擎,研究和分析搜索引擎的工作原理、Lucene的運行機制以及智能搜索引擎功能需求。結合本校的校園網建設,分別從爬蟲系統、索引系統、引擎管理平臺、檢索系統4個子系統出發實現了一套基于Lucene的校園網智能搜索引擎,搜索引擎在搜索功能、信息監管、系統安全、智能交互方面都有所提升。搜索引擎可為校內用戶提供決策性的搜索幫助,且搜索結果的期望值較高。
關鍵字: 網絡爬蟲; Lucene; 校園網; 智能搜索引擎; 索引系統
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0083?04
隨著因特網的迅猛發展、Web信息量的爆炸性增長,人們被龐大的、多樣性的信息所圍繞,用戶要在信息的海洋中查找自己需要的信息,猶如大海撈針一般,有時會無功而返,正因如此,搜索引擎技術應運而生,它有效地解決了信息數量多與用戶查找信息困難之間的矛盾,發展到了今天,商用搜索引擎已經相當成熟,搜索方式越來越趨向于人性化、智能化。據調查,全國現有30%左右的高校采用百度或Google嵌入式引擎作為校園內部搜索引擎,但他們在使用中發現,商用搜索引擎很難實現一個域范圍內的全面而精準的搜索。因此,高校有必要根據本校的校園網環境特色,自行設計和實現一套智能、高效的搜索引擎。
本文在研究分析搜索引擎的工作原理和Lucene的運行機制的基礎上,建立了一套基于Lucene的校園網站智能全文搜索系統,為校內外用戶提供針對學校各類網站的全文搜索服務,使用戶能夠快速、方便、準確、全面地查找到所需信息,提高學校網站利用率。
1 搜索引擎及Lucene概述
搜索引擎使用網絡爬蟲尋找網絡內容,網絡上的HTML文檔使用超鏈接鏈接起來,就像織成了一張網,網絡爬蟲也叫網絡蜘蛛,順著這張網爬行,每到一個網頁就用抓取程序將這個網頁抓下來,將內容抽取出來,同時抽取超鏈接,作為進一步爬行的線索[1]。網絡爬蟲總是要從某個起點開始爬,這個起點被稱作種子,可以告訴它,也可以到一些網址列表網站上獲取,隨著網絡爬蟲對數據的大量收集,產生一個問題,怎么能從收集的千千萬萬的信息中快速、精確地找到自己需要的信息,這時就需要建立針對文本的索引,將文本內容轉換或能夠進行快速搜索的格式,從而消除按順序掃描的慢速搜索,簡單地理解為一種用來快速查找單詞的工具,當用戶想要查詢自己所需的信息時,檢索器會接受用戶的輸入,并建立查詢,接著進行查詢解析,在文本庫中進行快速檢索,進行相關性排序,最終將查詢結果提供給用戶查看。通過上述分析,一個基本的搜索引擎系統應包括3部分內容:搜索器、索引器、檢索器[2]。
Lucene是Apache軟件基金會jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,它本身不是一個完整的搜索程序,而只是搜索程序的核心和搜索模塊而已,可以方便的嵌入到各種應用中實現針對應用的全文索引/檢索功能[3]。Lucene具有如下突出優點[4]:
(1)索引文件格式獨立于應用平臺。Lucene定義了一套以8位字節為基礎的索引文件格式,使得兼容系統或者不同平臺的應用能夠共享建立的索引文件。
(2)在傳統全文檢索引擎的倒排索引的基礎上,實現了分塊索引,能夠針對新的文件建立小文件索引,提升索引速度。然后通過與原有索引的合并,達到優化的目的。
(3)優秀的面向對象的系統架構,使得對于Lucene擴展的學習難度降低,方便擴充新功能。
(4)設計了獨立于語言和文件格式的文本分析接口,索引器通過接受Token流完成索引文件的創立,用戶擴展新的語言和文件格式,只需要實現文本分析的接口。
(5)已經默認實現了一套強大的查詢引擎,用戶無需自己編寫代碼即使系統可獲得強大的查詢能力,Lucene的查詢實現中默認實現了布爾操作、模糊查詢、分組查詢等。
Lucene基本上向用戶提供索引、搜索、管理3大組件。索引組件分為4個部分,首先,使用爬蟲來搜集和界定需要索引的內容;然后,將獲得的內容轉換成文檔,文檔通常包含標題、正文、摘要、作者、鏈接等域;隨后,進行文檔分析,將文本分割成一系列詞匯單元,俗稱切詞;最后文檔被加入索引列表。搜索組件包括3部分,首先,建立查詢請求,用戶提交的搜索請求會轉換成為搜索引擎特定的查詢的對象格式;其次,查詢檢索索引并返回與關鍵詞匹配的文檔,引擎會按照某種特定的機制來排序;最后,便是展現查詢結果,結果會以直觀的、經濟的的方式為用戶展現結果。Lucene以其突出的優勢及十分全面的索引、查詢等組件,成為開發校園網搜索引擎的必備框架。這樣各大高校就可以通過擴展程序,對Lucene進行二次開發,構建出適合本校的校園網搜素引擎。
2 智能搜索引擎功能分析
本研究實現了一套個性、智能、管理方便、安全性高的校園網站全文檢索系統,具體說來滿足以下3方面要求。
2.1 搜索功能方面
(1)能夠對指定的網站進行搜索,并對每個網站單獨確定不同的搜索規則,包括搜索深度、搜索范圍、更新周期等,支持網頁定向采集,對內容更新快的網站或網頁,能夠實時更新索引,實現即時搜索。
(2)能夠對靜態網頁和各種技術的動態網頁進行采集,自動識別多語言網頁編碼,能夠搜索如下類型資源:網頁正文;網頁正文中嵌入的圖片、音樂、視頻等資源;網頁正文中鏈接的非結構化數據的內容,包括txt,doc(docx),xls(xlsx),ppt(pptx),rtf,pdf等格式的文件。
(3)具備較高的準確性、全面性與相關性,提供靈活的查詢方式,包括單字+詞的混合查詢、多條件的復合查詢、指定范圍(網站)查詢、組合查詢、短語查詢、通配符和前綴查詢。
(4)搜索結果顯示和排序清晰、信息量大,此外,引擎能夠根據用戶搜索情況,對搜索結果進行優化重排,例如將近期用戶搜索次數多的信息排在結果最前等。
(5)訪問控制粒度上,校內外用戶檢索結果應具有差異性,不同角色檢索權限不同,例如:如果某些網站不允許學生訪問,學生將不具備檢索權限。
(6)具有智能交互功能,此功能針對學校內部人員,引擎可記錄下使用者的歷史查詢和點擊記錄來不斷修正和完善用戶的興趣詞,來為用戶提供決策性的搜索幫助。
2.2 信息監管方面
(1)能夠對搜索結果準確的實現訪問控制,不能將僅供校內用戶訪問的信息以任何形式出現在校外用戶的搜索結果中,也不能提供任何方式的原文鏈接。確定訪問控制的方式包括:根據來源網站提供的信息訪問控制規則;根據每個網站單獨確定規則;根據預先設定的過濾規則。
(2)能夠提供有效的信息監管手段,基于敏感詞、來源等方式對搜索結果進行屏蔽,具備搜索趨勢分析等功能。
2.3 系統安全方面
(1)系統必須具備完善的防護措施,不存在明顯的安全漏洞,能夠防范SQL注入、跨站腳本等Web攻擊,不會因為Web攻擊導致信息泄露。
(2)系統能夠在建立索引時進行病毒、木馬掃描,并進行標記,在搜索結果中進行提示或屏蔽,防止存在安全問題的網站通過搜索系統擴大影響范圍。
3 智能搜索引擎實現
本次設計和實現的整個搜索引擎系統分為4個子系統,分別為爬蟲系統、索引系統、智能搜索引擎管理平臺、檢索系統。
3.1 爬蟲系統
爬蟲系統為整個搜索引擎的核心之一,如圖1所示,爬蟲系統每天定時從隊列中獲取爬蟲的URL,同時產生多個線程爬取,并將爬取到的數據保存到MySQL數據庫中。對于網頁內容的提取,一直是搜索引擎的重要的技術之一。Lucene本身并不能提供任何功能來完成內容獲取,因此,選用另一個由Java開發的、開源的Web網絡爬蟲Heritrix[5],它也具有很強的擴展性,開發者可以擴展它的各個組件,來實現自己的內容爬取。在進行爬取前,需要對爬取的內容進行詳細的分析,以確定種子,即爬取的起始頁,在選擇好網站得到爬取清單后,則可以以WebUI方式啟動Heritrix進行任務爬取,接著將Heritrix爬取的內容生成鏡像文件,最后將利用HTMLParser工具來對鏡像文件進行結構化信息解析、整理,為后續的索引打下基礎。
一個完整的搜索引擎系統需要很多需要配置的控制功能,Lucene管理界面向開發者提供了大量配置選項,如調節緩沖區的使用量、提交更改的頻率、優化和清楚某索引的時間點等[7]。
對于本系統,在爬蟲管理中加入了2種比較新穎的功能,敏感詞庫管理和木馬監控,敏感詞庫對查詢用戶起到了屏蔽敏感詞查詢的作用,對于管理員,系統會自動列出存在敏感詞的系統地址,方便管理員對各個系統進行監控。木馬監控可方便讓管理員注意到哪些網站存在病毒、木馬,并采取相應的防范措施來預防。
3.4 檢索系統
測試結果表明,本搜索引擎比通用搜索引擎在查詢時間和查準率上均有提高,更加適合本校園網內使用。
5 結 語
Lucene是一款優秀的開源全文搜索技術框架,具有良好的擴展性,運用它所實現的校園網智能搜索引擎系統可以穩定運行,對推動校園網Web應用以及基于搜索引擎技術的教學、科研等都有一定的現實意義。同時系統也存在一些有待改進的地方,如改善搜索算法、提高搜索智能化等都是經后進一步研究的內容。
參考文獻
[1] 佚名.搜索引擎的基本原理 [EB/OL]. [2010?11?24]. http://blog.csdn.net/zhangxinrun/article/details/6032265.
[2] 蔡建超.基于lucene.net的校園網搜索引擎的設計與實現[J].計算機技術與發展,2006,16(11):73?75.
[3] 管建和,甘劍峰.基于Lucene全文檢索引擎的應用研究與實現[J].計算機工程與設計,2007,28(2):489?491.
[4] Anon. Lucene的突出優勢[EB/OL]. [2012?06?26]. http:// baike.baidu.com/view/371811.htm.
[5] 朱雪蓮.基于Lucene的專業搜索引擎的研究與應用[J].現代計算機,2010(7):116?119.
[6] 田宇.基于XML的WEB信息抽取系統研究與實現[D].呼和浩特:內蒙古大學,2010.
[7] MCCANDLESS Michael, ERIK Hatcher, GOSPODNETIC Otis. Lucene實戰[M].牛長流,肖宇,譯.2版.北京:人民郵電出版社,2011.
[8] 馬家宇,陽小華.基于J2EE架構的智能元搜索引擎系統設計與實現[J].計算機應用與軟件,2008,25(8):68?69,99.