摘 要:大規(guī)模的信息在進(jìn)行檢索的過(guò)程中一直都會(huì)面臨檢索速度上的限制問(wèn)題,本文在基本的檢索原理基礎(chǔ)之上,實(shí)現(xiàn)了一種快速進(jìn)行大規(guī)模分布式并行信息檢索技術(shù),該技術(shù)具有檢索速度快、效率高、易于擴(kuò)展等優(yōu)點(diǎn),具有較好的應(yīng)用前景,希望能夠?yàn)樾畔z索技術(shù)開發(fā)工作提供一些參考意見。
關(guān)鍵詞:大規(guī)模;分布式;并行;信息檢索
中圖分類號(hào):G354
如今我國(guó)社會(huì)的信息技術(shù)應(yīng)用水平正在不斷提高,每天產(chǎn)生的大量數(shù)據(jù)會(huì)給人們的檢索帶來(lái)越來(lái)越大的困難,如何能夠在眾多的海量數(shù)據(jù)中快速篩選出自己需要的信息,通過(guò)快速文本的方式來(lái)進(jìn)行全文幅度的檢索,是當(dāng)前值得人們進(jìn)行研究的問(wèn)題。面對(duì)大規(guī)模的信息容量,本文提供了一種可行的分布式并行信息檢索技術(shù),它的技術(shù)來(lái)源主要有批量加載、交換分區(qū)等形式,該技術(shù)方法能夠利用分布式并行技術(shù)和并行數(shù)據(jù)庫(kù)技術(shù)進(jìn)行運(yùn)行,能夠適應(yīng)多種軟硬件北京,并且能夠根據(jù)硬件環(huán)境靈活改變檢索性能,因此具有良好的兼容性,還可以進(jìn)行多方面的擴(kuò)展和更加便捷地操作。
1 大規(guī)模信息檢索技術(shù)面臨的困難
我國(guó)目前的大規(guī)模信息檢索主要是基于B樹的數(shù)據(jù)庫(kù)檢索系統(tǒng)進(jìn)行組織,這種組織形式下當(dāng)數(shù)據(jù)容量增加一個(gè)上界閾值時(shí),中間結(jié)點(diǎn)會(huì)開始快速增多,并且索引樹的層次結(jié)構(gòu)也會(huì)越來(lái)越復(fù)雜,從原理上來(lái)說(shuō),一層新的索引出現(xiàn)就意味著每一個(gè)新的結(jié)點(diǎn)會(huì)有越來(lái)越多的數(shù)據(jù)操作,當(dāng)索引樹復(fù)雜程度增長(zhǎng)到一定程度時(shí),會(huì)嚴(yán)重占用硬件系統(tǒng)的內(nèi)存容量。從硬件數(shù)據(jù)操作的角度來(lái)說(shuō),硬盤讀寫和換頁(yè)都會(huì)增加,因此這樣不斷瘋漲的數(shù)據(jù)容量會(huì)嚴(yán)重增加索引數(shù)的層次和數(shù)據(jù)操作次數(shù)。
2 大規(guī)模分布式并行信息檢索技術(shù)原理
本文的大規(guī)模分布式并行信息檢索技術(shù)主要是基于oracle的數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)文本索引、批量加載等先進(jìn)技術(shù),通過(guò)分布式組織與并行方法來(lái)對(duì)數(shù)據(jù)庫(kù)中的大規(guī)模數(shù)據(jù)進(jìn)行檢索操作。該技術(shù)相對(duì)于傳統(tǒng)的檢索方式具有很大的優(yōu)勢(shì),不僅可以解決數(shù)據(jù)在索引與加載上出現(xiàn)的困難,也能夠良好地運(yùn)用軟硬件環(huán)境的性能,在面對(duì)大規(guī)模信息量時(shí)可以快速進(jìn)行檢索操作。
該技術(shù)主要包括三個(gè)基本的結(jié)構(gòu)服務(wù):首先是加載和索引服務(wù),該服務(wù)可以將用戶的檢索請(qǐng)求存在服務(wù)器的磁盤系統(tǒng)中,該系統(tǒng)已經(jīng)集成了成熟的文件系統(tǒng),然后利用oracle數(shù)據(jù)庫(kù)本身自帶的檢索功能針對(duì)服務(wù)器磁盤信息進(jìn)行文件索引;其次是信息檢索,數(shù)據(jù)庫(kù)可以將用戶發(fā)出的檢索信息加載在各個(gè)索引點(diǎn)上,每一個(gè)索引結(jié)點(diǎn)都采用了相同的接口形式,通過(guò)sql的方式進(jìn)行加載,并將加載好的每個(gè)點(diǎn)的數(shù)據(jù)最終發(fā)揮給檢索用戶;最后是智能平衡,服務(wù)器可以在固定時(shí)間節(jié)點(diǎn)上檢測(cè)和獲得最新的數(shù)據(jù)加載信息與自身結(jié)點(diǎn)上的實(shí)際信息,如果此時(shí)服務(wù)器收到了用戶新的檢索請(qǐng)求信息,那么服務(wù)器本身會(huì)智能化地將工作量最輕的點(diǎn)分配給予信息檢索服務(wù),這樣整個(gè)檢索系統(tǒng)中每一個(gè)結(jié)點(diǎn)的負(fù)載都會(huì)盡可能地趨于平衡。下圖1表示了大規(guī)模分布式并行信息檢索的結(jié)構(gòu)圖:
圖1 大規(guī)模分布式并行信息檢索技術(shù)結(jié)構(gòu)圖
然而,雖然采用此種數(shù)據(jù)庫(kù)中進(jìn)行倒排索引可以獲得較短的反映時(shí)間,但是要想讓檢索系統(tǒng)具備在加載的時(shí)間內(nèi)進(jìn)行快速索引,還需要進(jìn)行下面的處理:使用oracle本身自帶的文件索引,將需要進(jìn)行處理的信息不加載在服務(wù)器的數(shù)據(jù)庫(kù)中,而存在服務(wù)器磁盤的文件系統(tǒng)中,將數(shù)據(jù)庫(kù)的文件進(jìn)行復(fù)制,創(chuàng)造出一個(gè)臨時(shí)的數(shù)據(jù)表,該臨時(shí)的數(shù)據(jù)表可以存儲(chǔ)原有表的路徑,將檢索用戶需要的檢索信息存儲(chǔ)在臨時(shí)的表中,讓數(shù)據(jù)庫(kù)加載臨時(shí)表,再獲得索引的位置,最終創(chuàng)造出索引。在索引創(chuàng)造完成的后期,通過(guò)原表與臨時(shí)表的對(duì)調(diào),可以將臨時(shí)表的數(shù)據(jù)加載到原表,這樣檢索用戶就實(shí)現(xiàn)了利用原表進(jìn)行信息檢索的目的。
總的來(lái)說(shuō),上述檢索方法可以具體分為四個(gè)步驟來(lái)執(zhí)行:
首先是監(jiān)控步驟,也就是說(shuō)通過(guò)固定時(shí)間節(jié)點(diǎn)對(duì)服務(wù)器上的文件系統(tǒng)進(jìn)行全盤掃描,將檢測(cè)出的新文件移動(dòng)到待處理任務(wù)的最后位置,在該位置創(chuàng)造一個(gè)索引,其中索引中包含了該文件的位置信息。其次是執(zhí)行步驟,假設(shè)處理過(guò)程具有兩個(gè)并行度,那么在執(zhí)行該項(xiàng)任務(wù)中,文件fp1.dat會(huì)存儲(chǔ)好任務(wù)隊(duì)列中前半部分的信息,而文件fp2.dat則會(huì)存儲(chǔ)后半部分隊(duì)列的任務(wù)信息,在執(zhí)行任務(wù)完畢后,整個(gè)隊(duì)列的任務(wù)信息將會(huì)被全部刪除。再次是加載步驟,服務(wù)器數(shù)據(jù)庫(kù)oracle會(huì)使用加載工具將上一步驟中產(chǎn)生的兩個(gè)文件加載至臨時(shí)表。最后是索引步驟,在上一加載完成之后,服務(wù)器會(huì)將上述兩個(gè)臨時(shí)表進(jìn)行索引的創(chuàng)建,這樣所有的索引就已經(jīng)全部完成,最后進(jìn)行分區(qū)上的對(duì)調(diào),也就是將索引與數(shù)據(jù)進(jìn)行移動(dòng),直至替換原表中的數(shù)據(jù)。
3 環(huán)境參數(shù)與調(diào)試
本文的調(diào)試環(huán)境是固定的,在測(cè)試之前需要確定測(cè)試中的并行度與索引粒度兩個(gè)參量的值,并行度衡量的是創(chuàng)建臨時(shí)表的數(shù)目,而索引粒度表示的則是創(chuàng)建索引文件時(shí)所達(dá)到的臨時(shí)表的數(shù)量。下面三個(gè)表格分別表示了調(diào)試的數(shù)據(jù)來(lái)源、硬件環(huán)境與軟件環(huán)境:
表1 數(shù)據(jù)來(lái)源
,
表2 硬件環(huán)境
表3 軟件環(huán)境
根據(jù)最終調(diào)試的結(jié)果,可以得出這樣的結(jié)論,一方面針對(duì)不同并行度的請(qǐng)款下,存在最優(yōu)化的并行度,可以讓檢索速度達(dá)到最為迅速,但是在不同并行度下的檢索速度差距并不是很大,另一方面,如果測(cè)試采取的并行度與硬件上采用的處理器個(gè)數(shù)相同,那么相對(duì)來(lái)說(shuō)其會(huì)具備最好的檢索能力,其余越接近處理器個(gè)數(shù)則檢索效果越好。
總的來(lái)說(shuō),基于Oracle數(shù)據(jù)庫(kù)的大規(guī)模分布式并行信息檢索技術(shù)可以充分表現(xiàn)出傳統(tǒng)硬件上檢索出現(xiàn)的速度緩慢的難題,同時(shí)結(jié)合中間件,可以較好地進(jìn)行性能擴(kuò)展,讓整個(gè)檢索技術(shù)可以實(shí)現(xiàn)高速、高擴(kuò)展和低故障率等優(yōu)勢(shì)。
參考文獻(xiàn):
[1]田俊華,楊曉江.索引擎?zhèn)€案研究[J].北京:現(xiàn)代圖書情報(bào)技術(shù),2007(8):76-79.
[2]張英武,杜凱,楊樹強(qiáng),韓偉紅.分布式海量文本檢索系統(tǒng)研究[J].西安:微電子學(xué)與計(jì)算機(jī),2005,23(21):32-34.
[3]陳占龍,吳信才,謝忠,吳亮.分布式空間數(shù)據(jù)索引機(jī)制研究[J].西安:微電子學(xué)與計(jì)算機(jī),2007,24(10):54-57.
[4]熊晶,郭磊,高峰.基于JPPF的分布式并行檢索系統(tǒng)研究[J].西安:計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(1):79-82.
[5]張漫,王永安,王征.基于高速分布式并行結(jié)構(gòu)的測(cè)井?dāng)?shù)據(jù)處理系統(tǒng)[J].上海:計(jì)算機(jī)應(yīng)用與軟件,2009,26(6):136-137.
作者簡(jiǎn)介:朱江(1975-),男,上海人,碩士,信息室副主任,研究方向:網(wǎng)絡(luò)信息安全。
作者單位:公安部上海消防研究所 信息室,上海 200438