基于Solr的企業(yè)級搜索引擎的設(shè)計_第1頁
基于Solr的企業(yè)級搜索引擎的設(shè)計_第2頁
基于Solr的企業(yè)級搜索引擎的設(shè)計_第3頁
基于Solr的企業(yè)級搜索引擎的設(shè)計_第4頁
基于Solr的企業(yè)級搜索引擎的設(shè)計_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論