一種基于大數(shù)據(jù)的索引獲取方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)檢索領(lǐng)域,特別涉及一種基于大數(shù)據(jù)的索引獲取方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著社會(huì)信息化程度的發(fā)展、當(dāng)今社會(huì)已進(jìn)入了大數(shù)據(jù)時(shí)代。數(shù)據(jù)量大了、數(shù)據(jù)的存儲(chǔ)和全文檢索成為了阻礙信息化發(fā)展的瓶頸。目前很多數(shù)據(jù)存入了一些關(guān)系型數(shù)據(jù)庫(kù)、比如SQLServer、Mysql、Oracle等,其數(shù)據(jù)檢索依賴(lài)于數(shù)據(jù)庫(kù)本身的索引、或者分區(qū)、分表等。在數(shù)據(jù)量比較小時(shí)查詢(xún)速度還是可以接受的,但隨著數(shù)據(jù)量的增大、數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)及檢索效率就直線(xiàn)下降,直至數(shù)據(jù)庫(kù)崩潰。究其原因,這些關(guān)系型數(shù)據(jù)就不是為大數(shù)據(jù)而存在的。
[0003]針對(duì)大數(shù)據(jù)的存儲(chǔ)及全文檢索,現(xiàn)有技術(shù)提出了一種nosql數(shù)據(jù)庫(kù),采用mongdb和solr的結(jié)合緩解了關(guān)系型數(shù)據(jù)庫(kù)的壓力、存放的數(shù)據(jù)及檢索的速度都有了很大提高。但隨著海量數(shù)據(jù)的存入,其性能瓶頸也展現(xiàn)出來(lái),導(dǎo)致存儲(chǔ)和搜索速度越來(lái)越慢。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種基于大數(shù)據(jù)的索引獲取方法,該方法通過(guò)數(shù)據(jù)中的關(guān)鍵詞以及存儲(chǔ)數(shù)據(jù)生成的rowkey來(lái)建立索引,能在海量的數(shù)據(jù)中進(jìn)行高效率的數(shù)據(jù)檢索。
[0005]本發(fā)明提供了一種基于大數(shù)據(jù)的索引獲取方法,包括:
[0006]對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞;
[0007]根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類(lèi),并將分類(lèi)后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey ;
[0008]根據(jù)所述與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。
[0009]可選的,在對(duì)數(shù)據(jù)進(jìn)行第一次解析之前,包括:
[0010]獲取多個(gè)待獲取數(shù)據(jù)的URL ;
[0011]對(duì)每個(gè)待獲取數(shù)據(jù)的URL與Hbase集群的歷史鏈接庫(kù)中的URL進(jìn)行匹配,若待獲取數(shù)據(jù)的URL為新的URL,則將所述新的URL導(dǎo)入待爬取隊(duì)列,直到所有待獲取數(shù)據(jù)的URL匹配完為止;
[0012]依次獲取所述待爬取隊(duì)列中的URL,并根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù)。
[0013]可選的,在對(duì)數(shù)據(jù)進(jìn)行第一次解析之前,包括:
[0014]判斷是否獲取到所述待獲取數(shù)據(jù);
[0015]并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ;
[0016]若所述獲取待獲取數(shù)據(jù)的次數(shù)為預(yù)設(shè)次數(shù)且未獲取待所述待獲取數(shù)據(jù),則將未獲取到所述待獲取數(shù)據(jù)對(duì)應(yīng)的URL存入所述Hbase集群的錯(cuò)誤庫(kù)。
[0017]可選的,在將分類(lèi)后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)之前,包括:
[0018]將分類(lèi)后的數(shù)據(jù)根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮;
[0019]對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。
[0020]可選的,所述方法還包括:通過(guò)所述索引獲取數(shù)據(jù)的步驟;
[0021]所述通過(guò)所述索引獲取數(shù)據(jù)的步驟,包括:
[0022]獲取用戶(hù)輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶(hù)輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ;
[0023]根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與rowkey對(duì)應(yīng)的數(shù)據(jù)。
[0024]本發(fā)明還提出了一種基于大數(shù)據(jù)的索引獲取系統(tǒng),包括:
[0025]第一解析模塊:用于對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞;
[0026]第一獲取模塊:用于根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類(lèi),并將分類(lèi)后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey ;
[0027]建立模塊:用于根據(jù)所述與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。
[0028]可選的,該系統(tǒng)還包括:
[0029]第二獲取模塊:用于獲取多個(gè)待獲取數(shù)據(jù)的URL ;
[0030]匹配模塊:用于對(duì)每個(gè)待獲取數(shù)據(jù)的URL與Hbase集群的歷史鏈接庫(kù)中的URL進(jìn)行匹配,若待獲取數(shù)據(jù)的URL為新的URL,則將所述新的URL導(dǎo)入待爬取隊(duì)列,直到所有待獲取數(shù)據(jù)的URL匹配完為止;
[0031 ] 第三獲取模塊:用于依次獲取所述待爬取隊(duì)列中的URL,并根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù)
[0032]可選的,該系統(tǒng)還包括:
[0033]判斷模塊:用于判斷是否獲取到所述待獲取數(shù)據(jù);
[0034]并在未獲取到所述待獲取數(shù)據(jù)時(shí),繼續(xù)根據(jù)所述URL爬取隊(duì)列中的URL獲取待獲取數(shù)據(jù),并將獲取待獲取數(shù)據(jù)的次數(shù)加1 ;
[0035]若所述獲取待獲取數(shù)據(jù)的次數(shù)為預(yù)設(shè)次數(shù)且未獲取待所述待獲取數(shù)據(jù),則將未獲取到所述待獲取數(shù)據(jù)對(duì)應(yīng)的URL存入所述Hbase集群的錯(cuò)誤庫(kù)。
[0036]可選的,該系統(tǒng)還包括:
[0037]打包模塊:用于將分類(lèi)后的數(shù)據(jù)根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮;
[0038]第二解析模塊:用于對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。
[0039]可選的,該系統(tǒng)還包括:
[0040]第四獲取模塊:用于獲取用戶(hù)輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶(hù)輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ;
[0041]第五獲取模塊:用于根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與roekey對(duì)應(yīng)的數(shù)據(jù)。
[0042]由上述技術(shù)方案可知,本發(fā)明的基于大數(shù)據(jù)的索引取方法,通過(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ù)中的檢索速度。
【附圖說(shuō)明】
[0043]通過(guò)參考附圖會(huì)更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對(duì)本發(fā)明進(jìn)行任何限制,在附圖中:
[0044]圖1示出了本發(fā)明一實(shí)施例提供的基于大數(shù)據(jù)的索引獲取方法的流程圖;
[0045]圖2示出了本發(fā)明另一實(shí)施例提供的基于大數(shù)據(jù)的索引獲取方法的流程圖;
[0046]圖3示出了本發(fā)明一實(shí)施例提供的基于大數(shù)據(jù)的索引獲取系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0048]圖1示出了本發(fā)明一實(shí)施例提供的基于大數(shù)據(jù)的索引獲取方法的流程圖,參照?qǐng)D1,本實(shí)施例的基于大數(shù)據(jù)的索引獲取方法,包括:
[0049]步驟101、對(duì)數(shù)據(jù)進(jìn)行第一次解析,獲取數(shù)據(jù)的關(guān)鍵詞;
[0050]步驟102、根據(jù)所述關(guān)鍵詞對(duì)數(shù)據(jù)進(jìn)行分類(lèi),并將分類(lèi)后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),獲取與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey ;
[0051]步驟103、根據(jù)所述與所述分類(lèi)后的數(shù)據(jù)對(duì)應(yīng)的rowkey和所述關(guān)鍵詞建立索引。
[0052]通過(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ù)中檢索的速度。
[0053]為了提高數(shù)據(jù)采集的效率,本發(fā)明在獲取多個(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ù)。
[0054]其中,獲取所述待爬取隊(duì)列中的URL的順序可以為先進(jìn)先出的順序。
[0055]為了進(jìn)一步的提高數(shù)據(jù)采集和存儲(chǔ)的效率,本發(fā)明在對(duì)數(shù)據(jù)進(jìn)行第一次解析之前,還對(duì)爬取作業(yè)進(jìn)行了檢測(cè),以判斷是否獲取到所述待獲取數(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ù)。
[0056]為了提高數(shù)據(jù)存儲(chǔ)的效率,本發(fā)明在將分類(lèi)后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)之前,還需要將分類(lèi)后的數(shù)據(jù)組裝成XML文件,并根據(jù)預(yù)設(shè)策略進(jìn)行打包壓縮;對(duì)打包壓縮后的文件進(jìn)行第二次解析,并將第二次解析后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。
[0057]該方法在獲取到上述索引后,還包括:根據(jù)上述索引獲取數(shù)據(jù),具體步驟如下:
[0058]獲取用戶(hù)輸入的關(guān)鍵詞,在搜索服務(wù)器的索引中根據(jù)用戶(hù)輸入的關(guān)鍵詞,獲取與關(guān)鍵詞對(duì)應(yīng)的rowkey ;
[0059]根據(jù)所述與關(guān)鍵詞對(duì)應(yīng)的rowkey,獲取數(shù)據(jù)庫(kù)中與roekey對(duì)應(yīng)的數(shù)據(jù)。
[0060]通過(guò)上述的索引對(duì)用戶(hù)輸入的關(guān)鍵詞進(jìn)行查詢(xún),以獲取與關(guān)鍵詞對(duì)應(yīng)rowkey,并通過(guò)該rowkey在數(shù)據(jù)庫(kù)中找到對(duì)應(yīng)的數(shù)據(jù),以實(shí)現(xiàn)在海量的數(shù)據(jù)庫(kù)中進(jìn)行高效的檢索的作用。
[0061]圖2為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)獲取方法的流程圖,參照?qǐng)D2,下面對(duì)索引獲取方法以及基于該索引獲取數(shù)據(jù)的方法進(jìn)行詳細(xì)說(shuō)明:
[0062]步驟201、基于數(shù)據(jù)庫(kù)從互聯(lián)網(wǎng)上獲取多個(gè)待獲取數(shù)據(jù)的URL ;
[0063]步驟202、判斷待獲取數(shù)據(jù)的URL是否為已有URL,基于Hbase集群的歷史鏈接庫(kù)中的UR