快速了解中文期刊目錄級別、選刊、行業(yè)刊物等解決方案
垂直信息檢索是針對某一行業(yè)的專業(yè)檢索技術(shù),為用戶提供高相關(guān)度信息檢索服務(wù)。本文通過對分布式系統(tǒng)hadoop、搜索引擎、分布式數(shù)據(jù)庫、倒排索引等技術(shù)的研究,開發(fā)設(shè)計了分布式農(nóng)業(yè)信息檢索系統(tǒng),為用戶提供專業(yè)的農(nóng)業(yè)信息檢索服務(wù)。系統(tǒng)主要包括分布式平臺模塊,分布式網(wǎng)絡(luò)采集器模塊,分布式檢索系統(tǒng)等模塊。
《中國農(nóng)業(yè)文摘·農(nóng)業(yè)工程》是國家新聞出版廣電總局首批認(rèn)定的學(xué)術(shù)期刊,由教育部主管,中國農(nóng)業(yè)大學(xué)主辦的國家級農(nóng)業(yè)與農(nóng)業(yè)工程類科技期刊。
隨著信息技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)+數(shù)據(jù)資源呈爆炸式增長,互聯(lián)網(wǎng)數(shù)據(jù)的快速增長雖然滿足了我們?nèi)找嬖鲩L的信息需求,但對信息檢索技術(shù)也提出了挑戰(zhàn),如何在大規(guī)模的數(shù)據(jù)集中快速檢索出用戶需要的有價值信息成為當(dāng)前研究的熱點。全文檢索針對范圍廣,返回檢索結(jié)果往往涉及各個方面知識,而用戶真正關(guān)心領(lǐng)域的知識可能不多或者排在了檢索結(jié)果后面,這給用戶從檢索結(jié)果中挑選自己需要的結(jié)果帶來了一定的困難,而垂直檢索只是針對某一領(lǐng)域的專業(yè)檢索,檢索范圍只針對該領(lǐng)域,返回結(jié)果不多,但都是用戶關(guān)心領(lǐng)域的結(jié)果,和傳統(tǒng)全文搜索引擎相比,垂直搜索引擎更能滿足用戶信息檢索需求。
1 系統(tǒng)總體設(shè)計及結(jié)構(gòu)
分布式農(nóng)業(yè)搜索引擎首先要解決單機(jī)環(huán)境下數(shù)據(jù)采集效率低、存儲難以擴(kuò)充等問題,分步式系統(tǒng)是解決這些問題的完美方案,本系統(tǒng)采用Hadoop的HDFS作為分布式搜索引擎底層文件系統(tǒng),解決了分布式存儲和檢索問題,使用nutch作為數(shù)據(jù)采集器,負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的采集,使用Solr作為檢索器,本系統(tǒng)主要包括信息采集模塊、倒排索引模塊、信息檢索模塊、HDFS系統(tǒng)等四大部分組成,系統(tǒng)結(jié)構(gòu)圖如圖1。
2 分布式農(nóng)業(yè)信息采集子系統(tǒng)
分布式農(nóng)業(yè)信息采集子系統(tǒng)主要負(fù)責(zé)從互聯(lián)網(wǎng)抓取指定站點的農(nóng)業(yè)信息,該模塊維護(hù)有一張農(nóng)業(yè)種子網(wǎng)站列表,目前在該列表中有3000個農(nóng)業(yè)網(wǎng)站,該模塊采用分布式采集技術(shù),底層分布式系統(tǒng)采用Hadoop2.4版本,網(wǎng)絡(luò)爬蟲使用nutch2.3,分布式數(shù)據(jù)庫使用HBase0.94,采用分布式架構(gòu)不但大大提高了數(shù)據(jù)采集效率,而且使系統(tǒng)具有高伸縮性,當(dāng)數(shù)據(jù)采集節(jié)點不夠時可方便向集群中添加新的采集節(jié)點。數(shù)據(jù)采集模塊是搜索引擎設(shè)計的基礎(chǔ),該模塊為搜索引擎提供源源不斷的數(shù)據(jù)源,分布式數(shù)據(jù)采集系統(tǒng)功能模塊圖如圖2所示。
網(wǎng)絡(luò)爬蟲從種子列表開始,逐級解析網(wǎng)頁中出現(xiàn)的url鏈接,本系統(tǒng)采取廣度優(yōu)先算法進(jìn)行網(wǎng)頁抓取,直到網(wǎng)絡(luò)爬蟲采集到系統(tǒng)設(shè)定級數(shù)時才停止采集,數(shù)據(jù)采集采用增量更新原則,確保采集過的網(wǎng)頁沒有發(fā)生變化時不再重新采集,提高采集效率降低磁盤冗余。數(shù)據(jù)采集流程如圖3所示。
采集模塊從URL種子列表開始,首先讀取完整的的url地址信息,檢驗url有效性,刪除無效url地址,將有效url地址注入CrawDb庫中,注入CrawDb庫后,Generate模塊從該庫中提取出所有url并按指定規(guī)則進(jìn)行過濾,之后生成FetchList待采集列表,并將此列表寫進(jìn)Segments目錄中;根據(jù)Fetchlist列表,F(xiàn)etch模塊按廣度優(yōu)先算法依次抓取網(wǎng)頁信息并保存在本地的crawl-fetch目錄下;根據(jù)采集到的網(wǎng)頁數(shù)據(jù),Parse模塊對數(shù)據(jù)進(jìn)行解析并將解析后的完整數(shù)據(jù)保存至crawl-parse目錄下;根據(jù)Fetch模塊和Parse模塊采集到的數(shù)據(jù)Updata模塊對已采集到的數(shù)據(jù)進(jìn)行增量更新。
3 分布式索引子系統(tǒng)
分布式索引模塊將分布式采集模塊采集到的數(shù)據(jù)建立倒排索引,為分布式檢索系統(tǒng)提供檢索服務(wù)支撐,分布式索引系統(tǒng)使用lucene4.1設(shè)計實現(xiàn),分布式檢索系統(tǒng)結(jié)構(gòu)如圖4所示。
索引模塊將對采集模塊采集到的數(shù)據(jù)進(jìn)行文檔解析、語義分析、詞法分析、分詞、相關(guān)度評分等操作,經(jīng)這些處理后最終建立倒排索引文件。任務(wù)調(diào)度器JobTracher會協(xié)調(diào)各Slave節(jié)點采用MapReduce算法建立倒排索引文件,并在本地HDFS服務(wù)器進(jìn)行存儲,為檢索系統(tǒng)提供分布式檢索支撐。
4 分布式檢索模塊
分布式檢索模塊為用戶提供分布式檢索服務(wù),分布式檢索模塊依據(jù)MapReduce算法設(shè)計,對Lucene4.10和solr4.10進(jìn)行二次開發(fā)設(shè)計用戶檢索接口,為用戶提供檢索界面和檢索服務(wù),分布檢索模塊系統(tǒng)結(jié)構(gòu)如圖5所示。
分布式檢索服務(wù)器根據(jù)IPC(Inter-Process Communication)通信規(guī)則向分布式系統(tǒng)中各子節(jié)點分發(fā)檢索請求,各檢索子節(jié)點根據(jù)檢索請求從本地索引中檢索并將檢索結(jié)果反饋給檢索服務(wù)器,檢索服務(wù)器將反饋會的結(jié)果進(jìn)行處理后反饋給用戶,分布式檢索對檢索語句進(jìn)行詞法分析、語法分析、分詞、去停用詞等處理,然后從倒排索引中進(jìn)行關(guān)鍵詞檢索,然后對檢索結(jié)果進(jìn)行相關(guān)性排序并將關(guān)鍵詞進(jìn)行高亮顯示,最后將排序后的結(jié)果反饋給檢索用戶。
5 總結(jié)
通過對分布式系統(tǒng)、搜索引擎技術(shù)、倒排索引技術(shù)、MapReduce技術(shù)的深入研究,開發(fā)設(shè)計了基于分布式平臺的農(nóng)業(yè)垂直搜索引擎,系統(tǒng)具有高擴(kuò)展性和穩(wěn)定性,為用戶提供了高相關(guān)度的信息檢索服務(wù),滿足了用戶的基本信息檢索需求,后期系統(tǒng)將進(jìn)行數(shù)據(jù)清洗技術(shù)的研究,對采集到的數(shù)據(jù)進(jìn)行相識度分析,過濾重復(fù)頁面,為用戶提供更加友好、高質(zhì)量的信息檢索服務(wù)。
參考文獻(xiàn):
[1] 崔杰,李陶深,蘭紅星. 基于Hadoop的海量數(shù)據(jù)存儲平臺設(shè)計與開發(fā)[J]. 計算機(jī)研究與發(fā)展,2012,49(s1):12-18.
[2] 許丞,劉洪,譚良. Hadoop云平臺的一種新的任務(wù)調(diào)度和監(jiān)控機(jī)制[J]. 計算機(jī)科學(xué),2013,40(1):112-117.
[3] 朱珠. 基于Hadoop的海量數(shù)據(jù)處理模型研究和應(yīng)用[M].北京:北京郵電大學(xué),2008.
[4] 鄭曉薇,項明. 基于節(jié)點能力的Hadoop集群任務(wù)自適應(yīng)調(diào)度方法[J]. 計算機(jī)研究與發(fā)展,2014(3):618-626.
[5] 詹恒飛,楊岳湘. Nutch分布式網(wǎng)絡(luò)爬蟲研究與優(yōu)化[J]. 計算機(jī)科學(xué)與探索,2011,5(1):68-74.
硬核推薦閱讀
SCIE
SCI、SCIE
SCI、SCIE
SCIE
SCIE
SCIE
SCI、SCIE
SCIE
SCI、SCIE
SCI、SCIE
SCIE、SCI
SCI、SCIE