亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Hadoop的分布式搜索引擎設計與實現(xiàn)*

        2016-04-12 08:05:26柏雪桂林理工大學圖書館廣西桂林541004
        圖書館學刊 2016年2期
        關鍵詞:搜索引擎分布式檢索

        柏雪(桂林理工大學圖書館,廣西桂林541004)

        ?

        基于Hadoop的分布式搜索引擎設計與實現(xiàn)*

        柏雪
        (桂林理工大學圖書館,廣西桂林541004)

        [摘要]針對分布式搜索引擎的研究現(xiàn)狀和技術背景進行分析,提出基于Hadoop的分布式Lucene搜索引擎的功能模型與系統(tǒng)構架。從系統(tǒng)實現(xiàn)的分布式索引、分布式檢索和第三方分詞器3個方面的關鍵技術進行詳細敘述,搭建具體實驗實施的軟件、硬件環(huán)境,并運用對比的方法,進行分布式搜索引擎的性能測試分析。實驗結(jié)果表明:基于Ha?doop的分布式Lucene搜索引擎,在信息搜索的效率、可靠性、穩(wěn)定性和可擴展性等方面,具有很強的優(yōu)勢。

        [關鍵詞]分布式Hadoop Lucene搜索引擎

        [分類號]TP393

        *本文系2015年度廣西教育廳項目“隨書光盤資源云服務平臺開發(fā)應用研究”(項目編號:KY2015YB138);2013年度廣西哲學社會科學規(guī)劃研究課題基金項目“基于HADOOP大數(shù)據(jù)技術分布式信息檢索系統(tǒng)的研究與實現(xiàn)”(項目編號:13FTQ003)階段性成果。

        1 引言

        中國互聯(lián)網(wǎng)絡信息中心(CNNIC)的中國網(wǎng)民搜索行為研究報告指出,現(xiàn)今我國的搜索引擎用戶規(guī)模達4.9億。搜索引擎作為互聯(lián)網(wǎng)的基礎應用,已成為廣大用戶獲取信息的重要工具。搜索引擎是指為用戶提供檢索服務,并將與檢索信息相關的結(jié)果顯示給用戶的系統(tǒng),即用戶按照一定的策略使用網(wǎng)頁抓取程序從互聯(lián)網(wǎng)中采集信息,然后其進行分類組織和處理,用戶僅需提交檢索關鍵詞等信息即可進行檢索。搜索引擎能很好地解決用戶對需要的數(shù)據(jù)資源進行快速且準確的檢索,減小開發(fā)成本,提升信息服務的效益,提高信息資源的利用效率[1]。

        然而,目前大部分查詢檢索系統(tǒng)是建立在數(shù)據(jù)庫系統(tǒng)自帶的查詢命令基礎上的,當數(shù)據(jù)量很大時,查詢的響應效率會大幅下降,如何建設一個高效、有針對性的通用搜索引擎,是一個亟待解決的問題。筆者結(jié)合Hadoop[2]分布式平臺的高可靠性、高可擴展性、高效性、高容錯性,以及Lucene全文檢索引擎的框架層次分明、應用程序接口簡單、功能強大、可擴展性強的優(yōu)勢,設計一種基于Hadoop的分布式Lucene搜索引擎,并應用到館內(nèi)隨書光盤應用服務系統(tǒng),效果良好。

        2 現(xiàn)狀及技術背景

        2.1國內(nèi)外研究現(xiàn)狀

        關于搜索引擎的研究早在2000年就已經(jīng)起步,一經(jīng)提出,就迅速成為研究熱點。搜索引擎分類方法有很多種[3],按運行機制分有集中式搜索引擎、分布式搜索引擎、代理搜索引擎等;按應用范圍分有綜合搜索引擎、垂直搜索引擎等。

        國外關于搜索引擎的研究起步早、起點高、功能強大、系統(tǒng)完善,其中比較有代表性的有:①Elsevier公司開發(fā)的Sci?rus系統(tǒng)(學術信息搜索引擎),Scirus收錄與科技相關的網(wǎng)站超過1.05億個,包括9000萬個網(wǎng)頁,以及1700萬個來自其他信息源的記錄。②Melodis公司開發(fā)的Midomi系統(tǒng)(語音搜索引擎),采用了哼唱搜索技術,用戶只需唱歌、哼歌(或者吹口哨)就可以方便地通過數(shù)據(jù)庫檢索到匹配的樂曲。③Zil?low系統(tǒng)(房地產(chǎn)垂直搜索引擎),免費向用戶提供地產(chǎn)評估服務的房地產(chǎn)信息查詢,用戶可以通過衛(wèi)星地圖來查詢目標,也可以使用郵編和街道地址進行搜索。

        國內(nèi)搜索引擎的研究起步則相對較晚,2005年之后才逐漸開始。近年來發(fā)展迅速,在旅游、求職、購物、家電、建材、家居、醫(yī)療健康、視頻等各個領域都有所發(fā)展。如淘寶網(wǎng)推出購物搜索引擎——“一淘”,優(yōu)酷推出視頻搜索引擎——“搜庫”等。搜索引擎的發(fā)展,也正向細分化、行業(yè)化的方向迅速發(fā)展,但所涉及的領域范圍仍比較小,且在資源共享、接口開放、數(shù)據(jù)挖掘等技術層面與國外的研究還有很大差距。

        2.2MapReduce編程模型

        筆者的相關研究,需要使用Hadoop平臺的MapReduce編程模型[4],故在此單獨進行描述。MapReduce是一種數(shù)據(jù)處理的分布式編程模型,它在互聯(lián)網(wǎng)應用、科學數(shù)據(jù)處理、商業(yè)智能數(shù)據(jù)分析等具有海量數(shù)據(jù)需求的領域,應用得越來越廣泛。Hadoop可以運行各種語言編寫的MapReduce程序,其在大規(guī)模數(shù)據(jù)集的處理方面具有絕對優(yōu)勢。MapReduce借鑒了Lisp函數(shù)式語言中的思想,用Map和Reduce兩個函數(shù)提供高層的并行編程抽象模型和接口,其采用的是分而治之的處理思想和策略。MapReduce以數(shù)據(jù)為中心,把數(shù)據(jù)分割成小塊供集群中的計算機分別計算,而后對計算結(jié)果進行匯總得出最終結(jié)論。MapReduce模型的輸入和輸出均為< key,value>集合,利用Map函數(shù)和Reduce函數(shù)處理數(shù)據(jù),Map函數(shù)將一組映射成另一組,Reduce函數(shù)將結(jié)果進行歸約,把具有相同key的value值合并在一起,最終輸出一系列對作為結(jié)果。

        2.3Lucene搜索引擎

        Lucene是Apache基金會研發(fā)的一個高度優(yōu)化的開源全文搜索引擎工具包,雖然它并不是一個完整的搜索應用程序,但是它專注于文本的索引和搜索,提供了完整的索引引擎、查詢引擎以及部分的文本分析引擎[5-6],并且為數(shù)據(jù)訪問和管理提供簡單的函數(shù)調(diào)用接口[7],因此能夠方便地在此基礎上進行研究和二次開發(fā)。該搜索引擎包含兩個核心部分,即索引模塊和搜索模塊。當工作的準備階段,需要對來自于Web、文件、數(shù)據(jù)庫等數(shù)據(jù)源的結(jié)構化和非結(jié)構化數(shù)據(jù)進行文本提取將其轉(zhuǎn)換成文本數(shù)據(jù)流;當文本數(shù)據(jù)流送入搜索模塊時,調(diào)用文本分析工具對其進行分詞,生成索引文件;當客戶端提交查詢關鍵字后,搜索模塊調(diào)用文本分析工具對關鍵詞進行分詞,并生成數(shù)個或關系的查詢請求,通過訪問索引文件進行查詢,返回滿足查詢條件的經(jīng)過相關度排序的命中結(jié)果集。

        3 功能模型與系統(tǒng)架構

        3.1功能模型

        分布式搜索引擎的設計目標是實現(xiàn)海量信息資源快速的、精確的分布式檢索[8],該模型的功能主要包括:文本提取、分布式索引、分詞、分布式檢索、用戶界面5個部分組成。其具體功能模型,如圖1所示。

        圖1 分布式搜索引擎的功能模型

        ①文本提取:實現(xiàn)各種格式數(shù)據(jù)的預處理。由于Lucene只能處理文本文件,所以需要實現(xiàn)從HTML文件和非HTML文件(如數(shù)據(jù)庫、PDF、Word、Excel、E-mail等)中提取文本的功能。

        ②分布式索引:實現(xiàn)索引的創(chuàng)建、更新、刪除、優(yōu)化和修復功能。搜索引擎建立在Hadoop分布式系統(tǒng)上,所以要考慮Lucene索引的分布式實現(xiàn),需要重寫接口和考慮索引的分布式存儲和分發(fā)問題。

        ③分詞器模塊:針對中文,因為中文文本中詞和詞之間并不像英文那樣存在著天然的分隔符,所以需要分詞程序來解決中文分詞準確度問題。

        ④分布式檢索:首先對用戶輸入的關鍵詞進行簡單的合法性驗證,然后進行分布式檢索,對檢索的結(jié)果進行分類和排序。

        ⑤用戶界面:實現(xiàn)普通用戶、管理員用戶、服務提供者等,與相應的功能模塊進行功能對接。

        3.2系統(tǒng)架構

        基于Hadoop的分布式搜索引擎的系統(tǒng)構架,本質(zhì)上是借鑒Hadoop的分布式基礎構架,并在此基礎上進行利用和改進。主要是將數(shù)據(jù)存儲在Hbase數(shù)據(jù)庫中,索引文件分布式存儲在集群中的HDFS分布式文件系統(tǒng)上,其具體的系統(tǒng)構架如圖2所示。

        圖2 基于Hadoop的分布式搜索引擎系統(tǒng)構架

        基本原理是:搜索引擎運行在Hadoop分布式集群上,當對源數(shù)據(jù)進行預處理時,需要將其從數(shù)據(jù)庫中取出,從中提取文本信息,然后將文本信息分布式存儲在HDFS上,利用索引MapReduce函數(shù)為這些源文件批量建立分布式倒排索引,倒排索引文件同樣存儲在HDFS上;當客戶端向NameNo?de提交檢索請求時,通過檢索MapReduce函數(shù)對索引文件進行分布式檢索從而快速檢索到用戶所需要的數(shù)據(jù)然后返回給客戶端[9]。

        由信息存在諸多不同的格式,如HTML、Word、PDF、E-mail等,甚至有些信息形式是專有的,所需要檢索的數(shù)據(jù)源既有結(jié)構化的,也有非結(jié)構化的,為了方便讀寫大數(shù)據(jù)內(nèi)容,需將源數(shù)據(jù)存儲在Hbase數(shù)據(jù)庫中,生成的索引文件存儲在HDFS分布式文件系統(tǒng)上。同時,需要注意的是Lucene只提供了一個通用的結(jié)構(Document對象)來接受索引的輸入,所以,需要設計相應的解析轉(zhuǎn)換函數(shù),將數(shù)據(jù)庫中Word文檔、PDF文檔、HTML文檔等數(shù)據(jù)源構造成Lucene所支持的Document對象。

        4 系統(tǒng)實現(xiàn)的關鍵技術分析[10-11]

        4.1分布式索引

        就集中式索引而言,當索引的數(shù)量太大時,索引更新和搜索效率會非常低。而基于Hadoop的分布式Lucene搜索引擎可以很好地解決這一問題。它利用MapReduce函數(shù)為經(jīng)過文本提取模塊所提取出的Document文檔建立倒排索引。由于Lucene中的Document并不支持MapReduce輸出類型的Writable接口,無法直接使用Document作為MapReduce的輸出類型。所以,需要自定義了一個HDFSDocument類,來實現(xiàn)在Hadoop上建立Lucene索引的功能。

        采用倒排索引建立索引的過程為:①讀取數(shù)據(jù),并對其進行解析,按照IndexMetaRule類所描述的Lucene的Docu?ment與Hbase的列的對應機制,將每個字段和值生成Field對象。②創(chuàng)建Document對象,并將生成的Field對象添加到Document中。③將文檔加入索引器IndexWriter,利用索引器IndexWriter中的addDocument方法將文檔加入索引器;利用DocumentWriter來完成索引的寫入。

        筆者基于Hadoop的分布式Lucene搜索引擎,對原有的索引方法進行了改進。Lucene中定義了抽象類Directory用于存儲索引,Directory包含RAMDirectory和FSDirectory兩個子類。RAMDirectory方式在內(nèi)存中建立索引,寫入速度快效率高,但關機后索引會丟失,且由于受內(nèi)存容量的限制,無法一次性對所有文件進行索引,需要分批進行;FSDirectory方式在硬盤目錄中創(chuàng)建索引文件,其優(yōu)點是可以長期保存,缺點是需要與磁盤進行交互,頻繁地I/O操作會導致索引速度較慢。通過將這兩種方式相結(jié)合,先在內(nèi)存中的RAMDirec?tory目錄中建立索引,當索引數(shù)達到最大值時,對內(nèi)存進行刷新,將內(nèi)存中的索引文件批量的寫入到磁盤中的FSDirec?tory目錄中,這樣既能夠?qū)λ饕M行長期存儲,又能夠大大減少對磁盤的訪問,從而提高索引效率。

        4.2分布式檢索

        分布式檢索模塊中的檢索方法,與在單機上用Lucene進行檢索的方法基本相同。不同點在于傳統(tǒng)的搜索引擎在檢索時,使用的是FSDirectory類來構建IndexReader,而分布式檢索的過程,使用FSDirectory類,這個類封裝原有檢索類的方法,同時還支持HDFS系統(tǒng)。

        分布式檢索步驟為:①用戶提交檢索詞,解析器QueryP?arser對檢索詞進行解析生成Query對象;②分別計算出每個檢索關鍵詞的文檔頻率DF和逆文檔頻率IDF;③根據(jù)IDF計算出其結(jié)果得分。這一步主要是由IndexSearcher來實現(xiàn),但對IndexSearcher中的docFreq()和maxDoc()進行了繼承和覆蓋,返回值為DF和Document數(shù)量;④根據(jù)相關度排序算法將檢索結(jié)果集Hits進行歸并排序后顯示給用戶,并將結(jié)果寫入緩存系統(tǒng)中。

        4.3分詞器工具包

        Lucene自身提供的分詞器中支持中文分詞的有Standar?dAnalyzer分詞器和CJKAnalyzer分詞器。StandardAnalyzer分詞器將每個字作為一個詞,這樣會出現(xiàn)分出來的詞比較全面,但會產(chǎn)生大量的索引文件大大降低檢索速度;CJKAna?lyzer分詞器,按每兩個字進行切分,會造成分詞不準確問題。雖然這兩個分詞器都能實現(xiàn)基本的簡單分詞功能,但無法滿足分布式搜索引擎實現(xiàn)的功能[12]。

        基于Hadoop的分布式搜索引擎使用的第三方分詞器工具包為mmseg4j。mmseg4j使用MMSeg算法是實現(xiàn)中文分詞,MMSeg的算法是基于正向最大匹配,且已實現(xiàn)了Lucene 的analyzer,其詞語的正確識別率達到了98.41%。同時,在文本的提取方面,分布式搜索引擎使用Apache POI工具包實現(xiàn)Word、Excel、Powerpoint格式的文本提取,利用PDFBox工具包提取PDF格式的文檔文本,運用JTidy工具包來對HTML進行文本提取。

        5 實驗與性能測試分析

        5.1實驗硬件與軟件環(huán)境設置

        基于Hadoop的分布式搜索引擎的實驗搭建環(huán)境為8臺PC機:其中1臺為NameNode和MapReduce編程模型的Job?Tracke;1臺為SecondaryNameNode,6臺作為DataNode和Ma?pReduce編程模型中的TaskTracker;同時,還配備了1臺集中式的專業(yè)存儲陣列,進行性能對比測試。涉及兩個不同的硬件存儲設備,其具體的參數(shù)如表1所示。

        選取數(shù)據(jù)測試的軟件環(huán)境為:

        應用服務系統(tǒng)名稱:CDBOOK隨書光盤管理系統(tǒng);網(wǎng)址:http://202.193.80.185;數(shù)據(jù)總量:5TB;光盤總數(shù):14378種;網(wǎng)站訪問量:483643人次;下載總量:4250534次。

        5.2網(wǎng)絡拓撲結(jié)構

        應用平臺的軟硬件環(huán)境的網(wǎng)絡拓撲結(jié)構,如圖3所示。

        圖3 網(wǎng)絡拓撲結(jié)構

        5.3測試分析與實驗結(jié)論

        實驗的硬件與軟件環(huán)境搭建完成后,分別用5TB的隨書光盤數(shù)據(jù)對專用存儲上的集中式搜索和多臺PC組成的Ha?doop集群上的分布式搜索引擎之間的文件處理性能進行對比測試[13]。在測試的過程中,同時依次啟動Hadoop集群的5個節(jié)點、6個節(jié)點和7個節(jié)點。其性能測試的結(jié)果如圖4所示。

        圖4 分布式搜索引擎與集中式搜索檢索性能對比

        實驗結(jié)論[14]:

        ①基于Hadoop的分布式搜索引擎在檢索數(shù)據(jù)的過程中,啟動不同的節(jié)點,或集群中有某個節(jié)點失效時,分布式的搜索引擎仍可以穩(wěn)定地進行數(shù)據(jù)處理,這說明分布式的搜索引擎具有很高的可靠性能和穩(wěn)定性能。同時,該搜索引擎也具有高可擴展性,集群可以很方便地進行節(jié)點擴展。

        ②當文件搜索的數(shù)據(jù)量較少時,分布式搜索引擎幾乎和集中式搜索引擎性能幾乎一樣,甚至集中式要比分布式速度更快一些,這是由于分布式需要進行數(shù)據(jù)分塊且節(jié)點間進行通信也需要耗費時間。但隨著數(shù)據(jù)量的增加,分布式的優(yōu)勢逐漸顯現(xiàn)出來,且數(shù)量級越大、分布的節(jié)點越多,分布式搜索引擎的性能優(yōu)勢也就越明顯。特別是當文件量達到一定數(shù)量級時,單機的集中式檢索會出現(xiàn)性能瓶頸,但對于分布式檢索依然可以穩(wěn)定運行,而且節(jié)點數(shù)量越多,數(shù)據(jù)處理速度越快。

        6 結(jié)語

        筆者建立的基于Hadoop的分布式Lucene搜索引擎,實現(xiàn)了圖書館隨書光盤的高效、快速、精準、穩(wěn)定的分布式搜索,大大提升了用戶的應用體驗,提高了信息服務的水平和質(zhì)量。同時,該分布式的搜索引擎具有很好的二次開發(fā)和應用性;其自身搜索的可靠性、穩(wěn)定性、可擴展、分布式等特點,也使得該引擎能很好地在其他應用服務系統(tǒng)的搜索中使用,并進行再開發(fā)與再移植,有很廣闊的應用前景。

        參考文獻:

        [1]張偉哲,等.分布式搜索引擎系統(tǒng)效能建模與評價[J].軟件學報,2012(2):253-265.

        [2]陳嘉恒.Hadoop實戰(zhàn)[M].北京:機械工業(yè)出版社,2011.

        [3]印鑒,鄒勝.一種分布式搜索引擎設計[J].計算機科學,2001(10):74-77.

        [4]Apache Hadoop[EB/OL]http://hadoop.apache.org/.

        [5]Liu Chun,Guo Qing Ping.Analysis and Research of Web Chinese Retrieval System Based Lucene[J].Computer soci?ety,2009(12):1051-1055.

        [6]Zhang Yong,Li Jian- lin.Research and Improvement of Search Engine Based on Lucene[C]∥International Confer?ence on Intelligent Human-Machine Systems and Cyber?netics.Zhejiang:[s.n.],2009:270-273.

        [7]管建和,甘劍峰.基于Lucene全文檢索引擎的應用研究與實現(xiàn)[J].計算機工程與設計,2007(2):12-16.

        [8]夏敏捷,李娟.基于Lucene的電子文件全文檢索系統(tǒng)研究[J].蘭臺世界,2015(3):25-26.

        [9]陳艷春,李雙平.基于Lucene的企業(yè)級搜索引擎的設計與實現(xiàn)[J].現(xiàn)代圖書情報技術,2007(8):63-66.

        [10]曹強.基于Lucene的Web站點站內(nèi)全文檢索系統(tǒng)的設計與實現(xiàn)[J].圖書情報工作,2007(9):124-144.

        [11]姚樹宇,趙少東.一種使用分布式技術的搜索引擎[J].計算機應用與軟件,2005(10):127-129.

        [12]周敬才,胡華平,岳虹.基于Lucene的全文檢索系統(tǒng)的設計與實現(xiàn)[J].計算機工程與科學.2015(2):252-256.

        [13]夏天,等.Lucene全文檢索軟件及其在學科信息服務平臺中的應用[J].圖書情報工作,2011(11):106-109,87.

        [14]彭哲,陳敬文.Lucene全文檢索的應用及檢索效率測試研究[J].圖書館雜志,2009(8):63-67.

        柏雪1988年生。研究方向:分布式檢索、云計算。

        收稿日期:(2015-12-10;責編:姚雪梅。)

        猜你喜歡
        搜索引擎分布式檢索
        2019年第4-6期便捷檢索目錄
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        專利檢索中“語義”的表現(xiàn)
        專利代理(2016年1期)2016-05-17 06:14:36
        基于DDS的分布式三維協(xié)同仿真研究
        雷達與對抗(2015年3期)2015-12-09 02:38:50
        網(wǎng)絡搜索引擎亟待規(guī)范
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        廣告主與搜索引擎的雙向博弈分析
        西門子 分布式I/O Simatic ET 200AL
        國際標準檢索
        天天天综合网| 成熟的女人毛茸茸色视频| 国产性色av一区二区| 国产精品久久精品第一页| 欧洲美女黑人粗性暴交| 免费一区二区三区久久| 一区二区免费电影| 久久婷婷国产五月综合色| 国产一区二区三区av免费| 无遮挡呻吟娇喘视频免费播放 | 伊人久久大香线蕉av波多野结衣 | 久久99久久99精品免观看| 青青操国产在线| 日韩中文字幕网站| 国内精品少妇久久精品| av免费不卡一区二区| 亚洲va无码va在线va天堂| 国产精品久久婷婷六月丁香| 国产97色在线 | 免| 国产午夜精品av一区二区三| 亚洲av专区国产一区| 亚洲av日韩av在线观看| 久久国产偷| 人妻精品一区二区免费| 国产激情小视频在线观看| 中国一级特黄真人片久久| 久久亚洲国产成人精品性色| 久久久男人天堂| 精品亚洲视频免费观看网站| 丝袜美腿人妻第一版主| 国产成人精品日本亚洲专区61| 欧美 变态 另类 人妖| 国产aⅴ天堂亚洲国产av| 一区二区三区亚洲免费| 人人妻人人澡人人爽欧美一区| 久久精品国产亚洲av高清热| 99精品一区二区三区免费视频| 亚洲美女性生活一级片| 国产一区二区精品亚洲| 亚洲热妇无码av在线播放| 日本久久久|