版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
</property><property><name></name><value>10000</value></property<property><name><value>Mozilla/(compatible;MSIE;WindowsNT;DigExt)Gecko/Firefox/</value></property><property><name></name><value>./src/plugin</value></property><property><name><value>2</value></property><property><name>與solr的集成配置11、將solr/example/webapps/拷貝到tomcat的webapps中2、進(jìn)入到到tomcat7中,對(duì)war進(jìn)行解壓,然后刪除war包??截恠olr/example/lib/ext下的相關(guān)依賴jar包到webapps/solr/WEB-INFO/lib中修改的solr/home指定到solr所在的路徑。修改tomcat/conf的文件中的編碼加入一行URLEncoding="UTF-8"solr不會(huì)自動(dòng)創(chuàng)建core,把multicore中的core0拷到solr/example/,拷貝nutch的配置文件到core0/conf/下,重命名為,修改要和對(duì)應(yīng)的core對(duì)應(yīng),7、加入分詞工具,在這里對(duì)我用的是IKAnalyzer?;贖adoop+Nutch+Solr的信息采集搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)信息采集搜索系統(tǒng)的實(shí)現(xiàn),以第二章相關(guān)技術(shù)理論分析與研究為基礎(chǔ),利用MapReduce編程模型在分布式處理方面的優(yōu)點(diǎn),實(shí)現(xiàn)了pagerank算法在系統(tǒng)檢索中的評(píng)分;對(duì)nutch的url過濾,內(nèi)容解析插件進(jìn)行改進(jìn),實(shí)現(xiàn)了用戶自訂制鏈接和獲取的主題內(nèi)容;對(duì)本地資料文件實(shí)現(xiàn)格式識(shí)別并抽取題名、時(shí)間、內(nèi)容等文本信息保存為xml文件,實(shí)現(xiàn)本地相關(guān)主題信息查詢。系統(tǒng)采用IK分詞器,最終完成了信息采集與搜索的設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)結(jié)構(gòu)總體設(shè)計(jì)本系統(tǒng)部署在hadoop+nutch+solr的集群框架上,分為四個(gè)部分,系統(tǒng)功能組成如下:基于基于Hadoop+Nutch+Solr的信息采集搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)定制爬取資料文檔解析資料文件上傳文件解析數(shù)據(jù)索引種子設(shè)定鏈接定制過濾規(guī)則內(nèi)容過濾定制創(chuàng)建核配置修改系統(tǒng)管理Plugin.include參數(shù)修改表單登錄定制fields獎(jiǎng)懲因子設(shè)定分布式爬取分布式檢索數(shù)據(jù)索引數(shù)據(jù)查詢核管理系統(tǒng)功能組成圖資料文檔解析,實(shí)現(xiàn)單個(gè)文件和壓縮文件上傳,對(duì)壓縮文件自動(dòng)解壓;對(duì)資料文件實(shí)現(xiàn)多格式識(shí)別,例如pdf,word,html,excel等格式文件,文件提取標(biāo)題,作者,時(shí)間,內(nèi)容等關(guān)鍵信息,轉(zhuǎn)換為xml文件,保存在指定路徑下,對(duì)文件集建立索引,進(jìn)行搜索查詢。分布式爬取,系統(tǒng)利用hadoop+nutch實(shí)現(xiàn)分布式數(shù)據(jù)爬取,對(duì)插件進(jìn)行改進(jìn)實(shí)現(xiàn)url過濾;對(duì)爬出的子站點(diǎn)網(wǎng)頁結(jié)構(gòu)進(jìn)行分析,過濾那些不希望存在的文本內(nèi)容,改進(jìn)解析插件,實(shí)現(xiàn)用戶可以進(jìn)行內(nèi)容過濾定制,去除腳本、圖片以及其它標(biāo)簽,獲取和處理跟主題相關(guān)的內(nèi)容;對(duì)網(wǎng)頁編碼格式進(jìn)行提取,實(shí)現(xiàn)內(nèi)容編碼的轉(zhuǎn)換。本系統(tǒng)支持帶有一次跳轉(zhuǎn)的簡單表單登陸的抓取,系統(tǒng)管理中設(shè)置對(duì)應(yīng)的相關(guān)信息;復(fù)雜的登陸需要分析登陸過程,另外寫出相對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議插件。系統(tǒng)區(qū)分領(lǐng)域,根據(jù)不同主題建立索引。分布式檢索,系統(tǒng)實(shí)現(xiàn)選擇不同主題的core進(jìn)行查詢,輸入查詢關(guān)鍵詞,提供檢索文檔中出現(xiàn)詞頻最高的前n個(gè)詞和關(guān)聯(lián)文檔;用戶自動(dòng)創(chuàng)建不同core,修改模板配置文件相應(yīng)選項(xiàng),進(jìn)行替換。系統(tǒng)管理,實(shí)現(xiàn)用戶對(duì)nutch插件的修改;實(shí)現(xiàn)用戶對(duì)簡單表單登陸的相應(yīng)參數(shù)修改;用戶可以改變?nèi)鏺eywords,description,pagerank等fields索引項(xiàng)信息,根據(jù)站點(diǎn)特征,從而改變排序主題關(guān)聯(lián)度。系統(tǒng)架構(gòu)圖系統(tǒng)利用hadoop+nutch實(shí)現(xiàn)分布式數(shù)據(jù)爬取,基于Map/Reduce編程模型,充分利用其并行特性進(jìn)行任務(wù)分發(fā)和結(jié)果的歸并,獲取高效高質(zhì)的爬行結(jié)果。系統(tǒng)架構(gòu)圖如下:MapReduceHDFSHadoopMapReduceHDFSHadoopPluginsystemProtocolsCrawlDBLinkDBSegmentsTomcatExtractingRequest(PDF/WORD)NutchSolrApacheLuceneApacheTikastatisticsClusteringDistributedSearchParserUrlFilterIndexFilterSearchLinkDb存儲(chǔ)URL及URL互聯(lián)關(guān)系,作為爬行和重新爬取的依據(jù);Segments存儲(chǔ)抓取的網(wǎng)頁內(nèi)容。1、在Hadoop和nutch基礎(chǔ)上爬取的運(yùn)行流程如下圖所示:fetchlistcrawldbfetchlistcrawldbInternetfetchedcontent(1)Injectstarturls(2)generatesegment(containsurlsscheduledforfetching)(3)fetchcontent(4)Contentparserparsedtext&data(5)updatecrawldbwithnewextractedurlsSolrIndexindexing圖hadoop+nutch爬取運(yùn)行流程讀取URL種子文件到CrawlDB,然后進(jìn)行下面的抓取程序:(1)循環(huán)1-4到指定的抓取深度;①從CrawlDB生成抓取列表;②根據(jù)抓取列表中的URL抓取網(wǎng)頁;③分析處理抓取的內(nèi)容;④更新CrawlDB庫。解析出文本和轉(zhuǎn)換每個(gè)頁面中外部對(duì)它的鏈接。用solr建立索引。各個(gè)模塊分析如下:插入U(xiǎn)RL列表(Inject)將URL集合進(jìn)行格式化、主題相關(guān)度過濾和合并,消除其中非法URL,并設(shè)定入了URL狀態(tài)(unfetched)和初始化分值;將URL及其狀態(tài)、分值存入CrawlDB數(shù)據(jù)庫,與原數(shù)據(jù)庫中重復(fù)則更換成新的。下面用Infect模塊的例子說明MapReduce的工作過程:MapReduce程序1目的:將輸入轉(zhuǎn)換為CrawlDatum格式輸入:URL文件Map(line)-><URL,CrawlDatum>Reduce()合并多重的URL輸出:臨時(shí)的CrawlDatum文件MapReduce程序2目的:合并上一步產(chǎn)生的臨時(shí)文件到新的DB輸入:上次MapReduce輸出的CrawlDatumMap()過濾重復(fù)的URLReduce()合并兩個(gè)CrawlDatum到一個(gè)新的DB輸出:CrawlDatum生成抓取列表(Generate)從CrawlDB數(shù)據(jù)庫中將URL取出并按預(yù)設(shè)規(guī)則進(jìn)行過濾。對(duì)URL進(jìn)行降序排列;將排列列表寫入segments目錄中。抓取內(nèi)容(Fetch)對(duì)segments目錄下的抓取列表依次執(zhí)行抓取;抓取過程中,頁面的URL地址可能會(huì)發(fā)生跳轉(zhuǎn),從而需要重定向URL地址;本系統(tǒng)支持帶有一次跳轉(zhuǎn)的簡單表單登陸的抓取,需要在配置文件中設(shè)置對(duì)應(yīng)的相關(guān)信息;復(fù)雜的登陸需要分析登陸過程,寫出相對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議插件。抓取過程采用多線程方式進(jìn)行,F(xiàn)etch操作過程中得到頁面源文件后同時(shí)也調(diào)用Parse操作。分析處理內(nèi)容(Parse)使用對(duì)應(yīng)的插件解析segments目錄中由Fetch得到的頁面,并進(jìn)行整理,將頁面分解為parsedate和parse-text,parse-date中保存的是頁面的題名、作者、日期、鏈接等內(nèi)容;parse-text中保存的是頁面的文本內(nèi)容。本系統(tǒng)用戶可對(duì)種子站點(diǎn)的各個(gè)子站點(diǎn)進(jìn)行分析,自動(dòng)進(jìn)行分類,訂制子站點(diǎn)抓取的內(nèi)容,提高搜索主題相關(guān)度。過濾跟主體不相關(guān)的鏈接。更新CrawlDB庫(Update)根據(jù)segments目錄下crawl_fetch目錄和crawl_parse目錄中的內(nèi)容,對(duì)CrawlDB進(jìn)行更新,增加新的URL。轉(zhuǎn)化鏈接(InvertLinks)InvertLinks操作用來更新LinkDB,為建立索引的工作提供準(zhǔn)備。本系統(tǒng)實(shí)現(xiàn)mapreduce的pagerank算法,將pagerank作為一個(gè)獨(dú)立的索引項(xiàng)添加到nutch默認(rèn)的lucene排序算法中。2、分布式索引是實(shí)現(xiàn)檢索前的必要步驟。對(duì)于爬取的網(wǎng)頁需要先進(jìn)行解析并建立索引。流程如下:內(nèi)部文檔(內(nèi)部文檔(Word/pdf/xsl/ppt/txt)Internet數(shù)據(jù)采集紙質(zhì)資料結(jié)構(gòu)化數(shù)據(jù)內(nèi)容抓取格式解析數(shù)據(jù)加工主題內(nèi)容篩選索引信息提取數(shù)據(jù)搜索建立索引個(gè)性化定制分類檢索內(nèi)容分詞文章評(píng)分索引流程圖分布式索引操作從非結(jié)構(gòu)化文檔解析開始,提取數(shù)據(jù)庫的文本內(nèi)容創(chuàng)建相應(yīng)的Document實(shí)例,用IK分詞工具對(duì)漢字實(shí)行中文分詞,最后將分詞存入段結(jié)構(gòu)。為了提高分布式檢索的性能,需要進(jìn)行內(nèi)容評(píng)分排序,本系統(tǒng)用lucene內(nèi)部評(píng)分機(jī)制,實(shí)現(xiàn)mapreduce的pagerank算法,將pagerank作為一個(gè)獨(dú)立的索引項(xiàng)添加到nutch中;分布式索引系統(tǒng)的設(shè)計(jì)基于Map/Reduce編程模型并行實(shí)現(xiàn),爬行結(jié)果會(huì)以鍵值對(duì)(key=URL,value=Content)形式傳遞進(jìn)行索引,首先JobTracker以key=URL分割網(wǎng)頁內(nèi)容,然后各個(gè)TaskTracker啟動(dòng)Map任務(wù)處理分配到的網(wǎng)頁數(shù)據(jù),生成相應(yīng)倒排索引片段,最后Reduce將各個(gè)Slave節(jié)點(diǎn)處理得到的索引片段合并為一個(gè)索引整體并保存在分布式文件系統(tǒng)HDFS中。(1)非結(jié)構(gòu)文檔解析Lucene實(shí)現(xiàn)索引需要對(duì)文檔格式進(jìn)行解析,本系統(tǒng)采用ApacheTika插件自動(dòng)判斷文章類型,調(diào)用相應(yīng)的類進(jìn)行文本內(nèi)容提取,創(chuàng)建對(duì)應(yīng)的Document實(shí)例,在Document實(shí)例對(duì)象中拆分文本內(nèi)容并用其創(chuàng)建多個(gè)Field實(shí)例,文檔的標(biāo)題、作者、摘要、正文以及關(guān)鍵字等都屬于Field域,這些域值作為索引項(xiàng)通過IndexWriter對(duì)象的addDocument方法傳遞給Lucene實(shí)現(xiàn)索引,最終會(huì)以搜索結(jié)果的形式呈現(xiàn)給用戶。除了上面提及的常用文檔解析,還有ZIP壓縮包、RTF等相關(guān)格式文件的解析;nutch功能強(qiáng)大,可提供圖像和多數(shù)音頻文件的轉(zhuǎn)換。(2)分詞實(shí)現(xiàn)模塊solr基于Lucene開發(fā),可以很好的支持英文分詞。對(duì)于中文分詞,本文將solr和IKAnalyzer分詞器集成實(shí)現(xiàn)中文分詞。修改,添加如下配置:<fieldTypename="text_ik"class=""><analyzertype="index"isMaxWordLength="false"class=""/><analyzertype="query"isMaxWordLength="true"class=""/></fieldType>(3)MapReduce實(shí)現(xiàn)PageRank內(nèi)容評(píng)分排序算法Nutch抓取網(wǎng)頁后將網(wǎng)頁存儲(chǔ)在Hadoop集群NameNode節(jié)點(diǎn)下的HDFS中。在集群環(huán)境下,利用MapReduce編程模式將海量網(wǎng)頁數(shù)據(jù)以健值對(duì)的形式來處理,充分發(fā)揮Hadoop集群的優(yōu)勢來分別計(jì)算它們各自的PageRank值,通過對(duì)Nutch分布式搜索引擎中網(wǎng)頁抓取模塊、索引構(gòu)建模塊和檢索模塊的分析和研究,在Nutch中基于MapReduce編程模式實(shí)現(xiàn)PageRank算法流程如下:①將CrawlDb數(shù)據(jù)庫中的數(shù)據(jù)作為輸入進(jìn)行Map操作,<URL,CrawlDatum>健值對(duì)作為Map輸出,利用Reduce操作對(duì)Map過程的輸出進(jìn)行處理,包括合并和去重等操作,并將處理后的結(jié)果輸出到URL數(shù)據(jù)庫fetchdb中。②將URL數(shù)據(jù)庫fetch和LinkDB數(shù)據(jù)庫的數(shù)據(jù)健值對(duì)<srcUrl,desUrl>作為輸入進(jìn)行Map操作,輸出中間健值對(duì)<destUrl,srcUrl>,將中間數(shù)據(jù)健值對(duì)按key進(jìn)行分組,獲得鏈接到目標(biāo)URL的鏈接集合列表<destUrl,list_srcUrl[i]>。接著對(duì)URL的鏈接集合列表進(jìn)行Reduce操作,設(shè)置每個(gè)鏈接網(wǎng)頁的初始值為1。最后輸出目標(biāo)URL和鏈接對(duì)象srcUrl所組成的健值對(duì)<url,srcUrl>。這些<url,srcUrl>健值對(duì)集合將構(gòu)成pagerankdb庫,為程序中計(jì)算網(wǎng)頁的PageRank值做準(zhǔn)備。③將pagerankdb庫中的<url,srcUrl>健值對(duì)作為輸入,通過迭代計(jì)算網(wǎng)絡(luò)爬蟲所抓取的網(wǎng)頁pagerank值,直至達(dá)到預(yù)先設(shè)定的迭代次數(shù)才完成運(yùn)算。采用Java語言編程實(shí)現(xiàn)基于MapReduce編程模型的pagerank的具體算法為:Map(key,value){//key:網(wǎng)頁的url;value:指向url的網(wǎng)頁srcurl;floatscore=0f;PR(p)score=outlink//pagrank中的j的值;L(p)jsc=srcurl;=score;output(url,sc);}Reduce(key,values){//values:鏈接指向url的所有源目標(biāo)網(wǎng)頁集合列表list_srcUrl[i];floatscore=0f;floatpr=0f;for(intj=0;j<nodenum;j++)PR(p){score+=;//pagerank中的j的值;}pjL(p)jpr=(1-d)+d*score//d為阻尼系數(shù),通常取;output(url,pr)}最終將網(wǎng)頁的url和計(jì)算得出的pagerank值作為健值對(duì)<url,pr>構(gòu)成臨時(shí)庫tempdb,為更新CrawlDB數(shù)據(jù)庫中網(wǎng)絡(luò)爬蟲所抓取網(wǎng)頁的pagerank值做準(zhǔn)備。④將臨時(shí)庫tempdb中的<url,pr>健值對(duì)輸入到updatepr()函數(shù)中,更新待抓取網(wǎng)頁的CrawlDB數(shù)據(jù)庫中網(wǎng)頁的pagerank值。根據(jù)上述操作計(jì)算得到網(wǎng)頁的pagerank值后,將pagerank值作為一個(gè)獨(dú)立的索引項(xiàng)添加到待建立倒排索引的文檔中,nutch系統(tǒng)中默認(rèn)的排序算法是基于lucene的,lucene的排序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 標(biāo)準(zhǔn)授權(quán)經(jīng)銷協(xié)議樣本
- 消防栓安裝勞務(wù)分包合同
- 設(shè)備采購招標(biāo)文件全解讀深度解讀詳解
- 外架工人分包合同
- 電信服務(wù)合同簽訂地點(diǎn)
- 工商銀行個(gè)人貸款合同樣本
- 花崗巖選購合同格式
- 進(jìn)度獎(jiǎng)懲合同協(xié)議
- 租房合同解除協(xié)議書撰寫要點(diǎn)
- 京東電子合同協(xié)議范本
- 日本江崎格力高歷史
- 初物管理辦法及規(guī)定
- 代扣服務(wù)協(xié)議
- 回流焊曲線講解
- 某燃煤采暖鍋爐煙氣除塵系統(tǒng)設(shè)計(jì)1
- 中心試驗(yàn)室標(biāo)準(zhǔn)化管理辦法
- 龍王廟煤礦消防工作匯報(bào)
- 一些常見物質(zhì)的安托因常數(shù)
- 庫存盤點(diǎn)盈虧處理申請(qǐng)表xls
- 35kV及以下架空電力線路施工及驗(yàn)收規(guī)范
- 鍋爐課程設(shè)計(jì)Excel表格
評(píng)論
0/150
提交評(píng)論