1 引言
目前,如何從互聯網這個龐大的信息資料庫中獲取數據,并進行有效地處理被認為是搜索技術的核心競爭點.所以,分布式技術被很好地應用到該領域,因為基于分布式技術構建的搜索引擎系統,能夠基于其分布式等特點,有效地處理海量數據,并提供分布式檢索服務,較好地解決了以往面臨的種種問題.同傳統單機搜索引擎相比,集群搜索引擎有以下優點[1]:
\\(1\\)各檢索服務器之間協同工作,每個服務器只搜索自身自治區域內的信息資源,彼此之間只傳遞搜索結果信息,加快了檢索速度,減輕網絡及各站點的負擔;\\(2\\)與網絡資源本身的分布式特性相適應,增加搜索服務器方便,有良好的可擴展性;\\(3\\)索引信息分到各個數據庫中,使得各索引數據庫規模小,易于管理,縮短查詢響應時間.
由于搜索引擎巨大的商業價值和學術研究價值,各大公司都在投巨資進行搜索引擎的研制開發,不斷地涌現出新的具有鮮明特色的搜索引擎產品[2].同時,各大科研機構和大學紛紛展開對搜索引擎技術相關領域的學術研究,搜索引擎己經成為信息檢索領域中最活躍的研究方向[3].集群搜索引擎的基本思想也就是把海量的網頁數據進行分散存儲,通過多機的處理能力,集中解決協同索引和檢索的問題.利用大量結點整合計算資源,從而在數據可靠性和有有效性兩方面來最大限度的滿足用戶的需求[4].中國有4億網民,2億多的搜索引擎活躍用戶,毋庸置疑的成為搜索市場里不容忽視的一支力量.如何更好的服務于這一目標用戶,在很大程度上影響了該搜索產品在中國的商業運作.
2 系統體系結構設計
2.1 設計目標集群式搜索引擎系統是一個主要針對企業內部各網站和應用系統的搜索引擎系統,用于從文檔系統、數據庫、知識管理系統等應用程序和企業內部網站中存儲的大量企業信息中查找相關的信息.
集群式搜索引擎系統所要達到的目標有以下幾個方面:
\\(1\\)無論數據在哪里、以何種形式存在,都能夠對其實現快速訪問.
\\(2\\)對于訪問到的數據通過準確分詞建立索引,方便搜索器快速查詢.
\\(3\\)用戶接口遵循易用性原則,操作簡單,具備結果的顯示、分類、錯誤提示、糾錯、預覽、搜索建議等完備的功能.
\\(4\\)具備完備的管理以及安全控制機制.
本系統采用Java語言開發,使用MyEclipse 集成開發工具,搭建Hadoop云計算平臺,集成Solr和 Nutch進行開發,Solr作為處理搜索結果的源和入口,而 Nutch 作為插件負責爬蟲以及創建索引的部分.這樣設計充分利用了Solr Server的高級特性,同時也充分發揮Nutch最擅長的工作:抓取和提取內容.對于用戶界面部分,則是按照Windows的IE瀏覽器規范來設計,采用HTML編寫的文本框、按鈕以及菜單等方式作為用戶的使用接口,操作簡單,具有較高的可操作性.本系統建立于基于Hadoop的云計算系統之上,通過云計算平臺提高計算效率以及運行速度,使得存儲和管理海量索引數據簡單化.
2.2 系統功能本系統仍然是按照傳統的搜索引擎,將系統劃分為三個模塊,分別為爬蟲模塊,與處理模塊,檢索模塊,如圖1所示:
2.3 搜索引擎整體結構爬蟲從 Internet 中爬取眾多的網頁作為原始網頁庫存儲于本地,然后網頁分析器抽取網頁中的主題內容交給分詞器進行分詞,得到的結果用索引器建立正排和倒排索引,這樣就得到了索引數據庫,用戶查詢時,在通過分詞器切割輸入的查詢詞組并通過檢索器在索引數據庫中進行查詢,得到的結果返回給用戶.其基本結構如圖2所示:
無論搜索引擎的規模大小,其主要結構都是由這幾部分構成的,并沒有大的差別,搜索引擎的好壞主要是決定于各部分的內部實現.
3 系統部署及實現
3.1 系統開發環境硬件環境:I5 4核3.6G主頻主機、2G內存、100G硬盤空間.軟件環境:操作系統:CentOS 6.4中文版,開發工具:MyEclipse.
3.2 Hadoop及Zookeeper的配置通常,集群里的一臺機器被指定為 NameNode,另一臺不同的機器被指定為JobTracker,這些機器是masters.余下的機器即作為DataNode也作為TaskTracker,這些機器是slaves.ssh必須安裝并且保證sshd一直運行,并使用無密碼鏈接的形式,以便用Hadoop 腳本管理端Hadoop守護進程.
3.3 Nutch與Solr的配置到用戶主目錄建立nutch文件夾,將nutch文件拷貝到該目錄并解壓縮.如果沒用權限,可以使用chmod和chown授權.然后回到到用戶主目錄進入hadoop目錄,拷貝Solr文件并解壓縮.然后在tomcat目錄下的conf\\Catalina\\localhost目錄中創建solr.xml文件.修改tomcat的server.xml文件,最后啟動tomcat,打開瀏覽器出現歡迎界面則表示配置成功.
4 結語
隨著大數據時代的到來,人們急需從大量的數據中檢索出來有用的數據.如果有了集群式的搜索引擎,那么就會快速高效的找到人們所需要的內容,從而提高工作效率.通過不斷優化現有技術,搜索引擎能夠進一步的簡化操作過程,使用戶更直接、方便、快速、高效地獲取信息和知識.
參考文獻
[1]鄒康.基于Nutch的分布式搜索引擎的研究與實現[D].碩士學位論文,2015:12-29.
[2]袁威,薛安榮,周小梅.基于Nutch的分布式爬蟲的優化研究[J].無線通信技術,2014\\(3\\):44-47+52.
[3]嚴春來.基于Nutch 的個性化搜索引擎的研究與探討[J].軟件開發與設計,2014\\(04\\):4-5.
[4]周世龍,陳興蜀,羅永剛.Hadoop視角下的Nutch爬行性能優化[J].計算機應用,2013,33\\(10\\):2792-2795.