搜索系統(tǒng)及數(shù)據(jù)同步方法
【專利摘要】本發(fā)明公開了一種搜索系統(tǒng)及數(shù)據(jù)同步方法,屬于計算機技術(shù)領(lǐng)域。所述搜索系統(tǒng)包括:數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng);數(shù)據(jù)同步系統(tǒng),用于接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,數(shù)據(jù)變更通知是數(shù)據(jù)中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的;從發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù);將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng);索引系統(tǒng),用于接收并存儲待同步的數(shù)據(jù);建立待同步的數(shù)據(jù)所對應(yīng)的索引。由于數(shù)據(jù)同步系統(tǒng)能夠在數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng),達到了減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求。
【專利說明】
搜索系統(tǒng)及數(shù)據(jù)同步方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種搜索系統(tǒng)及數(shù)據(jù)同步方法?!颈尘凹夹g(shù)】
[0002]搜索系統(tǒng)用于向用戶提供搜索服務(wù)。搜索系統(tǒng)獲取到用戶提供的關(guān)鍵詞后,查詢獲取包含有上述關(guān)鍵詞的數(shù)據(jù)作為搜索結(jié)果,并將搜索結(jié)果反饋給用戶。
[0003]搜索系統(tǒng)通常和數(shù)據(jù)中心對接,數(shù)據(jù)中心作為向搜索系統(tǒng)提供數(shù)據(jù)的數(shù)據(jù)源。在現(xiàn)有技術(shù)中,搜索系統(tǒng)中部署有網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)爬蟲用于定期檢測數(shù)據(jù)中心是否有發(fā)生變更的數(shù)據(jù),并將發(fā)生變更的數(shù)據(jù)同步至搜索系統(tǒng)。例如,網(wǎng)絡(luò)爬蟲每隔預(yù)定時間間隔遍歷一次數(shù)據(jù)中心,檢測數(shù)據(jù)中心是否有發(fā)生變更的數(shù)據(jù)。
[0004]在現(xiàn)有技術(shù)中,由于網(wǎng)絡(luò)爬蟲定期檢測數(shù)據(jù)中心是否有發(fā)生變更的數(shù)據(jù),當(dāng)數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更之后,發(fā)生變更的數(shù)據(jù)無法立即被網(wǎng)絡(luò)爬蟲檢測到并同步給搜索系統(tǒng),因此數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)中數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求的問題,本發(fā)明實施例提供了一種搜索系統(tǒng)及數(shù)據(jù)同步方法。所述技術(shù)方案如下:
[0006]第一方面,提供了一種搜索系統(tǒng),所述搜索系統(tǒng)包括:數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng);
[0007]所述數(shù)據(jù)同步系統(tǒng),用于接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,所述數(shù)據(jù)變更通知是所述數(shù)據(jù)中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,所述數(shù)據(jù)變更通知包括所述數(shù)據(jù)中心中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識;從所述發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)所述待同步的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待同步的數(shù)據(jù);將所述待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng);
[0008]所述索引系統(tǒng),用于接收并存儲所述待同步的數(shù)據(jù);建立所述待同步的數(shù)據(jù)所對應(yīng)的索引。
[0009]第二方面,提供了一種數(shù)據(jù)同步方法,應(yīng)用于搜索系統(tǒng)中,所述搜索系統(tǒng)包括:數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng);[〇〇1〇]所述數(shù)據(jù)同步系統(tǒng)接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,所述數(shù)據(jù)變更通知是所述數(shù)據(jù)中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,所述數(shù)據(jù)變更通知包括所述數(shù)據(jù)中心中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識;從所述發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)所述待同步的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待同步的數(shù)據(jù);將所述待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng);
[0011]所述索引系統(tǒng)接收并存儲所述待同步的數(shù)據(jù);建立所述待同步的數(shù)據(jù)所對應(yīng)的索引。
[0012]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果包括:
[0013]通過數(shù)據(jù)同步系統(tǒng)在接收到數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知之后,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù),并將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng),由索引系統(tǒng)接收并存儲待同步的數(shù)據(jù), 并建立待同步的數(shù)據(jù)所對應(yīng)的索引;解決了現(xiàn)有技術(shù)中數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求的問題;由于數(shù)據(jù)同步系統(tǒng)能夠在數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng),達到了減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求?!靖綀D說明】
[0014]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1是本發(fā)明一個實施例提供的搜索系統(tǒng)的示意圖;
[0016]圖2是本發(fā)明另一實施例提供的搜索系統(tǒng)的示意圖;
[0017]圖3是本發(fā)明又一實施例提供的搜索系統(tǒng)的示意圖;
[0018]圖4是本發(fā)明一個實施例提供的數(shù)據(jù)同步方法的流程圖;
[0019]圖5是本發(fā)明一個實施例提供的服務(wù)器的結(jié)構(gòu)示意圖?!揪唧w實施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0021]本發(fā)明實施例提供了一種搜索系統(tǒng)及數(shù)據(jù)同步方法,以達到減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求的目的。其中,實時搜索服務(wù)是指當(dāng)數(shù)據(jù)中心的任意數(shù)據(jù)發(fā)生變更(包括增加、刪除和修改)之后,能夠立即為搜索請求返回變更后的數(shù)據(jù)的搜索服務(wù)。
[0022]下面,通過幾個實施例對本發(fā)明提供的技術(shù)方案進行介紹和說明。
[0023]請參考圖1,其示出了本發(fā)明一個實施例提供的搜索系統(tǒng)的示意圖。[〇〇24]搜索系統(tǒng)10和數(shù)據(jù)中心20對接。搜索系統(tǒng)10用于向用戶提供搜索服務(wù)。數(shù)據(jù)中心 20中存儲有數(shù)據(jù),作為向搜索系統(tǒng)10提供數(shù)據(jù)的數(shù)據(jù)源。此外,數(shù)據(jù)中心20中存儲的數(shù)據(jù), 也可稱為文檔或者數(shù)據(jù)文檔,一個文檔對應(yīng)于一條數(shù)據(jù)。某條數(shù)據(jù)發(fā)生變更,即是指某個文檔的內(nèi)容發(fā)生變更,如文檔的內(nèi)容出現(xiàn)增加、刪除或修改中的至少一種情況。
[0025]搜索系統(tǒng)10包括:數(shù)據(jù)同步系統(tǒng)11和索引系統(tǒng)12。數(shù)據(jù)同步系統(tǒng)11用于在數(shù)據(jù)中心20存儲的數(shù)據(jù)發(fā)生變更之后,將發(fā)生變更的數(shù)據(jù)同步至索引系統(tǒng)12。索引系統(tǒng)12用于存儲供用戶搜索的數(shù)據(jù),并建立供用戶搜索的數(shù)據(jù)所對應(yīng)的索引,在接收到用戶發(fā)送的搜索請求之后,根據(jù)索引獲取搜索結(jié)果并反饋給用戶。
[0026]請參考圖2,其示出了本發(fā)明另一實施例提供的搜索系統(tǒng)的示意圖。搜索系統(tǒng)10和數(shù)據(jù)中心20對接。搜索系統(tǒng)10包括:數(shù)據(jù)同步系統(tǒng)11和索引系統(tǒng)12。
[0027]在本發(fā)明實施例中,對數(shù)據(jù)中心20存儲數(shù)據(jù)的形式不作限定。例如,如圖2所示,數(shù)據(jù)中心20可以數(shù)據(jù)庫、網(wǎng)頁或者文件等任意一種或多種形式存儲數(shù)據(jù)。[〇〇28]數(shù)據(jù)同步系統(tǒng)11,用于接收數(shù)據(jù)中心20發(fā)送的數(shù)據(jù)變更通知,數(shù)據(jù)變更通知是數(shù)據(jù)中心20在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,數(shù)據(jù)變更通知包括數(shù)據(jù)中心20中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識。在本發(fā)明實施例中,數(shù)據(jù)中心20在檢測到存儲的數(shù)據(jù)發(fā)生變更時, 主動且實時地向數(shù)據(jù)同步系統(tǒng)11發(fā)送數(shù)據(jù)變更通知,從而使得數(shù)據(jù)同步系統(tǒng)11在數(shù)據(jù)中心 20中有數(shù)據(jù)發(fā)生變更后,能夠立即獲知該情況。
[0029]數(shù)據(jù)同步系統(tǒng)11,還用于從發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù);將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng)12。 其中,待同步的數(shù)據(jù)是指發(fā)生變更的數(shù)據(jù)中,需要同步給索引系統(tǒng)12的數(shù)據(jù),待同步的數(shù)據(jù)可以是發(fā)生變更的數(shù)據(jù)中的全部或部分數(shù)據(jù)。數(shù)據(jù)同步系統(tǒng)11從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù)之后,采用增量同步方式將待同步的數(shù)據(jù)同步給索引系統(tǒng)12。增量同步方式是指當(dāng)兩個數(shù)據(jù)集進行數(shù)據(jù)同步時,每次只同步該兩個數(shù)據(jù)集之間不同的部分。
[0030]索引系統(tǒng)12,用于接收并存儲待同步的數(shù)據(jù);建立待同步的數(shù)據(jù)所對應(yīng)的索引。
[0031]在現(xiàn)有技術(shù)中,由于是通過網(wǎng)絡(luò)爬蟲每隔預(yù)定時間間隔遍歷一次數(shù)據(jù)中心,檢測數(shù)據(jù)中心是否有發(fā)生變更的數(shù)據(jù)。該預(yù)定時間間隔會根據(jù)實際需求設(shè)置成幾分鐘至幾天不等。也即,在現(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)中心有數(shù)據(jù)發(fā)生變更之后,少則經(jīng)過幾分鐘將發(fā)生變更的數(shù)據(jù)同步給搜索系統(tǒng),多則需要經(jīng)過幾天才能將發(fā)生變更的數(shù)據(jù)同步給搜索系統(tǒng)。然而,通過本發(fā)明實施例提供的方案,數(shù)據(jù)同步系統(tǒng)11能夠在數(shù)據(jù)中心20中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng)12,當(dāng)數(shù)據(jù)中心20有數(shù)據(jù)發(fā)生變更之后,僅需經(jīng)過數(shù)秒即可將待同步的數(shù)據(jù)同步給搜索系統(tǒng)12,數(shù)據(jù)同步的時延相較于現(xiàn)有技術(shù)顯著減少。[〇〇32]綜上所述,本實施例提供的搜索系統(tǒng),通過數(shù)據(jù)同步系統(tǒng)在接收到數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知之后,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù),并將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng), 由索引系統(tǒng)接收并存儲待同步的數(shù)據(jù),并建立待同步的數(shù)據(jù)所對應(yīng)的索引;解決了現(xiàn)有技術(shù)中數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求的問題;由于數(shù)據(jù)同步系統(tǒng)能夠在數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng),達到了減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求。
[0033]請參考圖3,其示出了本發(fā)明又一實施例提供的搜索系統(tǒng)的示意圖。搜索系統(tǒng)10和數(shù)據(jù)中心20對接。搜索系統(tǒng)10包括:數(shù)據(jù)同步系統(tǒng)11和索引系統(tǒng)12。[〇〇34]數(shù)據(jù)同步系統(tǒng)11,用于接收數(shù)據(jù)中心20發(fā)送的數(shù)據(jù)變更通知,數(shù)據(jù)變更通知是數(shù)據(jù)中心20在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的。例如,數(shù)據(jù)同步系統(tǒng)11預(yù)先向數(shù)據(jù)中心 20發(fā)送變更通知請求,該變更通知請求用于請求數(shù)據(jù)中心20在檢測到存儲的數(shù)據(jù)發(fā)生變更時,立即向數(shù)據(jù)同步系統(tǒng)11發(fā)送數(shù)據(jù)變更通知。在本發(fā)明實施例中,對數(shù)據(jù)變更的形式不作限定,包括增加、刪除和修改中的至少一種。數(shù)據(jù)變更通知包括數(shù)據(jù)中心20中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識。一條數(shù)據(jù)所對應(yīng)的標識,即為該條數(shù)據(jù)的唯一標識符,用于唯一標識該條數(shù)據(jù)。發(fā)生變更的數(shù)據(jù)可以包括一條或者多條數(shù)據(jù)。
[0035]數(shù)據(jù)同步系統(tǒng)11,還用于從發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù)。其中,待同步的數(shù)據(jù)是指發(fā)生變更的數(shù)據(jù)中,需要同步給索引系統(tǒng)12的數(shù)據(jù),待同步的數(shù)據(jù)可以是發(fā)生變更的數(shù)據(jù)中的全部或部分數(shù)據(jù)。數(shù)據(jù)中心20可能存儲多種不同類型的數(shù)據(jù),而索引系統(tǒng)12 可能針對其中部分類型的數(shù)據(jù)提供搜索服務(wù),因此,數(shù)據(jù)中心20中發(fā)生變更的數(shù)據(jù),可能并不是索引系統(tǒng)12所需的數(shù)據(jù)。在本實施例中,數(shù)據(jù)同步系統(tǒng)11可具體用于:分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從發(fā)生變更的數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為待同步的數(shù)據(jù)。其中,目標類型的數(shù)據(jù)是指索引系統(tǒng)12所需類型的數(shù)據(jù)。在本實施例中,對數(shù)據(jù)類型的劃分方式不作限定,例如可按業(yè)務(wù)種類對數(shù)據(jù)類型進行劃分。在一個示例中,假設(shè)發(fā)生變更的數(shù)據(jù)包括4條數(shù)據(jù),其中第1條數(shù)據(jù)所對應(yīng)的類型為A,第2條數(shù)據(jù)所對應(yīng)的類型為B,第3 條和第4條數(shù)據(jù)所對應(yīng)的類型為C,如果目標類型為A和C,則數(shù)據(jù)同步系統(tǒng)11選取第1、3和4 條數(shù)據(jù)作為待同步的數(shù)據(jù)。每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型,可以由數(shù)據(jù)中心20發(fā)送的數(shù)據(jù)變更通知中攜帶,也可由數(shù)據(jù)同步系統(tǒng)11根據(jù)數(shù)據(jù)所對應(yīng)的標識查詢預(yù)設(shè)對應(yīng)關(guān)系得到,該預(yù)設(shè)對應(yīng)關(guān)系包括數(shù)據(jù)所對應(yīng)的標識與類型之間的對應(yīng)關(guān)系。
[0036]數(shù)據(jù)同步系統(tǒng)11,還用于根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù)。例如,數(shù)據(jù)同步系統(tǒng)11向數(shù)據(jù)中心20發(fā)送數(shù)據(jù)獲取請求,數(shù)據(jù)獲取請求中攜帶待同步的數(shù)據(jù)所對應(yīng)的標識;數(shù)據(jù)中心20接收到上述數(shù)據(jù)獲取請求之后,向數(shù)據(jù)同步系統(tǒng) 11發(fā)送待同步的數(shù)據(jù)。
[0037]數(shù)據(jù)同步系統(tǒng)11,還用于將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng)12。數(shù)據(jù)同步系統(tǒng)11從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù)之后,采用增量同步方式將待同步的數(shù)據(jù)同步給索引系統(tǒng) 12。上述增量同步過程是完全實時的,因此消除了數(shù)據(jù)從修改到被索引系統(tǒng)12索引的延時, 從而達到實時搜索的目的。
[0038]索引系統(tǒng)12,用于接收并存儲待同步的數(shù)據(jù);建立待同步的數(shù)據(jù)所對應(yīng)的索引。在一個示例中,如圖3所示,索引系統(tǒng)12包括:文檔集、全文索引器、索引倉庫和搜索服務(wù)模塊。 其中,文檔集用于存儲可供用戶搜索的數(shù)據(jù)。全文索引器用于建立數(shù)據(jù)所對應(yīng)的索引。索引倉庫用于存儲數(shù)據(jù)所對應(yīng)的索引。搜索服務(wù)模塊用于接收用戶發(fā)送的搜索請求,根據(jù)搜索請求中包含的關(guān)鍵詞從索引倉庫中檢索獲取包含上述關(guān)鍵詞的數(shù)據(jù),并從文檔集中獲取上述檢索到的數(shù)據(jù)反饋給用戶。索引系統(tǒng)12接收到數(shù)據(jù)同步系統(tǒng)11發(fā)送的待同步的數(shù)據(jù)之后,將待同步的數(shù)據(jù)存儲至文檔集中。全文索引器建立待同步的數(shù)據(jù)所對應(yīng)的索引,并將待同步的數(shù)據(jù)所對應(yīng)的索引更新至索引倉庫。
[0039]可選地,如圖2所示,數(shù)據(jù)同步系統(tǒng)11中包括本地數(shù)據(jù)庫。數(shù)據(jù)同步系統(tǒng)11,還用于將待同步的數(shù)據(jù)存儲至本地數(shù)據(jù)庫中;定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng) 12。數(shù)據(jù)同步系統(tǒng)11在從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù)之后,同樣采用增量同步方式將待同步的數(shù)據(jù)同步至本地數(shù)據(jù)庫中。并且,數(shù)據(jù)同步系統(tǒng)11定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng)12。例如,數(shù)據(jù)同步系統(tǒng)11每隔預(yù)定時間間隔將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng)12。全量同步方式是指當(dāng)兩個數(shù)據(jù)集進行數(shù)據(jù)同步時,每次都一次性同步其中一個數(shù)據(jù)集中的全部數(shù)據(jù)至另一個數(shù)據(jù)集。具體來講,數(shù)據(jù)同步系統(tǒng)11,用于定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全部發(fā)送給索引系統(tǒng)12;索引系統(tǒng)12,用于接收并存儲數(shù)據(jù)同步系統(tǒng)11 發(fā)送的數(shù)據(jù),建立上述數(shù)據(jù)所對應(yīng)的索引,并清除原先存儲的數(shù)據(jù)及原先存儲的數(shù)據(jù)所對應(yīng)的索引。索引系統(tǒng)12接收到數(shù)據(jù)同步系統(tǒng)11全量同步過來的數(shù)據(jù)之后,清楚原先存儲的所有數(shù)據(jù)及對應(yīng)的索引,并重新創(chuàng)建索引。
[0040]由于數(shù)據(jù)同步系統(tǒng)11與索引系統(tǒng)12長時間進行增量同步之后,會因為某些原因?qū)е峦轿闯晒ν瓿?,使得索引系統(tǒng)12和數(shù)據(jù)中心20之間出現(xiàn)較多不一致的數(shù)據(jù),帶來數(shù)據(jù)的一致性問題。例如,由于出現(xiàn)網(wǎng)絡(luò)丟包的狀況,增量同步之后會導(dǎo)致索引系統(tǒng)12中存儲的數(shù)據(jù)與數(shù)據(jù)中心20中相應(yīng)的數(shù)據(jù)不一致。在本實施例中,通過數(shù)據(jù)同步系統(tǒng)11將待同步的數(shù)據(jù)備份至本地數(shù)據(jù)庫,并且定期全量同步至索引系統(tǒng)12,可以確保索引系統(tǒng)12中存儲的數(shù)據(jù)與數(shù)據(jù)中心20中相應(yīng)的數(shù)據(jù)一致,保證了搜索結(jié)果的正確性。
[0041]在一個示例中,如圖3所示,數(shù)據(jù)同步系統(tǒng)11包括:變更發(fā)布中心111和數(shù)據(jù)同步中心 112〇
[0042]數(shù)據(jù)同步中心112,用于向變更發(fā)布中心111發(fā)送訂閱請求,該訂閱請求用于請求變更發(fā)布中心111在確認數(shù)據(jù)中心20有目標類型的數(shù)據(jù)發(fā)生變更時,向數(shù)據(jù)同步中心112進行通知。[〇〇43]變更發(fā)布中心111,用于在接收到數(shù)據(jù)中心20發(fā)送的數(shù)據(jù)變更通知之后,分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從發(fā)生變更的數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為待同步的數(shù)據(jù);將待同步的數(shù)據(jù)所對應(yīng)的標識發(fā)送給數(shù)據(jù)同步中心112。
[0044]數(shù)據(jù)同步中心112,還用于根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心20獲取待同步的數(shù)據(jù),而后將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng)12。
[0045]通過上述方式,將數(shù)據(jù)同步系統(tǒng)11分為變更發(fā)布中心111和數(shù)據(jù)同步中心112兩個功能模塊,實現(xiàn)功能上的相互獨立,使得整個搜索系統(tǒng)10的架構(gòu)更為合理規(guī)范。
[0046]綜上所述,本實施例提供的搜索系統(tǒng),通過數(shù)據(jù)同步系統(tǒng)在接收到數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知之后,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù),并將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng), 由索引系統(tǒng)接收并存儲待同步的數(shù)據(jù),并建立待同步的數(shù)據(jù)所對應(yīng)的索引;解決了現(xiàn)有技術(shù)中數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求的問題;由于數(shù)據(jù)同步系統(tǒng)能夠在數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng),達到了減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求。
[0047]另外,還通過數(shù)據(jù)同步系統(tǒng)從數(shù)據(jù)中心獲取待同步的數(shù)據(jù)之后,將待同步的數(shù)據(jù)存儲至本地數(shù)據(jù)庫中,并定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng),確保索引系統(tǒng)中存儲的數(shù)據(jù)與數(shù)據(jù)中心中相應(yīng)的數(shù)據(jù)一致,保證了搜索結(jié)果的正確性。
[0048]下述為本發(fā)明方法實施例,對于本發(fā)明方法實施例中未披露的細節(jié),請參照本發(fā)明系統(tǒng)實施例。
[0049]請參考圖4,其示出了本發(fā)明一個實施例提供的數(shù)據(jù)同步方法的流程圖。該方法應(yīng)用于搜索系統(tǒng)中,該搜索系統(tǒng)包括數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng)。例如,該搜索系統(tǒng)可以是上述圖2或圖3所示實施例提供的搜索系統(tǒng)。該方法可以包括如下幾個步驟。
[0050]步驟401,數(shù)據(jù)同步系統(tǒng)接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,數(shù)據(jù)變更通知是數(shù)據(jù)中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,數(shù)據(jù)變更通知包括數(shù)據(jù)中心中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識。
[0051]步驟402,數(shù)據(jù)同步系統(tǒng)從發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù)。[〇〇52]步驟403,數(shù)據(jù)同步系統(tǒng)根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù)。[〇〇53]步驟404,數(shù)據(jù)同步系統(tǒng)將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng)。[〇〇54]相應(yīng)地,索引系統(tǒng)接收數(shù)據(jù)同步系統(tǒng)發(fā)送的待同步的數(shù)據(jù)。[〇〇55]步驟405,索引系統(tǒng)存儲待同步的數(shù)據(jù)。[〇〇56]步驟406,索引系統(tǒng)建立待同步的數(shù)據(jù)所對應(yīng)的索引。[〇〇57]綜上所述,本實施例提供的搜索方法,通過數(shù)據(jù)同步系統(tǒng)在接收到數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知之后,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù),并將待同步的數(shù)據(jù)發(fā)送給索引系統(tǒng),由索引系統(tǒng)接收并存儲待同步的數(shù)據(jù),并建立待同步的數(shù)據(jù)所對應(yīng)的索引;解決了現(xiàn)有技術(shù)中數(shù)據(jù)同步的時延較高,無法滿足實時搜索的業(yè)務(wù)需求的問題;由于數(shù)據(jù)同步系統(tǒng)能夠在數(shù)據(jù)中心中有數(shù)據(jù)發(fā)生變更后,立即獲知該情況,且及時地將待同步的數(shù)據(jù)同步給索引系統(tǒng),達到了減少數(shù)據(jù)同步的時延,滿足實時搜索的業(yè)務(wù)需求。
[0058]在一個示例中,上述步驟403之后還包括:數(shù)據(jù)同步系統(tǒng)將待同步的數(shù)據(jù)存儲至本地數(shù)據(jù)庫中,定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng)。
[0059]可選地,數(shù)據(jù)同步系統(tǒng)定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至索引系統(tǒng),包括:
[0060]數(shù)據(jù)同步系統(tǒng)定期將本地數(shù)據(jù)庫中的數(shù)據(jù)全部發(fā)送給索引系統(tǒng);
[0061]索引系統(tǒng)接收并存儲數(shù)據(jù);建立數(shù)據(jù)所對應(yīng)的索引,并清除原先存儲的數(shù)據(jù)及原先存儲的數(shù)據(jù)所對應(yīng)的索引。
[0062]在另一個示例中,上述步驟402包括:數(shù)據(jù)同步系統(tǒng)分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從發(fā)生變更的數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為待同步的數(shù)據(jù)。
[0063]可選地,數(shù)據(jù)同步系統(tǒng)包括:變更發(fā)布中心和數(shù)據(jù)同步中心。
[0064]數(shù)據(jù)同步中心向變更發(fā)布中心發(fā)送訂閱請求,該訂閱請求用于請求變更發(fā)布中心在確認數(shù)據(jù)中心有目標類型的數(shù)據(jù)發(fā)生變更時,向數(shù)據(jù)同步中心進行通知。
[0065]變更發(fā)布中心在接收到數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知之后,分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從發(fā)生變更的數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為待同步的數(shù)據(jù); 將待同步的數(shù)據(jù)所對應(yīng)的標識發(fā)送給數(shù)據(jù)同步中心。
[0066]數(shù)據(jù)同步中心根據(jù)待同步的數(shù)據(jù)所對應(yīng)的標識,從數(shù)據(jù)中心獲取待同步的數(shù)據(jù)。
[0067]上述方法實施例與系統(tǒng)實施例屬于同一構(gòu)思,有關(guān)方法實施例中各步驟的介紹和說明,參見系統(tǒng)實施例中的描述,這里不再贅述。
[0068]請參考圖5,其示出了本發(fā)明一個實施例提供的服務(wù)器的結(jié)構(gòu)示意圖。上述數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng)中可分別部署一臺或多臺服務(wù)器,以分別實現(xiàn)數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng)各自的功能。具體來講:[〇〇69] 所述服務(wù)器500包括中央處理單元(CPU)501、包括隨機存取存儲器(RAM)502和只讀存儲器(R〇M)503的系統(tǒng)存儲器504,以及連接系統(tǒng)存儲器504和中央處理單元501的系統(tǒng)總線505。所述服務(wù)器500還包括幫助計算機內(nèi)的各個器件之間傳輸信息的基本輸入/輸出系統(tǒng)(I/O系統(tǒng))506,和用于存儲操作系統(tǒng)513、應(yīng)用程序514和其他程序模塊515的大容量存儲設(shè)備507。
[0070]所述基本輸入/輸出系統(tǒng)506包括有用于顯示信息的顯示器508和用于用戶輸入信息的諸如鼠標、鍵盤之類的輸入設(shè)備509。其中所述顯示器508和輸入設(shè)備509都通過連接到系統(tǒng)總線505的輸入輸出控制器510連接到中央處理單元501。所述基本輸入/輸出系統(tǒng)506 還可以包括輸入輸出控制器510以用于接收和處理來自鍵盤、鼠標、或電子觸控筆等多個其他設(shè)備的輸入。類似地,輸入輸出控制器510還提供輸出到顯示屏、打印機或其他類型的輸出設(shè)備。
[0071]所述大容量存儲設(shè)備507通過連接到系統(tǒng)總線505的大容量存儲控制器(未示出) 連接到中央處理單元501。所述大容量存儲設(shè)備507及其相關(guān)聯(lián)的計算機可讀介質(zhì)為服務(wù)器 500提供非易失性存儲。也就是說,所述大容量存儲設(shè)備507可以包括諸如硬盤或者CD-ROM 驅(qū)動器之類的計算機可讀介質(zhì)(未示出)。
[0072]不失一般性,所述計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括 1^1、如1^?如1^£?1?011、閃存或其他固態(tài)存儲其技術(shù),00-1?(麗、0¥0或其他光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備。當(dāng)然,本領(lǐng)域技術(shù)人員可知所述計算機存儲介質(zhì)不局限于上述幾種。上述的系統(tǒng)存儲器504和大容量存儲設(shè)備507可以統(tǒng)稱為存儲器。[〇〇73]根據(jù)本發(fā)明的各種實施例,所述服務(wù)器500還可以通過諸如因特網(wǎng)等網(wǎng)絡(luò)連接到網(wǎng)絡(luò)上的遠程計算機運行。也即服務(wù)器500可以通過連接在所述系統(tǒng)總線505上的網(wǎng)絡(luò)接口單元511連接到網(wǎng)絡(luò)512,或者說,也可以使用網(wǎng)絡(luò)接口單元511來連接到其他類型的網(wǎng)絡(luò)或遠程計算機系統(tǒng)(未示出)。
[0074]所述存儲器還包括一個或者一個以上的程序,所述一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行。上述一個或者一個以上程序包含用于執(zhí)行上述方法的指令。
[0075]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。[〇〇76]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。[〇〇77]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種搜索系統(tǒng),其特征在于,所述搜索系統(tǒng)包括:數(shù)據(jù)同步系統(tǒng)和索引系統(tǒng);所述數(shù)據(jù)同步系統(tǒng),用于接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,所述數(shù)據(jù)變更通知是所 述數(shù)據(jù)中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,所述數(shù)據(jù)變更通知包括所述數(shù)據(jù)中心 中發(fā)生變更的數(shù)據(jù)所對應(yīng)的標識;從所述發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)所述 待同步的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待同步的數(shù)據(jù);將所述待同步的數(shù) 據(jù)發(fā)送給索引系統(tǒng);所述索引系統(tǒng),用于接收并存儲所述待同步的數(shù)據(jù);建立所述待同步的數(shù)據(jù)所對應(yīng)的 索引。2.根據(jù)權(quán)利要求1所述的搜索系統(tǒng),其特征在于,所述數(shù)據(jù)同步系統(tǒng),還用于將所述待同步的數(shù)據(jù)存儲至本地數(shù)據(jù)庫中;定期將所述本 地數(shù)據(jù)庫中的數(shù)據(jù)全量同步至所述索引系統(tǒng)。3.根據(jù)權(quán)利要求2所述的搜索系統(tǒng),其特征在于,所述數(shù)據(jù)同步系統(tǒng),用于定期將所述本地數(shù)據(jù)庫中的數(shù)據(jù)全部發(fā)送給所述索引系統(tǒng);所述索引系統(tǒng),用于接收并存儲所述數(shù)據(jù);建立所述數(shù)據(jù)所對應(yīng)的索引,并清除原先存 儲的數(shù)據(jù)及所述原先存儲的數(shù)據(jù)所對應(yīng)的索引。4.根據(jù)權(quán)利要求1所述的搜索系統(tǒng),其特征在于,所述數(shù)據(jù)同步系統(tǒng),具體用于:分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從所述發(fā)生變更的數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為所述待同步的數(shù)據(jù)。5.根據(jù)權(quán)利要求4所述的搜索系統(tǒng),其特征在于,所述數(shù)據(jù)同步系統(tǒng)包括:變更發(fā)布中 心和數(shù)據(jù)同步中心;所述數(shù)據(jù)同步中心,用于向所述變更發(fā)布中心發(fā)送訂閱請求,所述訂閱請求用于請求 所述變更發(fā)布中心在確認所述數(shù)據(jù)中心有所述目標類型的數(shù)據(jù)發(fā)生變更時,向所述數(shù)據(jù)同 步中心進行通知;所述變更發(fā)布中心,用于在接收到所述數(shù)據(jù)中心發(fā)送的所述數(shù)據(jù)變更通知之后,分別 獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從所述發(fā)生變更的數(shù)據(jù)中選取所述目標類型的 數(shù)據(jù),作為所述待同步的數(shù)據(jù);將所述待同步的數(shù)據(jù)所對應(yīng)的標識發(fā)送給所述數(shù)據(jù)同步中 心;所述數(shù)據(jù)同步中心,還用于根據(jù)所述待同步的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲 取所述待同步的數(shù)據(jù)。6.—種數(shù)據(jù)同步方法,其特征在于,應(yīng)用于搜索系統(tǒng)中,所述搜索系統(tǒng)包括:數(shù)據(jù)同步 系統(tǒng)和索引系統(tǒng);所述數(shù)據(jù)同步系統(tǒng)接收數(shù)據(jù)中心發(fā)送的數(shù)據(jù)變更通知,所述數(shù)據(jù)變更通知是所述數(shù)據(jù) 中心在檢測到存儲的數(shù)據(jù)發(fā)生變更時發(fā)送的,所述數(shù)據(jù)變更通知包括所述數(shù)據(jù)中心中發(fā)生 變更的數(shù)據(jù)所對應(yīng)的標識;從所述發(fā)生變更的數(shù)據(jù)中確定待同步的數(shù)據(jù);根據(jù)所述待同步 的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待同步的數(shù)據(jù);將所述待同步的數(shù)據(jù)發(fā)送 給索引系統(tǒng);所述索引系統(tǒng)接收并存儲所述待同步的數(shù)據(jù);建立所述待同步的數(shù)據(jù)所對應(yīng)的索引。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步系統(tǒng)根據(jù)所述待同步的數(shù)據(jù) 所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待同步的數(shù)據(jù)之后,還包括:所述數(shù)據(jù)同步系統(tǒng)將所述待同步的數(shù)據(jù)存儲至本地數(shù)據(jù)庫中;定期將所述本地數(shù)據(jù)庫 中的數(shù)據(jù)全量同步至所述索引系統(tǒng)。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述數(shù)據(jù)同步系統(tǒng)定期將所述本地數(shù)據(jù)庫 中的數(shù)據(jù)全量同步至所述索引系統(tǒng),包括:所述數(shù)據(jù)同步系統(tǒng)定期將所述本地數(shù)據(jù)庫中的數(shù)據(jù)全部發(fā)送給所述索引系統(tǒng);所述索引系統(tǒng)接收并存儲所述數(shù)據(jù);建立所述數(shù)據(jù)所對應(yīng)的索引,并清除原先存儲的 數(shù)據(jù)及所述原先存儲的數(shù)據(jù)所對應(yīng)的索引。9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步系統(tǒng)從所述發(fā)生變更的數(shù)據(jù) 中確定待同步的數(shù)據(jù),包括:所述數(shù)據(jù)同步系統(tǒng)分別獲取每一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從所述發(fā)生變更的 數(shù)據(jù)中選取目標類型的數(shù)據(jù),作為所述待同步的數(shù)據(jù)。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述數(shù)據(jù)同步系統(tǒng)包括:變更發(fā)布中心和 數(shù)據(jù)同步中心;所述數(shù)據(jù)同步中心向所述變更發(fā)布中心發(fā)送訂閱請求,所述訂閱請求用于請求所述變 更發(fā)布中心在確認所述數(shù)據(jù)中心有所述目標類型的數(shù)據(jù)發(fā)生變更時,向所述數(shù)據(jù)同步中心 進行通知;所述變更發(fā)布中心在接收到所述數(shù)據(jù)中心發(fā)送的所述數(shù)據(jù)變更通知之后,分別獲取每 一條發(fā)生變更的數(shù)據(jù)所對應(yīng)的類型;從所述發(fā)生變更的數(shù)據(jù)中選取所述目標類型的數(shù)據(jù), 作為所述待同步的數(shù)據(jù);將所述待同步的數(shù)據(jù)所對應(yīng)的標識發(fā)送給所述數(shù)據(jù)同步中心;所述數(shù)據(jù)同步中心根據(jù)所述待同步的數(shù)據(jù)所對應(yīng)的標識,從所述數(shù)據(jù)中心獲取所述待 同步的數(shù)據(jù)。
【文檔編號】G06F17/30GK106095911SQ201610404444
【公開日】2016年11月9日
【申請日】2016年6月7日
【發(fā)明人】何勇, 張智泉, 徐之剛
【申請人】騰訊科技(深圳)有限公司