• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于分布式消息隊(duì)列的企業(yè)級(jí)全文檢索模型研究

      2017-07-10 10:27:27
      關(guān)鍵詞:全文檢索企業(yè)級(jí)隊(duì)列

      李 政 武 彤

      (貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴州 貴陽(yáng) 550025)

      基于分布式消息隊(duì)列的企業(yè)級(jí)全文檢索模型研究

      李 政 武 彤

      (貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴州 貴陽(yáng) 550025)

      針對(duì)傳統(tǒng)集中式全文檢索系統(tǒng)的查詢性能不足的問(wèn)題,提出基于分布式消息隊(duì)列構(gòu)建的企業(yè)級(jí)分布式全文檢索模型。該模型充分利用分布式消息隊(duì)列將查詢集群中的各個(gè)節(jié)點(diǎn)去耦合,以異步方式對(duì)查詢請(qǐng)求進(jìn)行處理,提高整個(gè)集群的查詢吞吐量。從該模型的總體結(jié)構(gòu)、分布式全文檢索算法過(guò)程設(shè)計(jì)、算法驗(yàn)證三個(gè)方面進(jìn)行了闡述,驗(yàn)證了該模型的可行性,并且驗(yàn)證結(jié)果表明具有良好的查詢性能。

      分布式消息隊(duì)列 企業(yè)級(jí)全文檢索 分布式全文檢索

      0 引 言

      隨著信息化技術(shù)的不斷發(fā)展,大、中型企業(yè)對(duì)信息化應(yīng)用的規(guī)模也在不斷擴(kuò)大,應(yīng)用的需求也越來(lái)越復(fù)雜。其中企業(yè)對(duì)各類文檔、報(bào)表數(shù)據(jù)的檢索需求從傳統(tǒng)的檢索方式發(fā)展為全文檢索的方式。而傳統(tǒng)的企業(yè)信息化平臺(tái)中只提供傳統(tǒng)的搜索功能甚至并沒(méi)有搜索功能,對(duì)全文檢索的應(yīng)用較少。

      企業(yè)級(jí)全文檢索對(duì)檢索信息的整合性、安全性、準(zhǔn)確性都有較高的要求[1],文檔來(lái)源多,雖然單一應(yīng)用系統(tǒng)中的文檔數(shù)量通常較少,但是對(duì)于整個(gè)企業(yè)的信息化平臺(tái)建設(shè)的全文檢索系統(tǒng)需要處理的文檔數(shù)量較多。若依據(jù)集中式方法建立全文檢索引擎,則在查詢效率上可能會(huì)不盡如人意。分布式技術(shù)是當(dāng)前處理大批量數(shù)據(jù)、復(fù)雜計(jì)算的流行方式,分布式全文檢索提出可以解決企業(yè)級(jí)全文檢索的索引建立和查詢的效率問(wèn)題。

      分布式全文檢索技術(shù)的引入提高了全文檢索系統(tǒng)在應(yīng)對(duì)大數(shù)據(jù)量查詢的性能以及全文檢索系統(tǒng)結(jié)構(gòu)的可擴(kuò)展性。分布式全文檢索的常用方式包括一種基于P2P的分布式搜索技術(shù)以及基于MapReduce的分布式搜索技術(shù)等[2]。P2P搜索技術(shù)中整個(gè)網(wǎng)絡(luò)中不存在中心節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)都同時(shí)具有信息消費(fèi)者、信息提供者和信息通信三個(gè)方面的功能?;贛apReduce的分布式搜索技術(shù)的應(yīng)用就是傳統(tǒng)的集中式網(wǎng)絡(luò)服務(wù),基于此技術(shù)的搜索引擎系統(tǒng),擁有多個(gè)單搜索引擎,這些引擎分布在不同的地方,中心搜索引擎利用這些分布的、單個(gè)的搜索引擎的結(jié)果進(jìn)行整合得到完整的結(jié)果。元搜索引擎技術(shù)是一種基于搜索引擎的搜索引擎[3],通過(guò)整合多個(gè)獨(dú)立的搜索引擎結(jié)果向用戶提供查詢結(jié)果。

      分布式消息隊(duì)列作為一種重要的分布式系統(tǒng)通信方式已被當(dāng)前很多分布式系統(tǒng)的設(shè)計(jì)所采用。在文獻(xiàn)[4]中所提出的一種基于分布式消息隊(duì)列的通信方法的數(shù)據(jù)傳輸速率證實(shí)明顯優(yōu)于Socket方法。并且得益于消息隊(duì)列對(duì)消息生產(chǎn)者和消息消費(fèi)者之間的解耦,使得分布式系統(tǒng)的靈活性和容錯(cuò)性大大提高,相應(yīng)地,整個(gè)系統(tǒng)所能承受的負(fù)載也會(huì)有所提升。同樣,消息隊(duì)列把分布式集群中各個(gè)節(jié)點(diǎn)的關(guān)系耦合度降低,使得這樣的結(jié)構(gòu)可以易于擴(kuò)展。那么如何將分布式消息隊(duì)列技術(shù)應(yīng)用在企業(yè)級(jí)分布式全文檢索中就成為了一個(gè)值得研究的問(wèn)題。

      本文在前述企業(yè)級(jí)全文檢索和相關(guān)分布式全文檢索方法的基礎(chǔ)上,結(jié)合分布式消息隊(duì)列技術(shù),提出一種滿足企業(yè)級(jí)分布式全文檢索的模型。

      1 總體結(jié)構(gòu)

      由于企業(yè)級(jí)全文檢索對(duì)權(quán)限控制嚴(yán)格要求,結(jié)合元搜索引擎的思想,分布式全文檢索系統(tǒng)可以分為多個(gè)主題,這個(gè)主題一般是由人工設(shè)定的,例如財(cái)務(wù)、人事、生產(chǎn)、科研等。這里所述的主題與面向主題的搜索引擎[5]中的概念類似,整個(gè)系統(tǒng)可以人為設(shè)定或通過(guò)聚類算法對(duì)文檔進(jìn)行分主題管理,將數(shù)據(jù)量較大的文檔集合拆分為若干個(gè)不同主題的文檔集。系統(tǒng)針對(duì)每個(gè)主題都可以進(jìn)行權(quán)限控制,結(jié)合其他權(quán)限控制方式則可以實(shí)現(xiàn)企業(yè)級(jí)全文檢索嚴(yán)格的文檔資源訪問(wèn)控制功能。

      從邏輯結(jié)構(gòu)上來(lái)看,每個(gè)主題作為一個(gè)相對(duì)獨(dú)立的搜索接口分布在工作節(jié)點(diǎn)上,由至少一個(gè)工作節(jié)點(diǎn)來(lái)負(fù)責(zé)這個(gè)主題內(nèi)文檔的處理工作。各個(gè)工作節(jié)點(diǎn)之間的通信和事務(wù)處理分別通過(guò)分布式消息隊(duì)列和分布式協(xié)調(diào)器來(lái)實(shí)現(xiàn)。每一個(gè)工作節(jié)點(diǎn)同時(shí)具有處理用戶的查詢請(qǐng)求、響應(yīng)其他節(jié)點(diǎn)所提交的查詢、進(jìn)行文檔索引建立的功能,每個(gè)工作節(jié)點(diǎn)存儲(chǔ)有該節(jié)點(diǎn)對(duì)應(yīng)主題的索引分片數(shù)據(jù)。在查詢時(shí)不同索引節(jié)點(diǎn)上會(huì)產(chǎn)生不同的查詢結(jié)果,然后統(tǒng)一對(duì)這些結(jié)果集進(jìn)行合并得到最終查詢結(jié)果。

      由上述結(jié)構(gòu)可以看出,整個(gè)系統(tǒng)以一種具有多入口的計(jì)算集群的方式提供服務(wù),而通過(guò)負(fù)載均衡方式對(duì)外展示統(tǒng)一的接口??蛻魴C(jī)通過(guò)這個(gè)接口發(fā)送查詢請(qǐng)求經(jīng)過(guò)負(fù)載均衡均勻分布在集群內(nèi)各個(gè)工作節(jié)點(diǎn)上以提高系統(tǒng)效率。企業(yè)級(jí)全文檢索系統(tǒng)的總體結(jié)構(gòu)如圖1所示。

      圖1 總體架構(gòu)圖

      1.1 分布式消息隊(duì)列

      分布式消息隊(duì)列是運(yùn)行在一組通過(guò)網(wǎng)絡(luò)連接的計(jì)算機(jī)集群上的軟件實(shí)體,其維護(hù)著一個(gè)或多個(gè)存儲(chǔ)消息的隊(duì)列,并且提供了對(duì)消息的發(fā)布或訂閱操作。使用消息隊(duì)列進(jìn)行通信的程序有時(shí)又稱為消息生產(chǎn)者或消息消費(fèi)者。分布式消息隊(duì)列將傳統(tǒng)用于進(jìn)程間通信的方式發(fā)展到了集群環(huán)境中。當(dāng)前分布式消息隊(duì)列的一個(gè)主要協(xié)議為高級(jí)消息隊(duì)列協(xié)議(AMQP),其統(tǒng)一了消息模式,如發(fā)布/訂閱、隊(duì)列、事務(wù)以及流數(shù)據(jù)。該協(xié)議定義了通過(guò)網(wǎng)絡(luò)發(fā)送的字節(jié)流數(shù)據(jù)格式,所以任何實(shí)現(xiàn)了該協(xié)議的程序都可以進(jìn)行交互,做到跨語(yǔ)言、跨平臺(tái)[6]。AMQP中定義了消息的生產(chǎn)者、消息交換器、消息消費(fèi)者,消息交換器在中間起到了消息的路由以及消息存儲(chǔ)的功能,通過(guò)消息路由機(jī)制可以方便地控制不同主題消息的分發(fā)。

      在該系統(tǒng)結(jié)構(gòu)中分布式消息隊(duì)列充當(dāng)集群中所有節(jié)點(diǎn)之間對(duì)等通信的橋梁,各個(gè)節(jié)點(diǎn)通過(guò)消息隊(duì)列發(fā)布查詢請(qǐng)求、查詢結(jié)果以及接收查詢請(qǐng)求。一般分布式消息隊(duì)列的消息發(fā)布分為同步消息和異步消息兩種方式。同步消息方式情況下,消息生產(chǎn)者發(fā)布消息后需要等待消息消費(fèi)者的響應(yīng)才能完成一次消息通信過(guò)程,異步消息方式情況下消息生產(chǎn)者只負(fù)責(zé)把消息推送至分布式消息隊(duì)列中,而不需要等待消息消費(fèi)者的響應(yīng)。在分布式全文檢索的查詢過(guò)程中使用異步消息模式,各索引節(jié)點(diǎn)可以同時(shí)進(jìn)行某一查詢請(qǐng)求的處理,這樣對(duì)于整個(gè)系統(tǒng)的吞吐量有更大提高。

      1.2 分布式協(xié)調(diào)器

      分布式系統(tǒng)需要一個(gè)主控制節(jié)點(diǎn)管理集群內(nèi)各個(gè)工作節(jié)點(diǎn)的事務(wù)處理,保證集群內(nèi)數(shù)據(jù)的一致性。分布式協(xié)調(diào)器可以在一個(gè)所有節(jié)點(diǎn)對(duì)等的集群上實(shí)現(xiàn):① 各節(jié)點(diǎn)數(shù)據(jù)一致性,提供分布式鎖服務(wù);② 在部分節(jié)點(diǎn)失效的情況下提供服務(wù)的能力;③ 實(shí)時(shí)監(jiān)測(cè)節(jié)點(diǎn)情況,處理節(jié)點(diǎn)失效、連接超時(shí)、鏈接失效等異常。在分布式系統(tǒng)中保證以上三點(diǎn)非常重要,同時(shí)不能由于協(xié)調(diào)器的性能問(wèn)題對(duì)分布式集群的性能有過(guò)大影響。Zookeeper是Google的Chubby的一個(gè)開源實(shí)現(xiàn),其為分布式系統(tǒng)提供了一個(gè)高效的數(shù)據(jù)一致性解決方法,并且基于Zookeeper可以實(shí)現(xiàn)分布式系統(tǒng)鎖功能[7],在此基礎(chǔ)上實(shí)現(xiàn)分布式事務(wù)等功能。

      分布式協(xié)調(diào)器管理著整個(gè)集群的元數(shù)據(jù),并且保證其一致性,可以在數(shù)據(jù)變化時(shí)通知相關(guān)節(jié)點(diǎn)。分布式全文檢索中的各個(gè)工作節(jié)點(diǎn)需要在協(xié)調(diào)器中注冊(cè)一個(gè)對(duì)應(yīng)自己的臨時(shí)數(shù)據(jù)節(jié)點(diǎn)。利用協(xié)調(diào)器在客戶端會(huì)話中斷時(shí)自動(dòng)刪除臨時(shí)數(shù)據(jù)節(jié)點(diǎn)的特性來(lái)實(shí)時(shí)監(jiān)控處理工作節(jié)點(diǎn)的失效問(wèn)題。在某一節(jié)點(diǎn)失效的情況下,該節(jié)點(diǎn)在協(xié)調(diào)器中的元數(shù)據(jù)中一個(gè)臨時(shí)節(jié)點(diǎn)會(huì)被刪除,協(xié)調(diào)器會(huì)立即通知正在等待響應(yīng)的節(jié)點(diǎn),已發(fā)送的查詢請(qǐng)求可以實(shí)時(shí)取消,新來(lái)的查詢請(qǐng)求不再包含失效的節(jié)點(diǎn)。若是在索引建立的時(shí)刻某節(jié)點(diǎn)失效,可以依據(jù)兩種策略進(jìn)行處理,一種是取消該次索引建立,另一種是在消息隊(duì)列中保存索引建立的消息,待失效節(jié)點(diǎn)恢復(fù)工作后還可以從之前的消息隊(duì)列位置開始處理數(shù)據(jù)。

      1.3 工作節(jié)點(diǎn)

      工作節(jié)點(diǎn)是整個(gè)系統(tǒng)中用于處理查詢請(qǐng)求以及接收用戶端請(qǐng)求的計(jì)算單元,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)著一個(gè)或多個(gè)上述檢索主題。也就是說(shuō),一個(gè)節(jié)點(diǎn)通常只處理一個(gè)或若干個(gè)主題的文檔,當(dāng)建立索引時(shí)每個(gè)文檔根據(jù)不同的主題分發(fā)到相應(yīng)節(jié)點(diǎn)上進(jìn)行處理。在同一主題具有多個(gè)節(jié)點(diǎn)的情況下通過(guò)哈希算法將文檔均勻地分發(fā)給不同節(jié)點(diǎn)處理。同理查詢時(shí)根據(jù)用戶的權(quán)限不同,分發(fā)的查詢?nèi)蝿?wù)不會(huì)每個(gè)工作節(jié)點(diǎn)都進(jìn)行接收處理。

      工作節(jié)點(diǎn)中可以采用Lucene作為處理全文檢索索引以及查詢的基礎(chǔ)組件,Lucene具有索引查詢效率高,功能強(qiáng)大等特點(diǎn),并且支持全文檢索的查詢模型,例如布爾表達(dá)式查詢。Lucene的主要組成部分包括分詞模塊(Analysis)、索引模塊(Index)和檢索模塊(Search)[8]。分詞模塊作為文檔數(shù)據(jù)的預(yù)處理組件,具有良好的擴(kuò)展性,可以方便地使用不同的分詞引擎,實(shí)現(xiàn)分詞結(jié)果的優(yōu)化。索引模塊提供了增量索引和批量索引的功能,并且支持近實(shí)時(shí)搜索,在索引真正寫入文件之前即可提供查詢功能。檢索模塊是真正提供查詢功能的部分,其不局限于文本查詢,還支持復(fù)雜的表達(dá)式查詢功能,可以根據(jù)用戶構(gòu)建的檢索模型表達(dá)式樹進(jìn)行快速的查詢。

      2 分布式全文檢索過(guò)程設(shè)計(jì)

      全文檢索系統(tǒng)主要包括兩個(gè)過(guò)程:一是索引建立過(guò)程,二是查詢過(guò)程。企業(yè)級(jí)全文檢索系統(tǒng)中文檔來(lái)源于企業(yè)中的各個(gè)業(yè)務(wù)應(yīng)用系統(tǒng),各個(gè)業(yè)務(wù)系統(tǒng)中包含數(shù)據(jù)庫(kù)數(shù)據(jù)、文本數(shù)據(jù)、半結(jié)構(gòu)化表格數(shù)據(jù)等,文檔類型繁多,所以需要考慮文檔索引的存儲(chǔ),設(shè)計(jì)出高效的索引建立以及查詢方法。

      傳統(tǒng)集中式全文檢索的索引建立方式比較單一,一般是通過(guò)單個(gè)接口進(jìn)行文檔的獲取和索引建立工作,在效率上會(huì)有性能瓶頸。且隨著文檔數(shù)量的增多,集中式的方式擴(kuò)展性上也會(huì)出現(xiàn)很大問(wèn)題。而分布式全文檢索中可以采用更加靈活的調(diào)度方式對(duì)文檔數(shù)據(jù)進(jìn)行分發(fā)處理,也很容易通過(guò)增加節(jié)點(diǎn)的方式進(jìn)行系統(tǒng)的橫向擴(kuò)展。

      2.1 全文索引的建立

      本文所述分布式全文索引的結(jié)構(gòu)是根據(jù)主題進(jìn)行分片,來(lái)源于企業(yè)各個(gè)應(yīng)用系統(tǒng)的文檔資源通常自然地對(duì)應(yīng)了相應(yīng)主題。這樣的索引分片方法其實(shí)屬于基于文檔的分割方法,每個(gè)工作節(jié)點(diǎn)上的索引分片相對(duì)獨(dú)立,通過(guò)哈希算法將文檔分布在對(duì)應(yīng)主題的多個(gè)索引節(jié)點(diǎn)中。全文索引的建立主要包括的組件有:

      1) 文檔數(shù)據(jù)隊(duì)列:用于存放待索引的文檔信息,隊(duì)列以主題劃分,通過(guò)消息路由分發(fā)不同主題的文檔數(shù)據(jù),負(fù)責(zé)不同主題的工作節(jié)點(diǎn)在文檔工作隊(duì)列中獲取文檔信息進(jìn)行索引建立;

      2) 文檔數(shù)據(jù)網(wǎng)關(guān):按時(shí)從業(yè)務(wù)系統(tǒng)中根據(jù)需要抽取各類型文檔數(shù)據(jù)放入文檔數(shù)據(jù)隊(duì)列中;

      3) 文檔索引引擎:分布在各個(gè)工作節(jié)點(diǎn)上運(yùn)行的進(jìn)程,監(jiān)聽文檔數(shù)據(jù)隊(duì)列,在有新的文檔操作消息到來(lái)時(shí)進(jìn)行相應(yīng)的索引建立、索引更新、索引刪除操作,在索引節(jié)點(diǎn)中采用Lucene實(shí)現(xiàn)基本索引功能,將文檔進(jìn)行文本分詞后建立索引文件進(jìn)行存儲(chǔ)。

      全文索引建立結(jié)構(gòu)如圖2所示,根據(jù)這一索引建立結(jié)構(gòu),可以有效地管理文檔索引建立的過(guò)程,異步化的方式減小了發(fā)生故障的影響。在節(jié)點(diǎn)索引建立方面目前最流行的辦法是以文檔分詞后的詞語(yǔ)作為索引項(xiàng)進(jìn)行倒排索引,查詢時(shí)通過(guò)詞向量相似度計(jì)算算法來(lái)獲取以相關(guān)程度排序的查詢結(jié)果。如一種基于Lucene實(shí)現(xiàn)的采用正相最大匹配分詞算法的索引技術(shù)[9],可以快速對(duì)文檔進(jìn)行分詞并建立索引。索引建立后的文件持久化存儲(chǔ)在工作節(jié)點(diǎn)上提供查詢請(qǐng)求。

      圖2 全文索引過(guò)程

      2.2 全文檢索的查詢算法

      根據(jù)索引的分片結(jié)構(gòu),系統(tǒng)在響應(yīng)用戶查詢的時(shí)候會(huì)根據(jù)權(quán)限方面的區(qū)別向不同的索引服務(wù)器發(fā)送查詢請(qǐng)求,最后根據(jù)各個(gè)服務(wù)器的響應(yīng)結(jié)果集綜合排序后返回結(jié)果給用戶。

      在響應(yīng)用戶查詢的方式上傳統(tǒng)的分布式全文檢索需要一個(gè)主節(jié)點(diǎn)去進(jìn)行處理,這樣的結(jié)構(gòu)會(huì)導(dǎo)致主節(jié)點(diǎn)的負(fù)載過(guò)高,不利于分布式集群的擴(kuò)展,在本文所述的結(jié)構(gòu)中每一個(gè)工作節(jié)點(diǎn)都可以響應(yīng)查詢。

      具體的全文檢索查詢算法流程如下:

      1) 用戶向系統(tǒng)發(fā)起查詢請(qǐng)求,經(jīng)過(guò)負(fù)載均衡后用戶的請(qǐng)求轉(zhuǎn)發(fā)給某一臺(tái)工作節(jié)點(diǎn),此節(jié)點(diǎn)作為臨時(shí)主節(jié)點(diǎn)。

      2) 臨時(shí)主節(jié)點(diǎn)接收到查詢請(qǐng)求,對(duì)此次查詢生成一個(gè)全局唯一的查詢Id,在分布式消息隊(duì)列中新建以此查詢Id為Key的消息隊(duì)列。

      3) 臨時(shí)主節(jié)點(diǎn)驗(yàn)證查詢請(qǐng)求中用戶的權(quán)限信息,向滿足權(quán)限的查詢主題消息隊(duì)列中添加含有查詢Id以及查詢請(qǐng)求內(nèi)容的消息。

      4) 臨時(shí)主節(jié)點(diǎn)在分布式協(xié)調(diào)器中注冊(cè)以查詢Id為名稱的數(shù)據(jù)節(jié)點(diǎn),并在該數(shù)據(jù)節(jié)點(diǎn)下添加各主題對(duì)應(yīng)名字的數(shù)據(jù)節(jié)點(diǎn)用于標(biāo)識(shí)某個(gè)主題的查詢是否已經(jīng)成功響應(yīng),然后監(jiān)聽各個(gè)主題對(duì)應(yīng)數(shù)據(jù)節(jié)點(diǎn)的修改事件。

      5) 索引節(jié)點(diǎn)通過(guò)監(jiān)聽自己所負(fù)責(zé)的主題隊(duì)列可以及時(shí)獲取到臨時(shí)主節(jié)點(diǎn)添加的查詢請(qǐng)求,索引節(jié)點(diǎn)立即根據(jù)線程池的情況分配或新建一個(gè)線程對(duì)這個(gè)查詢進(jìn)行處理。

      6) 索引節(jié)點(diǎn)的一個(gè)線程通過(guò)索引引擎獲取滿足查詢的結(jié)果列表,然后將該結(jié)果列表序列化后發(fā)送到與查詢Id相對(duì)應(yīng)的消息隊(duì)列中,形成多個(gè)結(jié)果集R1,R2,…,RN。最后在分布式協(xié)調(diào)器中將查詢Id對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)下的主題數(shù)據(jù)節(jié)點(diǎn)標(biāo)識(shí)設(shè)置為已完成。

      7) 臨時(shí)主節(jié)點(diǎn)在所有節(jié)點(diǎn)查詢完成或者響應(yīng)超時(shí)的情況下將查詢Id相對(duì)應(yīng)的消息隊(duì)列中結(jié)果集合并后發(fā)送給用戶,完成一次查詢請(qǐng)求。

      3 算法驗(yàn)證

      3.1 驗(yàn)證環(huán)境

      對(duì)于本文研究算法的驗(yàn)證,采用的驗(yàn)證環(huán)境是基于虛擬化平臺(tái)的3臺(tái)虛擬化集群,其中宿主機(jī)和虛擬機(jī)的配置分別如下表1、表2所示。

      表1 宿主機(jī)硬件配置

      表2 虛擬機(jī)計(jì)算資源

      3.2 算法實(shí)現(xiàn)

      根據(jù)本文所述的分布式全文檢索模型以及全文檢索查詢算法流程,算法實(shí)現(xiàn)階段包括以下工作:

      1) 使用RabbitMQ部署分布式消息隊(duì)列集群,提供分布式消息隊(duì)列服務(wù);

      2) 使用Zookeeper部署了分布式協(xié)調(diào)器,提供分布式元數(shù)據(jù)管理以及分布式鎖功能;

      3) 使用Lucene實(shí)現(xiàn)了分布式文檔索引引擎,對(duì)100GB的企業(yè)文檔數(shù)據(jù)進(jìn)行索引;

      4) 結(jié)合全文檢索算法流程,使用Lucene提供基礎(chǔ)索引操作功能以及RabbitMQ客戶端和Zookeeper客戶端實(shí)現(xiàn)了工作節(jié)點(diǎn)的功能。

      通過(guò)算法的實(shí)現(xiàn)驗(yàn)證了所提出模型的可行性。

      為了與本文所提出的模型進(jìn)行對(duì)比,采用Lucene實(shí)現(xiàn)了一個(gè)集中式全文檢索服務(wù),以單服務(wù)器形式部署,同樣對(duì)100GB的文檔進(jìn)行了索引。

      在此基礎(chǔ)上進(jìn)行了集群的性能測(cè)試,主要測(cè)試分布式全文檢索的并發(fā)查詢性能,分別測(cè)試了500至10 000并發(fā)請(qǐng)求量下的響應(yīng)時(shí)間。圖3為該模型在不同查詢并發(fā)數(shù)下與集中式全文檢索的平均響應(yīng)時(shí)間對(duì)比。通過(guò)性能測(cè)試可以看出分布式全文檢索在并發(fā)請(qǐng)求數(shù)上升的情況下也可以保持較為平緩的響應(yīng)時(shí)間增長(zhǎng)。

      圖3 并發(fā)性能測(cè)試

      4 結(jié) 語(yǔ)

      當(dāng)前全文檢索技術(shù)在企業(yè)信息化平臺(tái)中的應(yīng)用相對(duì)較少,并且企業(yè)信息化平臺(tái)中的大量文檔數(shù)據(jù)來(lái)源以及企業(yè)級(jí)全文檢索對(duì)整合性、安全性、準(zhǔn)確性以及查詢性能的要求,促使企業(yè)級(jí)全文檢索向分布式方向發(fā)展。分布式全文檢索系統(tǒng)相較于集中式全文檢索系統(tǒng)具有吞吐量大、易擴(kuò)展等特點(diǎn),本文提出了基于分布式消息隊(duì)列構(gòu)建的企業(yè)級(jí)分布式全文檢索模型。該模型利用分布式消息隊(duì)列將查詢集群中的各個(gè)工作節(jié)點(diǎn)之間的關(guān)系松耦合化,以異步處理的方式對(duì)查詢請(qǐng)求進(jìn)行處理,通過(guò)驗(yàn)證,該模型可以提高整個(gè)集群的查詢吞吐量。

      [1] 武駿,王雅娜,趙剛,等.企業(yè)級(jí)搜索的技術(shù)特征分析[C]//第二十一屆全國(guó)計(jì)算機(jī)信息管理學(xué)術(shù)研討會(huì),2007.銀川:中國(guó)科學(xué)技術(shù)情報(bào)學(xué)會(huì),2007:79-83.

      [2] 蔣建洪.主要分布式搜索引擎技術(shù)的研究[J].科學(xué)技術(shù)與工程,2007,7(10):2418-2424.

      [3] 李廣建,黃崑.元搜索引擎及其主要技術(shù)[J].情報(bào)科學(xué),2002,20(2):175-179.

      [4] 薛鵬飛,胡榮貴,胡勁松.基于ZeroMQ的分布式系統(tǒng)通信方法[J].計(jì)算機(jī)應(yīng)用,2015,35(S2):34-37.

      [5] 姜華.基于Lucene面向主題搜索引擎的研究與設(shè)計(jì)[D].上海:華東師范大學(xué),2007.

      [6] 吳煒鑫,王宇,王興偉,等.基于AMQP的校園消息總線系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].通信學(xué)報(bào),2013,34(Z2):180-183.

      [7] 劉芬,王芳,田昊.基于Zookeeper的分布式鎖服務(wù)及性能優(yōu)化[J].計(jì)算機(jī)研究與發(fā)展,2014(S1):229-234.

      [8] 李永春,丁華福.Lucene的全文檢索的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):12-15.

      [9] 鄭榕增,林世平.基于Lucene的中文倒排索引技術(shù)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(3):80-83.

      RESEARCH ON ENTERPRISE FULL-TEXT RETRIEVAL MODEL BASED ON DISTRIBUTED MESSAGE QUEUE

      Li Zheng Wu Tong

      (SchoolofComputerScienceandTechnology,GuizhouUniversity,Guiyang550025,Guizhou,China)

      Aiming at the problem of insufficient query performance of traditional centralized full-text retrieval system, this paper proposes a distributed enterprise full-text retrieval model based on distributed message queue construction. The model makes full use of the distributed message queue to couple each node in the query cluster to process the query request in an asynchronous way, and to improve the throughput of the whole cluster. We elaborate the feasibility of the model from three aspects: the overall structure, distributed full-text retrieval algorithm design process, algorithm verification, and the validation results show that it has a good query performance.

      Distributed message queue Enterprise full-text retrieval Distributed full-text retrieval

      2016-08-17。李政,碩士生,主研領(lǐng)域:數(shù)據(jù)庫(kù)技術(shù),數(shù)據(jù)挖掘技術(shù)。武彤,教授。

      TP311.133.1

      A

      10.3969/j.issn.1000-386x.2017.06.052

      猜你喜歡
      全文檢索企業(yè)級(jí)隊(duì)列
      企業(yè)級(jí)BOM數(shù)據(jù)管理概要
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      在隊(duì)列里
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      基于慕課網(wǎng)的“企業(yè)級(jí)應(yīng)用開發(fā)”課堂教學(xué)改革探索
      電子制作(2017年10期)2017-04-18 07:23:03
      Oracle數(shù)據(jù)庫(kù)全文檢索性能研究
      企業(yè)級(jí)信息系統(tǒng)應(yīng)用級(jí)災(zāi)備建設(shè)與應(yīng)用
      廣西電力(2016年4期)2016-07-10 10:23:38
      城市軌道交通企業(yè)級(jí)BIM應(yīng)用策劃研究
      基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
      衡阳市| 晋州市| 河津市| 弋阳县| 榆树市| 亳州市| 胶州市| 延长县| 平顶山市| 澄迈县| 荣昌县| 榆中县| 阿瓦提县| 钟山县| 岳阳县| 福安市| 平果县| 会泽县| 治县。| 东乡族自治县| 北流市| 鹰潭市| 凭祥市| 纳雍县| 永安市| 临沧市| 唐海县| 广昌县| 禹州市| 伊宁县| 滁州市| 盱眙县| 余干县| 海南省| 托里县| 南部县| 金湖县| 紫金县| 太原市| 石阡县| 建瓯市|