本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)更新系統(tǒng)及方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,海量數(shù)據(jù)的膨脹,垂直搜索的需求也日益增長。垂直搜索不同于網(wǎng)頁搜索,是對某類信息的定向搜索。搜索平臺可以作為搜索托管服務(wù)平臺為一些用戶(如企業(yè)用戶或個人用戶)提供垂直搜索服務(wù),由用戶在該搜索平臺上上傳指定的數(shù)據(jù)集合,以推出自身的個性化搜索服務(wù)。例如,手機(jī)管家等應(yīng)用的提供商可以向搜索平臺上傳應(yīng)用數(shù)據(jù)集合,從而使得手機(jī)管家用戶可以在應(yīng)用中進(jìn)行搜索。
現(xiàn)有技術(shù)中,用戶可以提供定期上傳全量數(shù)據(jù)集合至搜索平臺,也即是,用戶可以把新增數(shù)據(jù)和已有數(shù)據(jù)保存成一個新的全量數(shù)據(jù)集合,并定期將該全量數(shù)據(jù)集合上傳至搜索平臺,以替換舊的全量數(shù)據(jù)集合,從而實現(xiàn)對全量數(shù)據(jù)的更新。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
由于用戶只能定期上傳更新的全量數(shù)據(jù)集合,且一旦進(jìn)行上述替換過程,則可能需要暫停搜索服務(wù),影響搜索服務(wù)的正常運(yùn)行,更新的實時性差。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種數(shù)據(jù)更新系統(tǒng)及方法。所述技術(shù)方案如下:
一方面,提供了一種數(shù)據(jù)更新系統(tǒng),包括:離線模塊和在線模塊;
所述離線模塊,用于當(dāng)檢測到用戶的第一數(shù)據(jù)文件,所述離線模塊向所述在線模塊申請新的存儲空間,所述第一數(shù)據(jù)文件的數(shù)據(jù)類型為全量數(shù)據(jù);
所述離線模塊,還用于對接收到的第一數(shù)據(jù)文件進(jìn)行處理,得到新版本的搜索服務(wù)數(shù)據(jù),并將新版本的搜索服務(wù)數(shù)據(jù)推送至所述在線模塊進(jìn)行加載;
所述在線模塊,用于分配新的存儲空間,并在接收到所述新版本的搜索服務(wù)數(shù)據(jù)時,在所述新的存儲空間中加載所述新版本的搜索服務(wù)數(shù)據(jù);
所述在線模塊用于在所述新版本的搜索服務(wù)數(shù)據(jù)未加載完成之前,保持由舊版本的搜索服務(wù)數(shù)據(jù)的在線狀態(tài),以提供搜索服務(wù);
所述在線模塊還用于在所述新版本的搜索服務(wù)數(shù)據(jù)加載完成時,將所述舊版本的搜索服務(wù)數(shù)據(jù)下線,并啟動所述新版本的搜索服務(wù)數(shù)據(jù),以提供所述搜索服務(wù)。
另一方面,提供了一種數(shù)據(jù)更新方法,包括:
當(dāng)檢測到用戶的第一數(shù)據(jù)文件,申請新的存儲空間,所述第一數(shù)據(jù)文件的數(shù)據(jù)類型為全量數(shù)據(jù);
對接收到的第一數(shù)據(jù)文件進(jìn)行處理,得到新版本的搜索服務(wù)數(shù)據(jù),在所述新的存儲空間中加載所述新版本的搜索服務(wù)數(shù)據(jù);
在所述新版本的搜索服務(wù)數(shù)據(jù)未加載完成之前,保持由舊版本的搜索服務(wù)數(shù)據(jù)的在線狀態(tài),以提供搜索服務(wù);
在所述新版本的搜索服務(wù)數(shù)據(jù)加載完成時,將所述舊版本的搜索服務(wù)數(shù)據(jù)下線,并啟動所述新版本的搜索服務(wù)數(shù)據(jù),以提供所述搜索服務(wù)。
本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
通過在數(shù)據(jù)更新過程中,一邊進(jìn)行新的全量數(shù)據(jù)的處理,一邊采用原有全量數(shù)據(jù)來提供搜索服務(wù),可以在不影響搜索服務(wù)正常運(yùn)行的情況下,實現(xiàn)數(shù)據(jù)的更新,該過程不僅能夠提高更新的實時性,且提供了更加靈活的更新方式。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種數(shù)據(jù)更新系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例提供的數(shù)據(jù)更新系統(tǒng)的可能實現(xiàn)方式的架構(gòu)示意圖;
圖3是本發(fā)明實施例提供的一種數(shù)據(jù)更新方法的流程圖;
圖4是根據(jù)一示例性實施例示出的一種服務(wù)器400的框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。
對于檢索服務(wù)來說,其不同階段需要采用不同的更新方式,例如,剛剛開始提供檢索服務(wù)時,必須提供一份全量數(shù)據(jù)集合,搜索平臺才能根據(jù)這些數(shù)據(jù)中所包括的文檔建立索引目錄,以提供檢索服務(wù)。而檢索服務(wù)過程中,為了維護(hù)該搜索服務(wù),用戶可以上傳批量增量數(shù)據(jù)。例如,應(yīng)用管理業(yè)務(wù)定期增加了一批應(yīng)用,因此用戶需要提供這批應(yīng)用數(shù)據(jù),以生成新的索引目錄,使得應(yīng)用用戶可以檢索到這批應(yīng)用。而檢索服務(wù)過程中,用戶還可能想要實時更新某一條數(shù)據(jù),此時,用戶可以實時更新單個文檔。例如,視頻業(yè)務(wù)新出了一個電影,那么用戶就需要檢索服務(wù)能夠?qū)崟r插入這個數(shù)據(jù)的索引,使這條數(shù)據(jù)能夠立即被檢索到,為了在保證正常運(yùn)行的前提下,提供數(shù)據(jù)更新,提供了以下數(shù)據(jù)更新系統(tǒng)以及數(shù)據(jù)更新方法。
圖1是本發(fā)明實施例提供的一種數(shù)據(jù)更新系統(tǒng)的結(jié)構(gòu)示意圖。參見圖1,該數(shù)據(jù)更新系統(tǒng)包括:離線模塊101和在線模塊102;
離線模塊101,用于當(dāng)檢測到用戶的第一數(shù)據(jù)文件,所述離線模塊101向所述在線模塊102申請新的存儲空間,所述第一數(shù)據(jù)文件的數(shù)據(jù)類型為全量數(shù)據(jù);
所述離線模塊101,還用于對接收到的第一數(shù)據(jù)文件進(jìn)行處理,得到新版本的搜索服務(wù)數(shù)據(jù),并將新版本的搜索服務(wù)數(shù)據(jù)推送至所述在線模塊102進(jìn)行加載;
所述在線模塊102,用于分配新的存儲空間,并在接收到所述新版本的搜索服務(wù)數(shù)據(jù)時,在所述新的存儲空間中加載所述新版本的搜索服務(wù)數(shù)據(jù);
所述在線模塊102用于在所述新版本的搜索服務(wù)數(shù)據(jù)未加載完成之前,保持由舊版本的搜索服務(wù)數(shù)據(jù)的在線狀態(tài),以提供搜索服務(wù);
所述在線模塊102還用于在所述新版本的搜索服務(wù)數(shù)據(jù)加載完成時,將所述舊版本的搜索服務(wù)數(shù)據(jù)下線,并啟動所述新版本的搜索服務(wù)數(shù)據(jù),以提供所述搜索服務(wù)。
上述實施例提供的數(shù)據(jù)更新系統(tǒng),通過在數(shù)據(jù)更新過程中,一邊進(jìn)行新的全量數(shù)據(jù)的處理,一邊采用原有全量數(shù)據(jù)來提供搜索服務(wù),可以在不影響搜索服務(wù)正常運(yùn)行的情況下,實現(xiàn)數(shù)據(jù)的更新,該過程不僅能夠提高更新的實時性, 且提供了更加靈活的更新方式。
在本發(fā)明提供的另一實施例中,所述離線模塊101還用于當(dāng)檢測到所述用戶的第二數(shù)據(jù)文件時,在對所述第一數(shù)據(jù)文件的加載完成后,處理所述第二數(shù)據(jù)文件,并將處理后的第二數(shù)據(jù)文件與所述新版本的搜索服務(wù)數(shù)據(jù)進(jìn)行整合,所述第二數(shù)據(jù)文件的數(shù)據(jù)類型為批量增量數(shù)據(jù)。
該實施例提供的數(shù)據(jù)更新系統(tǒng),不僅可以達(dá)到不影響搜索服務(wù)正常運(yùn)行的目的,還可以保證在全量更新的同時,一旦發(fā)生增量批量更新,也可以在全量更新結(jié)束時,繼續(xù)進(jìn)行增量更新,保證了更新數(shù)據(jù)的先后順序。
在本發(fā)明提供的另一實施例中,所述離線模塊101還用于為所述第一數(shù)據(jù)文件中的多個文檔添加第一時間戳,所述第一時間戳為0;所述離線模塊101還用于為所述第二數(shù)據(jù)文件中的多個文檔添加第二時間戳,所述第二時間戳為早于當(dāng)前時間的時間戳;
所述離線模塊101還用于確定所述第一數(shù)據(jù)文件和所述第二數(shù)據(jù)文件中的第一相同文檔,保留所述第一相同文檔中時間戳最大的文檔,刪除所述第一相同文檔中其他文檔。
通過上述實施例,由于全量數(shù)據(jù)中文檔的時間戳均為0,則如果增量數(shù)據(jù)中具有與全量數(shù)據(jù)相同的文檔,該文檔的時間戳肯定是大于0的,因此,即使全量更新和增量更新的數(shù)據(jù)中有重復(fù)文檔,也可以通過時間戳的特殊設(shè)置,刪除時間戳小的文檔,從而實現(xiàn)數(shù)據(jù)整合,避免數(shù)據(jù)冗余,也避免數(shù)據(jù)的錯刪等情況,可以保證最終提供搜索服務(wù)的數(shù)據(jù)均為最新數(shù)據(jù)。
需要說明的是,上述第一數(shù)據(jù)文件和第二數(shù)據(jù)文件對應(yīng)的數(shù)據(jù)均可以是由用戶上傳至為該用戶創(chuàng)建的云存儲離線目錄中,由該云存儲離線目錄以文件的形式進(jìn)行存儲。
另外,離線模塊101還可以對接收到的數(shù)據(jù)進(jìn)行完整性校驗,如md5校驗等,當(dāng)完整性校驗成功時,再進(jìn)行數(shù)據(jù)處理,以避免數(shù)據(jù)出錯。
在本發(fā)明提供的另一實施例中,所述離線模塊101還用于當(dāng)接收到所述用戶發(fā)送的實時數(shù)據(jù)流時,將所述實時數(shù)據(jù)流分別加載至所述新的存儲空間和原有存儲空間。
需要說明的是,上述實時數(shù)據(jù)流可以是由用戶上傳至http服務(wù)器中,并由該服務(wù)器分別推送至在線模塊和云存儲離線目錄中,以保證實時數(shù)據(jù)流一定會 存在于新的存儲空間,而由于該實時數(shù)據(jù)流也落地于云存儲離線目錄中,則還可以避免數(shù)據(jù)丟失等情況發(fā)生。
在本發(fā)明提供的另一實施例中,所述離線模塊101還用于為用戶發(fā)送的實時數(shù)據(jù)流中的文檔添加第三時間戳,所述第三時間戳用于指示當(dāng)前時間;
所述在線模塊102還用于根據(jù)所述新的存儲空間中多個文檔的時間戳和所述實時數(shù)據(jù)流中文檔的第三時間戳,確定所述新的存儲空間中和所述實時數(shù)據(jù)流中的第二相同文檔,保留所述第二相同文檔中時間戳最大的文檔,刪除所述第二相同文檔中其他文檔。
在該實施例中,如果需要同時加載全量數(shù)據(jù)、批量增量數(shù)據(jù)以及實時數(shù)據(jù)流中的實時文檔,則加載過程中,可以由在線模塊102進(jìn)行時間戳的判斷,以保留最新的文檔,在保證正常運(yùn)行的前提下,不僅提供了多種方式的靈活更新方法,且保證了數(shù)據(jù)的完整性。
在一種可能實現(xiàn)方式中,可以離線模塊101可以包括如圖2中的實時流服務(wù)器、云存儲離線目錄單元、文件流處理單元,而在線模塊102可以包括在線加載單元以及云存儲在線目錄單元。增量數(shù)據(jù)和全量數(shù)據(jù)可以由用戶上傳至云存儲離線目錄單元,由云存儲離線目錄單元寫入數(shù)據(jù)文件,并通過文件流處理單元對數(shù)據(jù)文件中所包含的文檔進(jìn)行數(shù)據(jù)整合和處理,并將處理結(jié)果發(fā)送至在線模塊的云存儲在線目錄單元,以提供搜索服務(wù),而實時流服務(wù)器則可以接收用戶通過實時數(shù)據(jù)流發(fā)送的增量文檔,并進(jìn)行數(shù)據(jù)處理,再將處理后的增量文檔分別推送至云存儲離線目錄單元以及在線加載單元,由在線加載單元進(jìn)行加載,從而實現(xiàn)實時更新。該實現(xiàn)方式僅是本發(fā)明的一種示例,并不對本發(fā)明在實際應(yīng)用時的具體硬件或功能劃分造成限制。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實施例,在此不再一一贅述。
圖3是本發(fā)明實施例提供的一種數(shù)據(jù)更新方法的流程圖。參見圖1和圖3,該圖3可以應(yīng)用于如圖1的系統(tǒng)架構(gòu),該方法具體包括:
301、當(dāng)檢測到用戶的第一數(shù)據(jù)文件,離線模塊101向在線模塊102申請新的存儲空間,所述第一數(shù)據(jù)文件的數(shù)據(jù)類型為全量數(shù)據(jù),該第一數(shù)據(jù)文件的多個文檔攜帶第一時間戳,該第一時間戳為0。
在離線模塊101接收到用戶上傳的全量數(shù)據(jù)時,在將該全量數(shù)據(jù)存儲為第一數(shù)據(jù)文件的過程中,可以為所述第一數(shù)據(jù)文件中的多個文檔添加第一時間戳,所述第一時間戳為0。
對于數(shù)據(jù)文件,可以根據(jù)其命名不同,確定該數(shù)據(jù)文件的數(shù)據(jù)類型。對于全量數(shù)據(jù)和批量增量數(shù)據(jù),可以命名為不同的文件名。例如,參見下表1,表1為不同數(shù)據(jù)類型的文件的命名格式。
表1
其中,全量數(shù)據(jù)索引文件是指根據(jù)全量數(shù)據(jù)生成的索引文件,該全量數(shù)據(jù)以全量數(shù)據(jù)文件(也即是本發(fā)明實施例提供的第一數(shù)據(jù)文件)的形式存儲于云存儲目錄中,而批量增量數(shù)據(jù)文件(也即是本發(fā)明實施例他工的第二數(shù)據(jù)文件)、增量數(shù)據(jù)刪除文件以及屬性增量更新文件均是對部分?jǐn)?shù)據(jù)進(jìn)行操作的文件,如,批量增量數(shù)據(jù)文件可以包括將要添加至全量數(shù)據(jù)中的多個文檔,而增量數(shù)據(jù)刪除文件可以包括將要從全量數(shù)據(jù)中刪除的多個文檔。屬性增量更新文件所包括的可以是多個用于描述文檔屬性的文檔,該屬性是指某一文檔的網(wǎng)絡(luò)互動參數(shù),如點贊數(shù)、評論數(shù)、下載數(shù)等等,該屬性可以用于對文檔的評分,從而使得在向應(yīng)用用戶推送搜索結(jié)果時,可以根據(jù)對文檔的評分高低進(jìn)行有選擇性的推送,以提高搜索結(jié)果的公信力和針對性。
302、在線模塊102分配新的存儲空間。
該分配新的存儲空間可以是指在該用戶的制定容量內(nèi)為該用戶分配新的存 儲空間,如,該用戶所制定的容量為500m,則從其空閑容量中分配新的存儲空間,每次所分配的存儲空間可以為固定值,也可以根據(jù)該第一數(shù)據(jù)文件的實際大小進(jìn)行分配,本發(fā)明實施例對此不做限定。
303、在線模塊102在所述新版本的搜索服務(wù)數(shù)據(jù)未加載完成之前,保持由舊版本的搜索服務(wù)數(shù)據(jù)的在線狀態(tài),以提供搜索服務(wù)。
該舊版本的搜索服務(wù)數(shù)據(jù)是指未進(jìn)行更新前的搜索服務(wù)數(shù)據(jù)。其中,搜索服務(wù)數(shù)據(jù)包括應(yīng)用服務(wù)商提供的多個文檔,還包括搜索平臺在對該多個文檔進(jìn)行數(shù)據(jù)處理時所生成的索引目錄,該索引目錄用于維護(hù)索引關(guān)鍵字與文檔之間的對應(yīng)關(guān)系,使得應(yīng)用用戶在搜索平臺上輸入某一個索引關(guān)鍵字,可以通過該索引目錄,得到對應(yīng)的搜索結(jié)果。
該步驟303是指在真正將第一數(shù)據(jù)文件加載完成之前,還繼續(xù)采用舊版本的搜索服務(wù)數(shù)據(jù)提供搜索服務(wù),使得應(yīng)用用戶仍能夠使用該搜索服務(wù),且對于應(yīng)用用戶來說,該數(shù)據(jù)更新過程完全在后臺進(jìn)行,對于應(yīng)用用戶不可見,不會影響該搜索服務(wù)的正常運(yùn)行。
304、離線模塊101對接收到的第一數(shù)據(jù)文件進(jìn)行處理,得到新版本的搜索服務(wù)數(shù)據(jù),并將新版本的搜索服務(wù)數(shù)據(jù)推送至所述在線模塊102進(jìn)行加載。
該處理過程即是對數(shù)據(jù)進(jìn)行整理以及為第一數(shù)據(jù)文件生成相應(yīng)索引目錄的過程,本發(fā)明實施例對此不做限定。
305、在線模塊102在接收到所述新版本的搜索服務(wù)數(shù)據(jù)時,在所述新的存儲空間中加載所述新版本的搜索服務(wù)數(shù)據(jù)。
該加載過程可以是指將新版的搜索服務(wù)數(shù)據(jù)的傳輸和存儲過程,本發(fā)明實施例對此不做具體限定。
306、當(dāng)離線模塊101檢測到所述用戶的第二數(shù)據(jù)文件時,在對所述第一數(shù)據(jù)文件的加載完成后,處理所述第二數(shù)據(jù)文件,并將處理后的第二數(shù)據(jù)文件與所述新版本的搜索服務(wù)數(shù)據(jù)進(jìn)行整合,所述第二數(shù)據(jù)文件的數(shù)據(jù)類型為批量增量數(shù)據(jù),第二數(shù)據(jù)文件中的多個文檔攜帶第二時間戳,所述第二時間戳為早于當(dāng)前時間的時間戳。
在所述離線模塊101接收到用戶上傳的批量增量數(shù)據(jù)時,在將該批量增量數(shù)據(jù)存儲為第二數(shù)據(jù)文件的過程中,可以為所述第二數(shù)據(jù)文件中的多個文檔添加第二時間戳,所述第二時間戳為早于當(dāng)前時間的時間戳。例如,該第二時間 戳可以為當(dāng)前時間減去1年。
在實際場景中,可以為用戶提供多種數(shù)據(jù)更新方式,如全量更新和增量更新,這兩種更新方式很可能并發(fā),因此,為了避免數(shù)據(jù)冗余或數(shù)據(jù)錯誤,需要按照一定順序進(jìn)行加載,先對全量數(shù)據(jù)進(jìn)行處理和加載,在加載完成后,再對全量數(shù)據(jù)處理過程中所接收到且未處理的增量數(shù)據(jù)進(jìn)行處理,也即是本發(fā)明實施例306的步驟。
將處理后的第二數(shù)據(jù)文件與所述新版本的搜索服務(wù)數(shù)據(jù)進(jìn)行整合的過程,可以根據(jù)數(shù)據(jù)文件中文檔的時間戳進(jìn)行,具體可以包括以下步驟:確定所述第一數(shù)據(jù)文件和所述第二數(shù)據(jù)文件中的第一相同文檔,保留所述第一相同文檔中時間戳最大的文檔,刪除所述第一相同文檔中其他文檔。其中,第一相同文檔是指文檔名相同的文檔,雖然第一數(shù)據(jù)文件中的某一文檔和第二數(shù)據(jù)文件中的某一文檔可能文檔名相同,但是很有可能文檔內(nèi)容發(fā)生了變化,因此為了保證應(yīng)用數(shù)據(jù)均為最新數(shù)據(jù),可以采用時間戳來確定最新數(shù)據(jù),并僅保留該確定的最新數(shù)據(jù),即可以保證數(shù)據(jù)的完整性,還可以保證數(shù)據(jù)的時新性,進(jìn)一步還避免了數(shù)據(jù)冗余。
例如,第一數(shù)據(jù)文件中的多個文檔包括:
文檔a(0);文檔b(0);文檔c(0);文檔d(0);
第二數(shù)據(jù)文件中的多個文檔包括:
文檔b(t1);文檔e(t1);t1=當(dāng)前時間減去1年
其中,()中的數(shù)值為時間戳;
由于t1大于0,因此,對于第一相同文檔中的文檔b(0)和文檔b(t1),刪除文檔b(0),保留文檔b(t1)。
307、在線模塊102在所述新版本的搜索服務(wù)數(shù)據(jù)加載完成時,將所述舊版本的搜索服務(wù)數(shù)據(jù)下線,并啟動所述新版本的搜索服務(wù)數(shù)據(jù),以提供所述搜索服務(wù)。
如果僅檢測到第一數(shù)據(jù)文件,則在第一數(shù)據(jù)文件對應(yīng)的新版本加載完成后,即可以將舊版本下線,并啟動新版本來提供搜索服務(wù),實現(xiàn)了在正常運(yùn)行的前提下的數(shù)據(jù)更新,而如果同時并發(fā)了兩種更新方式,即全量更新和增量更新,則可以在全量更新加載完成時,再進(jìn)行增量更新的處理和加載,待增量更新也加載完成后,再啟動由全量更新和增量更新對應(yīng)的新版本,以提供所述搜索服 務(wù)。
308、當(dāng)離線模塊101接收到所述用戶發(fā)送的實時數(shù)據(jù)流時,將所述實時數(shù)據(jù)流分別加載至所述新的存儲空間和原有存儲空間。
這種分別加載的方式可以使得新的存儲空間中獲取到最新數(shù)據(jù),雖然實時數(shù)據(jù)流可能會在全量更新或增量更新的過程中灌入,但是,可以通過時間戳的方式保證數(shù)據(jù)的時新性,該實時數(shù)據(jù)流中的文檔可以添加第三時間戳,所述第三時間戳用于指示當(dāng)前時間,使得在后續(xù)數(shù)據(jù)整合過程中,可以保留時間戳最大的文檔,保證了時間上的先后順序。
309、根據(jù)所述新的存儲空間中多個文檔的時間戳和所述實時數(shù)據(jù)流中文檔的第三時間戳,確定所述新的存儲空間中和所述實時數(shù)據(jù)流中的第二相同文檔,保留所述第二相同文檔中時間戳最大的文檔,刪除所述第二相同文檔中其他文檔。
又例如,第一數(shù)據(jù)文件中的多個文檔包括:
文檔a(0);文檔b(0);文檔c(0);文檔d(0);
第二數(shù)據(jù)文件中的多個文檔包括:
文檔b(t1);文檔e(t1);t1=當(dāng)前時間減去1年
實時數(shù)據(jù)流中的多個文檔包括:
文檔b(t2);文檔f(t2),t2=當(dāng)前時間
其中,()中的數(shù)值為時間戳;
由于t2大于t1和0,因此,對于第二相同文檔中的文檔b(0)、文檔b(t1)和文檔b(t2),刪除文檔b(0)、文檔b(t1),保留文檔b(t2)。
通過在數(shù)據(jù)更新過程中,一邊進(jìn)行新的全量數(shù)據(jù)的處理,一邊采用原有全量數(shù)據(jù)來提供搜索服務(wù),可以在不影響搜索服務(wù)正常運(yùn)行的情況下,實現(xiàn)數(shù)據(jù)的更新,該過程不僅能夠提高更新的實時性,且提供了更加靈活的更新方式。該實施例提供的系統(tǒng)和方法,提供了一套通用的流程支撐用戶復(fù)雜的使用場景,提高了搜索平臺的業(yè)務(wù)接入能力,同時也縮減了運(yùn)維的人力成本。由于可以靈活的采用不同的方式進(jìn)行推送數(shù)據(jù),也大大提高了用戶的體驗。
圖4是根據(jù)一示例性實施例示出的一種服務(wù)器400的框圖。參照圖4,服務(wù)器400包括處理組件422,其進(jìn)一步包括一個或多個處理器,以及由存儲器432 所代表的存儲器資源,用于存儲可由處理部件422的執(zhí)行的指令,例如應(yīng)用程序。存儲器432中存儲的應(yīng)用程序可以包括一個或一個以上的每一個對應(yīng)于一組指令的模塊。此外,處理組件422被配置為執(zhí)行指令,以執(zhí)行上述數(shù)據(jù)更新方法。
服務(wù)器400還可以包括一個電源組件426被配置為執(zhí)行服務(wù)器400的電源管理,一個有線或無線網(wǎng)絡(luò)接口450被配置為將服務(wù)器400連接到網(wǎng)絡(luò),和一個輸入輸出(i/o)接口458。服務(wù)器400可以操作基于存儲在存儲器432的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。