摘 要: 在挖掘海量數(shù)據(jù)集過程中,傳統(tǒng)海量數(shù)據(jù)檢索方法無法適應(yīng)海量題庫中數(shù)據(jù)的快速增加趨勢,不能在有限時(shí)間內(nèi)獲取高質(zhì)量的挖掘結(jié)果。因此,采用Elastic Search 分布式架構(gòu)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了海量題庫中的特定數(shù)據(jù)快速搜索系統(tǒng)。該系統(tǒng)由用戶界面、數(shù)據(jù)庫連接模塊、數(shù)據(jù)抽取模塊、索引塑造檢索以及索引檢索和數(shù)據(jù)搜索模塊等構(gòu)成。詳細(xì)介紹了數(shù)據(jù)抽取模塊、索引塑造模塊以及索引檢索模塊的設(shè)計(jì)和實(shí)現(xiàn)過程,3個(gè)模塊共同實(shí)現(xiàn)海量題庫中的特定數(shù)據(jù)快速搜索任務(wù)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)的搜索平均響應(yīng)時(shí)間、系統(tǒng)資源消耗以及索引檢索性能三方面的性能較高,能夠滿足用戶快速檢索特定數(shù)據(jù)的需求。
關(guān)鍵詞: 海量題庫; 特定數(shù)據(jù); 數(shù)據(jù)搜索; 檢索方法
中圖分類號: TN911?34; TP311.52 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)20?0049?04
Abstract: In the process of mining huge amounts of data set, the traditional massive data retrieval method is unable to adapt to the rapidly increasing trends of data in the massive question banks, and can not achieve the high quality mining results within a limit time. Therefore, the system for specific data fast search in the massive question banks was designed and implemented with Elastic Search distributed architecture technology. The system consists of user interface, database connection module, data extraction module, index shaping retrieval module, index retrieval module, data search module, etc. The design and implementation processes of data extraction module, index shaping module and index retrieval module are introduced in detail. The three modules accomplish the quick search task of specific data in the massive question bank collaboratively. The experimental results show that the system has high performance in three aspects of average response time, system resource consumption and index retrieval performance, and can meet users′ needs to quickly retrieve the specific data.
Keywords: massive question bank; specific data; data search; retrieval method
0 引 言
隨著計(jì)算機(jī)技術(shù)的發(fā)展以及教育方法的不斷改進(jìn),計(jì)算機(jī)題庫系統(tǒng)對于確保高質(zhì)量考試具有重要應(yīng)用意義[1?2]。海量題庫中的信息產(chǎn)生的數(shù)據(jù)具有規(guī)模大和形成速度快的特征,如何對這些海量數(shù)據(jù)進(jìn)行高效檢索,成為當(dāng)前分析的重點(diǎn)方向[3]。傳統(tǒng)海量數(shù)據(jù)檢索方法,無法適應(yīng)海量題庫中數(shù)據(jù)的快速增加趨勢,數(shù)據(jù)檢索效率和質(zhì)量較低,存在較大的弊端[4?6]。文獻(xiàn)[7]提出的改進(jìn)并行算法采用主從模型實(shí)現(xiàn)劃分聚類算法的并行,算法運(yùn)行的停止條件為是否符合覆蓋參數(shù),實(shí)現(xiàn)特定數(shù)據(jù)的挖掘,但是該方法受到覆蓋參數(shù)的限制,存在較高的局限性。文獻(xiàn)[8]通過I?TREE INDEX算法挖掘特定數(shù)據(jù),該算法可對系統(tǒng)內(nèi)存使用狀態(tài)進(jìn)行分析,如果內(nèi)存較低,則先劃分原數(shù)據(jù)集,再挖掘劃分后的數(shù)據(jù)集,并融合挖掘結(jié)果,得到最終的特定數(shù)據(jù)挖掘結(jié)果,但是該算法耗能量較高。文獻(xiàn)[9]分析了Scalable?kmeans算法,該算法利用三元組保存聚類過程中的統(tǒng)計(jì)信息,分層完成數(shù)據(jù)集的聚類,最終挖掘出特定數(shù)據(jù),但是在處理大規(guī)模數(shù)據(jù)集時(shí),不能與數(shù)據(jù)量成線性關(guān)系,數(shù)據(jù)挖掘質(zhì)量較低。文獻(xiàn)[10]分析了依據(jù)伺機(jī)投影的算法,該算法可挖掘各種規(guī)模特征的數(shù)據(jù),但是無法解決挖掘過程中的內(nèi)存瓶頸問題。針對上述分析的問題,本文通過Elastic Search 分布式架構(gòu)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了海量題庫中的特定數(shù)據(jù)快速搜索系統(tǒng)。該系統(tǒng)由用戶界面、數(shù)據(jù)庫連接模塊、數(shù)據(jù)抽取模塊、索引塑造檢索以及索引檢索和數(shù)據(jù)搜索模塊等構(gòu)成。實(shí)驗(yàn)結(jié)果說明,該系統(tǒng)可滿足用戶快速檢索海量題庫中的特定數(shù)據(jù)的需求。
1 特定數(shù)據(jù)搜索系統(tǒng)的體系結(jié)構(gòu)
依據(jù)Elastic Search分布式架構(gòu)技術(shù),塑造海量題庫中的特定數(shù)據(jù)搜索系統(tǒng),該系統(tǒng)體系結(jié)構(gòu)如圖1所示。特定數(shù)據(jù)搜索系統(tǒng)包括用戶界面、攔截器、數(shù)據(jù)庫連接模塊、數(shù)據(jù)抽取模塊、索引塑造檢索以及索引檢索和數(shù)據(jù)搜索模塊等。
用戶界面通過JSP技術(shù)和Extjs 技術(shù)向用戶呈現(xiàn)數(shù)據(jù)檢索結(jié)果,采用JDBC訪問數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的讀寫數(shù)據(jù)錄入、數(shù)據(jù)庫搜索等用戶交互操作。
數(shù)據(jù)庫連接模塊、索引檢索模塊、攔截器以及數(shù)據(jù)檢索模塊,共同實(shí)現(xiàn)海量題庫中特定數(shù)據(jù)搜索的任務(wù)。數(shù)據(jù)抽取模塊從數(shù)據(jù)庫中獲取文本信息,將文本信息反饋給索引塑造模塊。索引塑造模塊采用分布式連接器實(shí)現(xiàn)應(yīng)用程序同Elastic Search 分布式存儲(chǔ)服務(wù)器間的連接,通過該分布式架構(gòu)實(shí)現(xiàn)索引的檢索處理。攔截器實(shí)現(xiàn)用戶申請和響應(yīng)申請。索引檢索模塊通過Elastic Search 分布式架構(gòu)的檢索服務(wù),對海量數(shù)據(jù)庫中的文本信息進(jìn)行檢索操作。特定數(shù)據(jù)搜索模塊通過Rowid和相關(guān)的搜索條件對數(shù)據(jù)庫進(jìn)程檢索,獲取海量題庫中的特定數(shù)據(jù)。Elastic Search是依據(jù)全文索引的分布式存儲(chǔ)系統(tǒng),可確保用戶直接調(diào)用相關(guān)處理命令,實(shí)現(xiàn)相關(guān)的任務(wù)。將海量數(shù)據(jù)庫中的全文數(shù)據(jù)索引塑造成不同的分片,這些分片保存在Elastic Search 集群中的不同數(shù)據(jù)節(jié)點(diǎn)中。Elastic Search 可對這些分片進(jìn)行處理和分發(fā),確保不同數(shù)據(jù)節(jié)點(diǎn)間的通信均衡化。查詢某個(gè)索引是一種分布式操作, Elastic Search可對索引中的各分片數(shù)據(jù)復(fù)制進(jìn)行查詢,將查詢結(jié)果匯總到結(jié)果集中。
2 特定數(shù)據(jù)搜索系統(tǒng)的關(guān)鍵模塊設(shè)計(jì)和實(shí)現(xiàn)
2.1 設(shè)計(jì)數(shù)據(jù)抽取模塊獲取海量題庫中的文本信息
定時(shí)器通過數(shù)據(jù)抽取模塊完成海量題庫中文本信息抽取,其中數(shù)據(jù)抽取模塊的內(nèi)部邏輯結(jié)構(gòu)組成以及設(shè)計(jì)過程見圖2。通過圖2可看出,數(shù)據(jù)抽取模塊通過Quartz 定時(shí)器技術(shù),在固定時(shí)間開始運(yùn)行數(shù)據(jù)抽取模塊的采集任務(wù),將抽取出的海量題庫中的文本信息結(jié)果集當(dāng)成索引塑造模塊的輸入信息,并將定時(shí)任務(wù)的開啟時(shí)間當(dāng)成塑造索引時(shí)間的終止時(shí)間,采集數(shù)據(jù)庫中低于該時(shí)間的全部分區(qū)數(shù)據(jù),依據(jù)分區(qū)名塑造索引。
2.2 設(shè)計(jì)索引塑造模塊構(gòu)建海量題庫的文本索引
索引控制器運(yùn)行索引塑造模塊,通過 Elastic Search 分布式連接器采集同Elastic Search 服務(wù)的連接,再塑造海量題庫的文本索引,將文本索引保存到索引庫內(nèi)。塑造完一次索引后,返回成功狀態(tài)碼,否則在下一次定時(shí)任務(wù)運(yùn)行后,再塑造特定分區(qū)數(shù)據(jù)的文本索引,同時(shí)將未塑造文本索引的分區(qū)名保存到索引狀態(tài)表中。索引塑造模塊面向數(shù)據(jù)庫分區(qū)表中各分區(qū),分別塑造文本索引文件。圖3和圖4描述了索引塑造模塊的內(nèi)部邏輯結(jié)構(gòu)組成和設(shè)計(jì)過程,以及構(gòu)建題庫文本索引的具體流程設(shè)計(jì)過程。
2.3 索引檢索模塊的設(shè)計(jì)與實(shí)現(xiàn)
2.3.1 設(shè)計(jì)分詞器算法實(shí)現(xiàn)題庫文本的分類
索引檢索模塊通過Mmseg4j分詞器算法中的Simple 和Complex兩種算法完成海量題庫中文本信息的分詞,為文本信息的檢索提供可靠的依據(jù),Mmseg4j分詞器實(shí)現(xiàn)題庫文本信息分類的流程設(shè)計(jì)內(nèi)容,如圖5所示。
2.3.2 設(shè)計(jì)索引檢索模塊搜索文本信息
索引檢索模塊搜索海量題庫中文本信息的運(yùn)行流程設(shè)計(jì)內(nèi)容如圖6所示。
從圖6中可看出,文本檢索模塊依據(jù)分詞器算法得到的海量題庫文本分類結(jié)果,對文本進(jìn)行檢索,極大提高了有價(jià)值文本的檢索質(zhì)量。索引檢索模塊通過索引檢索和文本查詢器共同實(shí)現(xiàn)。系統(tǒng)操作分析用戶界面反饋的搜索條件,傳遞搜索任務(wù),使用 Elastic Search 分布式連接器獲取同 Elastic Search 服務(wù)的連接,再對索引庫進(jìn)行檢索,搜索同關(guān)鍵字匹配的全部Rowid集,將搜索結(jié)果存儲(chǔ)到數(shù)據(jù)庫臨時(shí)表內(nèi)。文本查詢器使用數(shù)據(jù)庫連接器同數(shù)據(jù)庫實(shí)現(xiàn)通信,檢索數(shù)據(jù)庫臨時(shí)表,并將搜索的Rowid分批與用戶的其他查詢條件組合,通過 SQL 查詢數(shù)據(jù)庫分區(qū)表,返回文本結(jié)果集。塑造海量題庫的全文索引過程中的各分區(qū)名同索引名相對應(yīng),依據(jù)用戶的搜索條件,對索引名進(jìn)行文本索引檢索,具有較高的搜索效率。
2.3.3 設(shè)計(jì)數(shù)據(jù)搜索模塊搜索特定數(shù)據(jù)
分析圖7可得,數(shù)據(jù)搜索模塊采用Content Search Thread線程,運(yùn)行數(shù)據(jù)庫查詢?nèi)蝿?wù),同時(shí)反饋出海量題庫中特定數(shù)據(jù)的搜索結(jié)果。數(shù)據(jù)查詢線程讀取全局共享緩存區(qū)中的Rowid 信息,同時(shí)依據(jù)用戶搜索條件,塑造SQL語句,對海量題庫的數(shù)據(jù)庫進(jìn)行搜索,將搜索結(jié)果存儲(chǔ)到數(shù)據(jù)庫臨時(shí)表內(nèi),為用戶進(jìn)行搜索和導(dǎo)出數(shù)據(jù)服務(wù)。全局共享緩存區(qū)的讀寫具有互斥性,數(shù)據(jù)搜索模塊從緩沖區(qū)中完成取值后,該緩存區(qū)中的信息條數(shù)就少一條,直至索引查詢模塊的線程結(jié)束搜索任務(wù)。
3 實(shí)驗(yàn)分析
實(shí)驗(yàn)通過自動(dòng)化的測試工具,模擬多種正常、異常、峰值條件對本文系統(tǒng)的搜索平均響應(yīng)時(shí)間性能、系統(tǒng)資源消耗性能以及系統(tǒng)索引檢索性能三個(gè)指標(biāo)進(jìn)行測試。
3.1 搜索平均響應(yīng)時(shí)間性能
實(shí)驗(yàn)對本文系統(tǒng)搜索的平均響應(yīng)時(shí)間同用戶數(shù)量關(guān)系的測試結(jié)果如圖8所示。分析可得,隨著用戶數(shù)的逐漸增加,響應(yīng)時(shí)間也不斷增加,當(dāng)用戶數(shù)小于9時(shí),本文系統(tǒng)的搜索響應(yīng)時(shí)間增加較為緩慢,而當(dāng)用戶數(shù)高于9時(shí),本文系統(tǒng)的數(shù)據(jù)搜索響應(yīng)時(shí)間增加速度、增長幅度升高,并且能夠看出當(dāng)系統(tǒng)用戶數(shù)低于15時(shí),系統(tǒng)數(shù)據(jù)響應(yīng)時(shí)間低于2 s,此時(shí)為系統(tǒng)的理想狀態(tài)。
3.2 系統(tǒng)資源消耗性能
實(shí)驗(yàn)測試本文系統(tǒng)進(jìn)行特定數(shù)據(jù)搜索過程中的資源消耗結(jié)果,如圖9所示,能夠看出,隨著用戶數(shù)的不斷增加,本文系統(tǒng)的資源利用率逐漸提高,最終保持在0.78左右,并且用戶數(shù)高于18后,本文系統(tǒng)仍可穩(wěn)定運(yùn)行。
3.3 索引性能測試
實(shí)驗(yàn)對比本文系統(tǒng)和其他3種數(shù)據(jù)搜索系統(tǒng)的測試環(huán)境,對比每個(gè)測試結(jié)果的性能值及吞吐量,該模擬索引檢索環(huán)境下各系統(tǒng)的索引性能對比如表1所示。分析表1中4種索引服務(wù)測試環(huán)境下的索引檢索時(shí)的性能值變化情況及響應(yīng)時(shí)間,可以看出相對于其他3種搜索系統(tǒng),本文系統(tǒng)的索引檢索響應(yīng)時(shí)間、CPU利用率、吞吐量、I/O讀寫效率等指標(biāo)都較優(yōu),具有較高的數(shù)據(jù)搜索性能,可滿足用戶快速檢索特定數(shù)據(jù)的需求。
4 結(jié) 論
本文通過Elastic Search 分布式架構(gòu)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了海量題庫中的特定數(shù)據(jù)快速搜索系統(tǒng)。該系統(tǒng)由用戶界面、數(shù)據(jù)庫連接模塊、數(shù)據(jù)抽取模塊、索引塑造檢索以及索引檢索和數(shù)據(jù)搜索模塊等構(gòu)成。詳細(xì)介紹了數(shù)據(jù)抽取模塊、索引塑造模塊以及索引檢索模塊的設(shè)計(jì)和實(shí)現(xiàn)過程,三個(gè)模塊共同實(shí)現(xiàn)海量題庫中的特定數(shù)據(jù)快速搜索任務(wù)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)的搜索平均響應(yīng)時(shí)間、系統(tǒng)資源消耗以及索引檢索性能三方面的性能較優(yōu),能夠滿足用戶快速檢索特定數(shù)據(jù)的需求。
參考文獻(xiàn)
[1] 陳翀,謝曉軍,陳康.大數(shù)據(jù)關(guān)鍵技術(shù)及其在運(yùn)營商中的應(yīng)用研究綜述[J].廣東通信技術(shù),2013(8):2?7.
[2] 鄭帆.海量本體數(shù)據(jù)存儲(chǔ)平臺(tái)的研究與設(shè)計(jì)[D].北京:北京工業(yè)大學(xué),2014.
[3] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):146?169.
[4] 張哲銘.基于的臺(tái)達(dá)實(shí)驗(yàn)室管理系統(tǒng)實(shí)現(xiàn)[J].電子技術(shù),2013(6):65?67.
[5] 劉淑英.一種基于MapReduce的最近似k對數(shù)據(jù)搜索方案[J].計(jì)算機(jī)與現(xiàn)代化,2014(8):38?45.
[6] 楊杰.面向圖像檢索的海量圖像自動(dòng)聚類方法研究[D].北京:北京交通大學(xué),2015.
[7] 陳冬.基于相關(guān)性的海量圖像的可視化探索式搜索研究[D].湘潭:湘潭大學(xué),2014.
[8] 鐘鳴,王盛,劉夢赤.一種大規(guī)模圖數(shù)據(jù)上已知項(xiàng)搜索的優(yōu)化方法[J].計(jì)算機(jī)研究與發(fā)展,2014,51(1):54?63.
[9] 孫靖.基于云平臺(tái)的數(shù)據(jù)庫搜索引擎實(shí)現(xiàn)方法的研究[D].南京:南京郵電大學(xué),2014.
[10] 趙金龍.海量跨媒體數(shù)據(jù)檢索關(guān)鍵技術(shù)[D].北京:北京郵電大學(xué),2015.