下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔-下載后可編輯基于Solr的企業(yè)級搜索引擎的設(shè)計【摘要】分散的計算機上存儲有大量的信息,企業(yè)級用戶急需一種工具對這些零散的信息進(jìn)行統(tǒng)一的查找,最好還可通過配置對特定的網(wǎng)站進(jìn)行檢索,這就是企業(yè)級搜索引擎,本文使用開源項目Solr設(shè)計了一款面向企業(yè)的搜索引擎。整體設(shè)計基于SSH設(shè)計框架實現(xiàn);服務(wù)器端采用Heritrix抓取網(wǎng)頁,加入IKAnalyzer增加中文分詞功能;客戶端采用Ajax技術(shù)實現(xiàn)異步通信,優(yōu)化用戶體驗。
【關(guān)鍵詞】Solr;Heritrix;SSH;企業(yè)級;搜索引擎
1.研究背景
隨著Intenet的普及與企業(yè)信息化步伐的不斷加快,在企業(yè)信息化的發(fā)展趨勢下,越來越多的企業(yè)廣泛地應(yīng)用Intemet技術(shù)實現(xiàn)數(shù)據(jù)共享、業(yè)務(wù)集成與信息,信息內(nèi)容也正在以驚人的速度增加。文件、圖片、多媒體等非結(jié)構(gòu)化數(shù)據(jù)存放零散,而企業(yè)內(nèi)部業(yè)務(wù)系統(tǒng)有大量的結(jié)構(gòu)化數(shù)據(jù),如報表與業(yè)務(wù)功能,有時候要找到它們?nèi)缤蠛漆?,如果不及時解決這個問題,很多原來有價值的信息無法得到企業(yè)的有效利用。
目前許多企業(yè)級門戶網(wǎng)站建立搜索引擎服務(wù)通常通過調(diào)用互聯(lián)網(wǎng)搜索引擎的搜索服務(wù),來實現(xiàn)對本站點的搜索。但是對于一個有很多子網(wǎng)站的企業(yè)門戶網(wǎng)站來說,通用搜索引擎存在著很多缺陷,滿足不了這種搜索服務(wù)要求,如:盡管通用引擎提供對指定站點內(nèi)的查詢,但是不能同時對多個站點同時查詢;通用搜索引擎不能及時更新索引,會導(dǎo)致搜索結(jié)果不全和出現(xiàn)“壞鏈接”;調(diào)用通用搜索引擎的響應(yīng)速度慢??傊?,通用搜索引擎有很廣的信息采集面,深度不夠,它采取的是廣度優(yōu)先采集策略,而企業(yè)搜索需要深入挖掘與企業(yè)相關(guān)的所有信息,因此應(yīng)采用深度優(yōu)先的采集策略,同時由于某些行業(yè)網(wǎng)站或數(shù)據(jù)庫的信息是動態(tài)更新的,而且更新頻率很高,需要更頻繁的抓取這些信息,因此企業(yè)搜索引擎正是應(yīng)這種需求而產(chǎn)生。研究如何設(shè)計一個適用于企業(yè)信息檢索的搜索引擎,具有重要的意義。文中采用Struts+Spring+Solr+Heritrix+IKAnalyzer的開發(fā)工具包,進(jìn)行了一個中文全文搜索引擎的設(shè)計。
2.技術(shù)路線
2.1總體架構(gòu)
該搜索引擎搜索部分框架可概括為Heritrix+Solr+IKAnalyzer,如圖1所示。實現(xiàn)方案中,把Solr作為處理搜索結(jié)果的源和入口,Heritrix負(fù)責(zé)它最擅長的工作:抓取網(wǎng)頁內(nèi)容。使用Solr作為搜索后端,可以充分使用Solr的搜索特性:查詢拼寫檢查,搜索提醒,數(shù)據(jù)復(fù)制及查詢緩存等??紤]到Solr本身中文分詞功能較弱,因此引用IKAnalyzer來增強其中文分詞功能。
鑒于企業(yè)級搜索引擎需要部分定制功能,例如,可能會需要設(shè)定訪問一些企業(yè)本身感興趣的網(wǎng)站,以提高搜索的速度和精確度,因此需要配置系統(tǒng)維護(hù)接口,實現(xiàn)人工的實時定制。
Solr本身提供了靈活的特性,能夠從文本、數(shù)據(jù)庫和網(wǎng)頁中直接導(dǎo)入數(shù)據(jù),而企業(yè)本身也需要對檢索到的信息進(jìn)行整理分類,會希望搜索引擎能夠提供一些人工智能和個性化的東西,因此在設(shè)計中加入了數(shù)據(jù)庫的支持,以實現(xiàn)對網(wǎng)頁內(nèi)容的學(xué)習(xí)、分析和聚類等,從而可保證提供智能化結(jié)果。
2.2設(shè)計框架
系統(tǒng)設(shè)計采用基于SSH框架的三層結(jié)構(gòu),即表現(xiàn)層、業(yè)務(wù)層、持久層。
其中表現(xiàn)層使用struts框架,該層將直接面向用戶,精美的UI將能夠體現(xiàn)良好的可用性,本次設(shè)計用使用了開源的Yui-ext界面包,可增加彈窗、菜單等效果;使用的Ajax技術(shù)實現(xiàn)異步通信功能,提升用戶的體驗;利用struts框架與Yui-ext相結(jié)合,Yui-ext進(jìn)行前臺數(shù)據(jù)顯示,而struts框架作為數(shù)據(jù)跳板向前臺提供數(shù)據(jù)。
業(yè)務(wù)層使用spring框架,該層作為持久層數(shù)據(jù)與表現(xiàn)層之間數(shù)據(jù)傳輸?shù)募~帶,spring框架封裝了DAO和JDBC模塊,可以保持?jǐn)?shù)據(jù)庫訪問代碼干凈簡潔,并且可以防止因關(guān)閉數(shù)據(jù)庫資源失敗而引起的問題。
持久層使用Hibernate框架,目前,已經(jīng)很少有人J2EE應(yīng)用會直接以JDBC方式進(jìn)行持久層訪問,畢竟用面向?qū)ο蟮某绦蛟O(shè)計語言來訪問關(guān)系型數(shù)據(jù)庫令人沮喪;反之,多數(shù)人會以O(shè)RM框架來進(jìn)行持久層訪問,其中Hibernate框架靈巧、輕便,非常適用于持久層。
3.關(guān)鍵技術(shù)
3.1Solr簡介
Solr是Apache的一個開源子項目,它是一個采用java5開發(fā)的、基于lucene全文搜索庫的企業(yè)級搜索服務(wù)器,提供了豐富的查詢語言,可根據(jù)用戶需求配置和擴(kuò)展,并對查詢性能進(jìn)行了優(yōu)化。Solr提供了一個完善的功能管理界面,可輸出多種格式,能夠?qū)崿F(xiàn)異構(gòu)系統(tǒng)的整合,有強大的插件功能,使用它很容開發(fā)出一款優(yōu)秀的企業(yè)級搜索引擎。
3.2Heritrix與Solr的整合
Heritrix與Solr的配置主要集中在服務(wù)器端,整個搜索的過程可以概括為,Heritrix爬蟲抓取網(wǎng)頁之后,編寫相應(yīng)的代碼對爬蟲抓取頁面的遍歷,將網(wǎng)頁傳遞給JoyDoc框架,獲取頁面中的content,source,title等信息,建立數(shù)據(jù)庫,然后使用Solr索引功能對網(wǎng)頁數(shù)據(jù)庫中的數(shù)據(jù)建立索引,從而實現(xiàn)全文搜索。其中,需要重新定制heritrix的Extractor方法,配置Heritrix根目錄下的conf文件中的Heritrix文件。
3.3Struts+Spring+Hibernate的整合
SSH框架的整合直接影響到整個網(wǎng)站的用戶體驗和可用性,整合主要以下兩個方面。
Struts整合Spring,可以將StrutsAction管理委托給Spring框架,整個過程需要兩個步驟:
(1)Action中,使用IOC獲得服務(wù),配置struts-config.xml;
(2)Spring配置文件中注冊該動作。
Spring整合Hibernate,在Spring框架中,像JDBCDataSource或HibernateSessionFactory這樣的資源,在應(yīng)用程序上下文中可以用bean實現(xiàn)。需要訪問資源的應(yīng)用程序?qū)ο笾恍柰ㄟ^bean引用得到這類預(yù)先定義好的實例的引用即可,需要三個步驟:
(1)配置數(shù)據(jù)源,一般情況下有三種方式的數(shù)據(jù)源;
(2)配置sessionfactory;
(3)配置事務(wù)。
3.4中文分詞技術(shù)
中文分詞對于搜索引擎來說是至關(guān)重要的指標(biāo),對于企業(yè)來說,絕大部分的搜索時針對中文索引,而Solr默認(rèn)只支持引文索引,因此需要加入中文索引。
IKAnalyzer實現(xiàn)了以詞典分詞為基礎(chǔ)的正反向全切分算法,適合于大部分用戶的搜索習(xí)慣,如搜索時使用“人民”即可涵蓋帶有“人民幣”的文章。對Solr加入中文索引,需要將IKAnalyzer的jar包導(dǎo)入/Tomcat6.0/webapps/solr的lib里,然后在solr/conf/schema.xml中節(jié)點下添加個類型,從而實現(xiàn)索引和查詢的中文分詞。
4.結(jié)語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公樓租賃合同
- 2025年個人住房抵押貸款合同電子簽章操作范本3篇
- 二零二四年建筑弱電改造節(jié)能環(huán)保施工合同3篇
- 旅游地產(chǎn)項目推廣居間合同
- 2025年鋼材行業(yè)供應(yīng)鏈金融服務(wù)合同范本
- 旅游度假區(qū)開發(fā)建設(shè)合同
- 金融科技領(lǐng)域投資合同
- 金融服務(wù)外包合同保密與責(zé)任豁免協(xié)議
- 米面糧油采購合同
- 違約合同退租協(xié)議
- 成品移動公廁施工方案
- 2025年度部隊食堂食材采購與質(zhì)量追溯服務(wù)合同3篇
- 新人教版一年級下冊數(shù)學(xué)教案集體備課
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 繪本 課件教學(xué)課件
- 光伏項目風(fēng)險控制與安全方案
- 9.2提高防護(hù)能力教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 催收培訓(xùn)制度
- 牧場物語-礦石鎮(zhèn)的伙伴們-完全攻略
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機構(gòu)要求》中文版(機翻)
評論
0/150
提交評論