曲進(jìn)
摘要 如今電子商務(wù)信息化得到很大程度提升,尤其在這個(gè)網(wǎng)絡(luò)高度發(fā)達(dá)的時(shí)代,信息的收集和整理顯得十分重要,對(duì)于電子商務(wù)來(lái)說(shuō),其未來(lái)最有可能的業(yè)務(wù)模式是與搜索服務(wù)結(jié)合起來(lái)。這種業(yè)務(wù)模式帶來(lái)的海量信息數(shù)據(jù),利用傳統(tǒng)的數(shù)據(jù)庫(kù)管理模式已經(jīng)不能滿足我們的需求,如今存在的主要不足為信息單點(diǎn)、搜索效率低下,同時(shí)搜索準(zhǔn)確率得不到有效的保證,進(jìn)而不能滿足互聯(lián)網(wǎng)搜索的基本需求,這也是現(xiàn)在很多研究人員十分關(guān)注的一個(gè)話題。為此,本文對(duì)云平臺(tái)數(shù)據(jù)搜索相關(guān)問(wèn)題展開(kāi)研究,設(shè)計(jì)面向云平臺(tái)數(shù)據(jù)搜索的基本結(jié)構(gòu),進(jìn)而使得數(shù)據(jù)庫(kù)的搜索方式應(yīng)用于HBase系統(tǒng)內(nèi),提升整體查詢搜索的性能,使得我們對(duì)信息搜索的效率大幅度提升。同時(shí),本文還設(shè)計(jì)了數(shù)據(jù)的預(yù)處理方案,能夠簡(jiǎn)化關(guān)系類型數(shù)據(jù)與HBase分布式數(shù)據(jù)之間的交互技術(shù)和算法。分析基于編輯距離和矢量數(shù)據(jù)的算法搜索評(píng)價(jià)機(jī)制,利用關(guān)鍵字之間具有相似部分判斷用戶的類似數(shù)據(jù),大大提升用戶搜索效率。
關(guān)鍵詞 云平臺(tái)數(shù)據(jù)庫(kù) 搜索引擎 分布式數(shù)據(jù)庫(kù)
中圖分類號(hào):TP391.3 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.16400/j.cnki.kjdkx.2016.07.075
0引言
如今網(wǎng)絡(luò)發(fā)展迅速,電子商務(wù)信息呈現(xiàn)幾何倍數(shù)增加,同時(shí)隨著互聯(lián)網(wǎng)應(yīng)用環(huán)境的變換,如何從大量信息之中找到自己所需信息已經(jīng)成為亟需解決的關(guān)鍵問(wèn)題。搜索引擎在大量網(wǎng)絡(luò)信息里建立起相關(guān)的鏈接,進(jìn)而可以自動(dòng)獲得相關(guān)信息,之后把這些信息存入到數(shù)據(jù)庫(kù),并建立相關(guān)搜索詞,供用戶使用。
但是伴隨著商務(wù)信息的不斷增加,數(shù)據(jù)量呈現(xiàn)爆炸式增長(zhǎng)趨勢(shì),隨之也出現(xiàn)很多搜索引擎效率低下、準(zhǔn)確度下降等問(wèn)題。同時(shí),搜索獲得的信息非常巨大,獲得展示的信息之間的相關(guān)程度變得十分低下,這導(dǎo)致用戶很難在較短時(shí)間內(nèi)獲得自己所需的相關(guān)內(nèi)容。鑒于此,本文利用云平臺(tái)數(shù)據(jù)庫(kù)建立相關(guān)搜索引擎,使用云平臺(tái)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu),充分分析了關(guān)系型數(shù)據(jù)庫(kù)以及HBase分布式數(shù)據(jù)庫(kù)之間的交換模式,來(lái)提升搜索質(zhì)量與速度。
1系統(tǒng)的需求分析與總體設(shè)計(jì)
1.1系統(tǒng)的需求分析
現(xiàn)在電子商務(wù)網(wǎng)站每天都有很多新的用戶注冊(cè)到其內(nèi)部數(shù)據(jù)庫(kù)里,隨著注冊(cè)人數(shù)的增多,這些數(shù)據(jù)也呈現(xiàn)了幾何倍數(shù)的增加,因此在用戶將自己的注冊(cè)信息輸入到數(shù)據(jù)庫(kù)之后,需要對(duì)這些信息進(jìn)行審核,判斷輸入數(shù)據(jù)是否重復(fù)或者是否合法,如果存在重復(fù)內(nèi)容,則需要返回到修改界面,重新輸入數(shù)據(jù),如果沒(méi)有,直接將這些數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中。
對(duì)于這部分工作來(lái)說(shuō),需要準(zhǔn)確以及快速的搜索引擎作為指導(dǎo)。系統(tǒng)基本要求就是,每天出現(xiàn)新的注冊(cè)信息可以及時(shí)保存到數(shù)據(jù)庫(kù)里,完成快速儲(chǔ)存任務(wù)。其次,根據(jù)系統(tǒng)要求,對(duì)這些注冊(cè)信息與以往信息進(jìn)行對(duì)比,發(fā)現(xiàn)是否具有重復(fù)或者非法的情況。再次,每天更新已經(jīng)通過(guò)注冊(cè)的用戶信息情況,對(duì)這些信息進(jìn)行排序以及儲(chǔ)存。最后,對(duì)那些更新的用戶信息,需要及時(shí)的存入到已有的注冊(cè)信息記錄中。
1.2系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)
本文設(shè)計(jì)的基于云平臺(tái)數(shù)據(jù)庫(kù)搜索模式,主要方案基于Hadoop分布式文件系統(tǒng)和MapReduce編程模型,通過(guò)HBase分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)以及Lucene全文檢索系統(tǒng),應(yīng)用到數(shù)據(jù)庫(kù)搜索系統(tǒng)之中。本文設(shè)計(jì)的數(shù)據(jù)搜索引擎的模型分為三個(gè)基本功能,即數(shù)據(jù)的預(yù)處理部分、索引模塊以及搜索部分等,基于HBase分布式框架來(lái),將設(shè)計(jì)內(nèi)容部分含有的具體實(shí)現(xiàn)方法封裝在程序內(nèi)部,通過(guò)API應(yīng)用接口使得子系統(tǒng)之間建立良好通訊機(jī)制。數(shù)據(jù)預(yù)處理模式通過(guò)關(guān)系型數(shù)據(jù)庫(kù)與H]3ase分布式數(shù)據(jù)之間建立的良好信息交互能力,將關(guān)系型數(shù)據(jù)庫(kù)內(nèi)部歷史用戶注冊(cè)的數(shù)據(jù)傳遞到HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)處理中心,同時(shí)將關(guān)系類型模塊具有的已經(jīng)獲得批準(zhǔn)的新數(shù)據(jù)提交到搜索器,再將不能使用的部分返回到關(guān)系型數(shù)據(jù)庫(kù)內(nèi)部。本文設(shè)計(jì)的索引器主要提供的功能為對(duì)預(yù)處理數(shù)據(jù)庫(kù)里存在的信息進(jìn)行倒排索引,同時(shí)對(duì)每天新增的數(shù)據(jù)信息建立其自身具有的增量索引模式,最后建立自己的倒排索引都儲(chǔ)存到HBase分布式數(shù)據(jù)庫(kù)索引庫(kù)內(nèi)部。
索引器模塊含有的功能可以為每天新用戶注冊(cè)信息進(jìn)行更新,同時(shí)獲得新用戶注冊(cè)的信息,分析以往歷史用戶信息,使其可以存入到HBase數(shù)據(jù)庫(kù)的內(nèi)部進(jìn)行倒排搜索,同時(shí)可以將獲得的結(jié)果傳輸?shù)疥P(guān)系類型的數(shù)據(jù)庫(kù)制定列表里,同時(shí)將每天更新的用戶注冊(cè)信息中不重復(fù)的數(shù)據(jù)更新到數(shù)據(jù)庫(kù)里,并更新索引模塊。HBase分布式數(shù)據(jù)庫(kù),使用HDFS分布式結(jié)構(gòu)完成系統(tǒng)內(nèi)部模塊設(shè)計(jì),利用歷史數(shù)據(jù)訪問(wèn)結(jié)構(gòu)來(lái)獲得大量文件信息。如果含有信息預(yù)處理的數(shù)據(jù)庫(kù),索引庫(kù)可以提供相關(guān)訪問(wèn)接口,從而使得系統(tǒng)內(nèi)部含有的功能得到全部使用,可以非常方便的增加系統(tǒng)新功能。本文設(shè)計(jì)的系統(tǒng),在數(shù)據(jù)預(yù)處理部分、索引器部分與搜索器部分,執(zhí)行程序的基本流程介紹如下:
首先是數(shù)據(jù)預(yù)處理部分,一是使用分布式數(shù)據(jù)交互工具Sqoop,對(duì)于存在關(guān)系型數(shù)據(jù)庫(kù)內(nèi)的歷史用戶注冊(cè)數(shù)據(jù)向預(yù)處理數(shù)據(jù)庫(kù)中導(dǎo)入,使得該數(shù)據(jù)庫(kù)中含有HBase分布式數(shù)據(jù)庫(kù)。二是對(duì)于倒排索引要通過(guò)索引器向HBase分布式數(shù)據(jù)庫(kù)索引庫(kù)內(nèi)進(jìn)行引入,同時(shí)將搜索信息提供給搜索器。三是在預(yù)處理完成之后,索引模塊含有的數(shù)據(jù)庫(kù)處理部分使用倒排索引模塊,使用分詞結(jié)構(gòu),利用數(shù)據(jù)文本數(shù)據(jù)進(jìn)行分詞,主要有中文分詞與英文分詞。四是借助于復(fù)合框架,數(shù)據(jù)預(yù)處理器能夠?qū)﹃P(guān)系型數(shù)據(jù)庫(kù)存在的每天用戶注冊(cè)數(shù)據(jù)更新進(jìn)行實(shí)時(shí)讀取,同時(shí)向搜索器進(jìn)行提交來(lái)給予處理。五是對(duì)復(fù)合框架提供的相關(guān)數(shù)據(jù)通過(guò)搜索器進(jìn)行解析,并提取關(guān)鍵字,以此為依據(jù)對(duì)索引器的倒排索引進(jìn)行查詢。六是以關(guān)鍵字中存在的相似度為依據(jù),搜索器對(duì)用戶更新數(shù)據(jù)進(jìn)行有效排序。七是對(duì)用戶注冊(cè)數(shù)據(jù)的更新結(jié)果查重,會(huì)由搜索器向數(shù)據(jù)預(yù)處理器進(jìn)行返回。八是對(duì)所有用戶注冊(cè)數(shù)據(jù)的更新中存在的不重復(fù)數(shù)據(jù)更新要通過(guò)搜索器向處理數(shù)據(jù)庫(kù)中進(jìn)行返回,接著便進(jìn)行增量索引的建立。九是對(duì)搜索器返回的查重結(jié)果要通過(guò)預(yù)處理器來(lái)向關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行寫入,上述步驟便是系統(tǒng)整體結(jié)構(gòu)具體的執(zhí)行過(guò)程,其對(duì)子系統(tǒng)問(wèn)的關(guān)系給予了充分體現(xiàn)。
2詳細(xì)設(shè)計(jì)
2.1數(shù)據(jù)預(yù)處理子系統(tǒng)的設(shè)計(jì)
如圖1所示,對(duì)數(shù)據(jù)的預(yù)處理分為兩個(gè)基本結(jié)構(gòu),首先,使用關(guān)系類型數(shù)據(jù)模塊存在的歷史數(shù)據(jù)信息,通過(guò)Sqoop工具,向HBase數(shù)據(jù)庫(kù)里面的預(yù)處理模塊進(jìn)行批量導(dǎo)入。第二,借助于特定程序模塊框架,向搜索器提交每天用戶注冊(cè)的更新數(shù)據(jù),通過(guò)搜索模塊含有的查重結(jié)果將關(guān)系類型數(shù)據(jù)庫(kù)內(nèi)部信息返回到檢查列表里面。
2.2索引子系統(tǒng)的設(shè)計(jì)
索引部分含有的主要功能如圖2所示,首先在數(shù)據(jù)預(yù)處理模塊對(duì)歷史用戶含有的信息建立倒排索引模塊。其次對(duì)新注冊(cè)的信息使其更新在已有的索引庫(kù)里面,進(jìn)而建立相關(guān)的索引模式。子系統(tǒng)中主要有索引合并、分詞、索引存入索引庫(kù)中、進(jìn)行增量索引的建立、倒排索引的建立五個(gè)方面。
2.3搜索子系統(tǒng)的設(shè)計(jì)
本文是以搜索子系統(tǒng)為核心來(lái)對(duì)數(shù)據(jù)庫(kù)搜索引擎系統(tǒng)進(jìn)行優(yōu)化。對(duì)于搜索子系統(tǒng)來(lái)說(shuō),其工作主要就是對(duì)每天用戶更新的注冊(cè)數(shù)據(jù)進(jìn)行查重處理,具體如圖3所示。首先就是接收每天用戶注冊(cè)的更新數(shù)據(jù),解析這些數(shù)據(jù),然后查詢搜索評(píng)分機(jī)制處理之后的查詢結(jié)果。查詢結(jié)果的前50名數(shù)據(jù)會(huì)被視為重復(fù)數(shù)據(jù),在數(shù)據(jù)庫(kù)指定表中進(jìn)行關(guān)系型數(shù)據(jù)的寫入;在查詢結(jié)果50名之后的數(shù)據(jù)被認(rèn)為是不重復(fù)數(shù)據(jù),將這些數(shù)據(jù)保存到數(shù)據(jù)庫(kù)之中。
3數(shù)據(jù)預(yù)處理方法及搜索評(píng)分機(jī)制的研究
3.1數(shù)據(jù)預(yù)處理方法
3.1.1靜態(tài)數(shù)據(jù)處理
處理靜態(tài)數(shù)據(jù)信息的時(shí)候,首先利用分布式數(shù)據(jù)交換工具Sqoop,檢查關(guān)系型數(shù)據(jù)模塊中所包含的歷史用戶信息表格Historvcal data的字段類型以及其約束關(guān)系是否正確。然后,把表字段類型映射給相關(guān)的MapReduce任務(wù),檢查并分類獲取表信息,并在HBase分布式數(shù)據(jù)庫(kù)中創(chuàng)建預(yù)處理表HBaseHistorical data。最后,啟動(dòng)MapReduce任務(wù),在歷史注冊(cè)的數(shù)據(jù)表格Historical data內(nèi)記錄相應(yīng)數(shù)據(jù),同時(shí)插入到預(yù)處理表中,下面便是其具體操作步驟:
sqoop list-tables-connect jdbc:數(shù)據(jù)庫(kù):IP:端口號(hào)/數(shù)據(jù)庫(kù)名字usemame用戶名-password密碼。
第二部分對(duì)海量信息進(jìn)行交互,同時(shí)對(duì)HBase內(nèi)部的分布式數(shù)據(jù)進(jìn)行相關(guān)處理,也就是在HBase Historical data導(dǎo)入存在于關(guān)系型數(shù)據(jù)庫(kù)中歷史用戶注冊(cè)數(shù)據(jù)表的相關(guān)記錄。下面所表示的是其執(zhí)行操作的具體步驟:
sqoop import-connect jdbc:數(shù)據(jù)庫(kù):IP/端口號(hào)/數(shù)據(jù)庫(kù)名字-table關(guān)系型數(shù)據(jù)庫(kù)中表名字-hbase-tabe。
Sqoop內(nèi)部的分布式交互模式可以降低導(dǎo)入到記錄儲(chǔ)存的磁盤內(nèi)部,之后在利用數(shù)據(jù)庫(kù)記錄具有非常類似的結(jié)構(gòu),這樣使得其相對(duì)比傳統(tǒng)的搜索模式更加優(yōu)秀,同時(shí)本文設(shè)計(jì)的靜態(tài)數(shù)據(jù)處理的方法變得更加簡(jiǎn)單。
3.1.2動(dòng)態(tài)數(shù)據(jù)處理
動(dòng)態(tài)數(shù)據(jù)分析功能,可以對(duì)HBase分布式數(shù)據(jù)庫(kù)模塊中含有的相關(guān)信息進(jìn)行批量讀寫,通過(guò)特定程序模塊以及復(fù)合框架來(lái)進(jìn)行實(shí)現(xiàn)。因此,實(shí)現(xiàn)本文所述動(dòng)態(tài)數(shù)據(jù)處理方法的時(shí)候,所帶來(lái)的性能損失很小。
動(dòng)態(tài)數(shù)據(jù)獲得的處理方法為,通過(guò)包含復(fù)合框架的關(guān)系型數(shù)據(jù)庫(kù)來(lái)獲得更新的數(shù)據(jù)信息,然后將其保存到注冊(cè)的數(shù)據(jù)表格Update-data中對(duì)應(yīng)的字段,之后再利用Dim.xml文件將表的字段類型經(jīng)過(guò)映射java程序相關(guān)的數(shù)據(jù)類型,同時(shí)對(duì)表Up-date-data操作的SQL語(yǔ)句映射成為java程序里面Dim類的方法。
3.2搜索評(píng)分機(jī)制
對(duì)于搜索評(píng)分制度來(lái)說(shuō),因?yàn)槠鋵?duì)搜索的速度具有重要的影響,所以需要設(shè)計(jì)出可以快速提升搜索評(píng)分制度準(zhǔn)確率的模式。目前的評(píng)分制度為TFIDF評(píng)分模式,以及PageRank相結(jié)合的方式。通過(guò)TF-IDF含有的基本評(píng)估的模式獲得數(shù)據(jù)信息含有的關(guān)鍵字信息評(píng)分,這非常重要。本文設(shè)計(jì)的處理數(shù)據(jù)結(jié)構(gòu)含有的主要信息為電商用戶含有的相關(guān)注冊(cè)信息,其中主要包括ID名字、郵箱以及相關(guān)主頁(yè)信息等。根據(jù)相關(guān)的應(yīng)用要求以及數(shù)據(jù)的特點(diǎn),本文選擇使用了基于編輯距離結(jié)構(gòu)的數(shù)據(jù)距離算法基本模式,以及關(guān)鍵字段之間類似度建模分析。
4結(jié)束語(yǔ)
伴隨著電子商務(wù)規(guī)模發(fā)展越來(lái)越大,用戶注冊(cè)數(shù)目得到快速的提升,對(duì)于存在很多的數(shù)據(jù)查重分析問(wèn)題,以前使用的數(shù)據(jù)庫(kù)搜索的模式已經(jīng)不再適合現(xiàn)在的需求。針對(duì)現(xiàn)實(shí)應(yīng)用內(nèi)部出現(xiàn)的這些不足,本文利用云平臺(tái)數(shù)據(jù)庫(kù)搜索引擎的相關(guān)處理模式,使用了最新的云平臺(tái)、全文搜索的技術(shù)模式,利用了數(shù)據(jù)庫(kù)交互技術(shù)等很多緩存技術(shù),進(jìn)而使得數(shù)據(jù)庫(kù)具有的數(shù)據(jù)搜索性能得到了大幅度的提升,提升了檢索的可靠性,縮短了檢索用時(shí)。