L,對(duì)每個(gè)待獲取數(shù)據(jù)的URL進(jìn)行匹配,獲取歷史鏈接庫(kù)中不存在的URL,并依次導(dǎo)入待爬取隊(duì)列以及歷史鏈接庫(kù)中,并將待獲取數(shù)據(jù)的URL中與歷史鏈接庫(kù)中的URL重復(fù)的URL丟棄;
[0064]步驟203、依次選取帶爬取隊(duì)列中的URL,并獲取選取出的URL上的數(shù)據(jù),并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)這個(gè)URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ;
[0065]若獲取待獲取數(shù)據(jù)的次數(shù)小于三次,則將選取出的URL重新導(dǎo)入所述帶爬取隊(duì)列;或若爬取失敗的次數(shù)達(dá)到三次,則將選取出的URL以及異常信息導(dǎo)入所述Hbase集群的錯(cuò)誤庫(kù)。
[0066]其中,步驟203中的預(yù)設(shè)次數(shù)為三次只是用來(lái)方便理解此技術(shù)方方案,可視情況而定。
[0067]步驟204、獲取規(guī)則庫(kù)中的解析規(guī)則,并根據(jù)解析規(guī)則對(duì)獲取的數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)中的關(guān)鍵詞;
[0068]其中,關(guān)鍵詞為常見(jiàn)詞庫(kù)中的詞語(yǔ),例如:時(shí)間、標(biāo)題、內(nèi)容、作者等;
[0069]步驟205、根據(jù)解析出的關(guān)鍵詞,對(duì)數(shù)據(jù)進(jìn)行分類,并組裝成XML文件,根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮;
[0070]步驟206、服務(wù)器中的數(shù)據(jù)入庫(kù)中間件對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)將自動(dòng)生成與數(shù)據(jù)唯一對(duì)應(yīng)的rowkey ;同時(shí),根據(jù)該數(shù)據(jù)中的關(guān)鍵詞和與該數(shù)據(jù)唯一對(duì)應(yīng)的rowkey,建立索引,并將索引導(dǎo)入到搜索服務(wù)器ElasticSearch集群中;
[0071]其中,隨著數(shù)據(jù)的不斷存入,數(shù)據(jù)庫(kù)將建立rowkey序列,搜索服務(wù)器中也將存在相同的rowkey序列;
[0072]步驟207、服務(wù)器的服務(wù)接口中間件接收到用戶通過(guò)客戶端輸入的用于查詢的關(guān)鍵詞,根據(jù)關(guān)鍵詞,服務(wù)接口中間件在搜索服務(wù)器中的索引中查詢到與輸入的關(guān)鍵詞對(duì)應(yīng)的 rowkey ;
[0073]可理解的是,如果有多個(gè)數(shù)據(jù)與輸入的關(guān)鍵詞相對(duì)應(yīng)時(shí),獲取的將是rowkey列表;
[0074]步驟208、基于獲取的rowkey或者是rowkey列表,服務(wù)接口中間件在數(shù)據(jù)庫(kù)中獲取該rowkey或者rowkey列表對(duì)應(yīng)的數(shù)據(jù)。
[0075]圖3為本發(fā)明一實(shí)施例提供的基于大數(shù)據(jù)的索引獲取系統(tǒng)的結(jié)構(gòu)示意圖,參照?qǐng)D3,本發(fā)明還提出了一種基于大數(shù)據(jù)的索引獲取系統(tǒng),該系統(tǒng)包括:
[0076]第一解析模塊31:用于對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞;
[0077]第一獲取模塊32:用于根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類,并將分類后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey ;
[0078]建立模塊33:用于根據(jù)所述與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。
[0079]為了提高數(shù)據(jù)采集的效率,本發(fā)明在將數(shù)據(jù)傳輸?shù)降谝唤馕瞿K之前進(jìn)行預(yù)處理,該系統(tǒng)還包括:
[0080]第二獲取模塊34:用于獲取多個(gè)待獲取數(shù)據(jù)的URL ;
[0081]匹配模塊35:用于對(duì)每個(gè)待獲取數(shù)據(jù)的URL與Hbase集群的歷史鏈接庫(kù)中的URL進(jìn)行匹配,若待獲取數(shù)據(jù)的URL為新的URL,則將所述新的URL導(dǎo)入待爬取隊(duì)列,直到所有待獲取數(shù)據(jù)的URL匹配完為止;
[0082]爬取模塊36:用于依次獲取所述待爬取隊(duì)列中的URL,并根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù)。
[0083]為了進(jìn)一步的提高數(shù)據(jù)采集和存儲(chǔ)的效率,本發(fā)明還包括:
[0084]判斷模塊37:用于判斷是否爬取成功;
[0085]并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ;
[0086]若所述獲取待獲取數(shù)據(jù)的次數(shù)為預(yù)設(shè)次數(shù)且未獲取待所述待獲取數(shù)據(jù),則將未獲取到所述待獲取數(shù)據(jù)對(duì)應(yīng)的URL存入所述Hbase集群的錯(cuò)誤庫(kù)。
[0087]為了提高數(shù)據(jù)存儲(chǔ)的效率,該系統(tǒng)還包括:
[0088]打包模塊38:用于將分類后的數(shù)據(jù)根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮;
[0089]第二解析模塊39:用于對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。
[0090]該系統(tǒng)還包括:
[0091]第四獲取模塊40:用于獲取用戶輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ;
[0092]第五獲取模塊41:用于根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與roekey對(duì)應(yīng)的數(shù)據(jù)。
[0093]本方法通過(guò)數(shù)據(jù)中的關(guān)鍵詞以及存儲(chǔ)數(shù)據(jù)時(shí)生成的rowkey來(lái)建立索引,以將數(shù)據(jù)庫(kù)中的數(shù)據(jù)與索引中的rowkey建立對(duì)應(yīng)關(guān)系,在后續(xù)的檢索中,只需要獲取rowkey,即可獲取rowkey對(duì)應(yīng)的數(shù)據(jù),提高了在海量數(shù)據(jù)中檢索的速度。
[0094]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于大數(shù)據(jù)的索引獲取方法,其特征在于,包括: 對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞; 根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類,并將分類后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey ; 根據(jù)所述與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在對(duì)數(shù)據(jù)進(jìn)行第一次解析之前,包括: 獲取多個(gè)待獲取數(shù)據(jù)的URL ; 對(duì)每個(gè)待獲取數(shù)據(jù)的URL與Hbase集群的歷史鏈接庫(kù)中的URL進(jìn)行匹配,若待獲取數(shù)據(jù)的URL為新的URL,則將所述新的URL導(dǎo)入待爬取隊(duì)列,直到所有待獲取數(shù)據(jù)的URL匹配完為止; 依次獲取所述待爬取隊(duì)列中的URL,并根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在對(duì)數(shù)據(jù)進(jìn)行第一次解析之前,包括: 判斷是否獲取到所述待獲取數(shù)據(jù); 并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ; 若所述獲取待獲取數(shù)據(jù)的次數(shù)為預(yù)設(shè)次數(shù)且未獲取待所述待獲取數(shù)據(jù),則將未獲取到所述待獲取數(shù)據(jù)對(duì)應(yīng)的URL存入所述Hbase集群的錯(cuò)誤庫(kù)。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將分類后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)之前,包括: 將分類后的數(shù)據(jù)根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮; 對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述方法還包括:通過(guò)所述索引獲取數(shù)據(jù)的步驟; 所述通過(guò)所述索引獲取數(shù)據(jù)的步驟,包括: 獲取用戶輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ; 根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與roekey對(duì)應(yīng)的數(shù)據(jù)。6.一種基于大數(shù)據(jù)的索引獲取系統(tǒng),其特征在于,包括: 第一解析模塊:用于對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞; 第一獲取模塊:用于根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類,并將分類后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey ; 建立模塊:用于根據(jù)所述與所述分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,包括: 第二獲取模塊:用于獲取多個(gè)待獲取數(shù)據(jù)的URL ; 匹配模塊:用于對(duì)每個(gè)待獲取數(shù)據(jù)的URL與Hbase集群的歷史鏈接庫(kù)中的URL進(jìn)行匹配,若待獲取數(shù)據(jù)的URL為新的URL,則將所述新的URL導(dǎo)入待爬取隊(duì)列,直到所有待獲取數(shù)據(jù)的URL匹配完為止; 第三獲取模塊:用于依次獲取所述待爬取隊(duì)列中的URL,并根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù)。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,包括: 判斷模塊:用于判斷是否獲取到所述待獲取數(shù)據(jù); 并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ; 若所述獲取待獲取數(shù)據(jù)的次數(shù)為預(yù)設(shè)次數(shù)且未獲取待所述待獲取數(shù)據(jù),則將未獲取到所述待獲取數(shù)據(jù)對(duì)應(yīng)的URL存入所述Hbase集群的錯(cuò)誤庫(kù)。9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,包括: 打包模塊:用于將分類后的數(shù)據(jù)根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮; 第二解析模塊:用于對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。10.根據(jù)權(quán)利要求6?9任一項(xiàng)所述的系統(tǒng),其特征在于,包括: 第四獲取模塊:用于獲取用戶輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ; 第五獲取模塊:用于根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與roekey對(duì)應(yīng)的數(shù)據(jù)。
【專利摘要】本發(fā)明提供了一種基于大數(shù)據(jù)的索引獲取方法及系統(tǒng),該基于大數(shù)據(jù)的索引獲取方法包括:對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞;根據(jù)關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類,并將分類后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey;根據(jù)與分類后的數(shù)據(jù)對(duì)應(yīng)的rowkey和關(guān)鍵詞建立索引。本發(fā)明通過(guò)數(shù)據(jù)中的關(guān)鍵詞以及存儲(chǔ)數(shù)據(jù)時(shí)生成的rowkey來(lái)建立索引,以將數(shù)據(jù)庫(kù)中的數(shù)據(jù)與索引中的rowkey建立對(duì)應(yīng)關(guān)系,在后續(xù)的檢索中,只需要獲取rowkey,即可獲取rowkey對(duì)應(yīng)的數(shù)據(jù),提高了在海量數(shù)據(jù)中檢索的速度。
【IPC分類】G06F17/30
【公開(kāi)號(hào)】CN105320746
【申請(qǐng)?zhí)枴緾N201510622636
【發(fā)明人】龔建新, 王周松, 鄭平賀
【申請(qǐng)人】北京北信源軟件股份有限公司
【公開(kāi)日】2016年2月10日
【申請(qǐng)日】2015年9月25日