索引切換和索引控制的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及索引切換和索引控制的方法及裝置。
【背景技術(shù)】
[0002] 目前絕大數(shù)搜索引擎是通過(guò)對(duì)文檔關(guān)鍵詞,或者數(shù)據(jù)庫(kù)字段內(nèi)容建立索引來(lái)完成 快速索引網(wǎng)頁(yè)內(nèi)容的技術(shù)。由于文檔或數(shù)據(jù)庫(kù)內(nèi)容的更新,索引的內(nèi)容也會(huì)被更新。但是 在開發(fā)相關(guān)搜索算法的過(guò)程中,索引更新容易出現(xiàn)損壞,一旦索引內(nèi)容出現(xiàn)損壞,重新建立 索引的耗時(shí)較長(zhǎng)。為保證搜索引擎服務(wù)連續(xù)性,提高用戶體驗(yàn),需要對(duì)索引內(nèi)容實(shí)時(shí)進(jìn)行人 工干預(yù)。
【發(fā)明內(nèi)容】
[0003] 為克服以上現(xiàn)有技術(shù)的缺陷,本發(fā)明提出了一種索引切換方法,包括:如果當(dāng)前索 引損壞,向控制服務(wù)器請(qǐng)求歷史索引;從控制服務(wù)器接收歷史索引;以及將當(dāng)前索引切換 為歷史索引。
[0004] 本發(fā)明還提出了一種索引控制方法,包括:從索引服務(wù)器接收其生成的索引,并將 索引保存在臨時(shí)中轉(zhuǎn)區(qū)中;將臨時(shí)中轉(zhuǎn)區(qū)中的索引發(fā)送給索引數(shù)據(jù)庫(kù),并在索引數(shù)據(jù)庫(kù)中 記錄與索引有關(guān)的信息;當(dāng)索引服務(wù)器當(dāng)前使用的索引損壞時(shí),從索引服務(wù)器接收歷史索 引請(qǐng)求;基于用戶選擇,從索引數(shù)據(jù)庫(kù)獲取歷史索引,并將歷史索引保存在臨時(shí)中轉(zhuǎn)區(qū)中; 以及向索引服務(wù)器發(fā)送歷史索引,以便索引服務(wù)器將損壞的索引切換為歷史索引。
[0005] 通過(guò)本發(fā)明提出的索引切換方法和索引控制方法,當(dāng)索引內(nèi)容損壞時(shí),能夠?qū)⒁?損壞的索引迅速切換為未損壞的歷史索引;并且,當(dāng)索引內(nèi)容完好時(shí),可定期或不定期地生 成并保存歷史索引,以備當(dāng)索引損壞時(shí)迅速提供可用備份?;谝陨?,本發(fā)明保證搜索服務(wù) 的連續(xù)性,提高用戶體驗(yàn)。
[0006] 本發(fā)明還提出了索引切換裝置和索引控制裝置。
【附圖說(shuō)明】
[0007] 圖1示出了能夠?qū)崿F(xiàn)本發(fā)明的搜索系統(tǒng)。
[0008] 圖2示出了根據(jù)本發(fā)明實(shí)施例的索引切換方法。
[0009] 圖3示出了根據(jù)本發(fā)明實(shí)施例的索引切換系統(tǒng)。
[0010] 圖4示出了根據(jù)本發(fā)明實(shí)施例的索引控制方法。
[0011] 圖5示出了根據(jù)本發(fā)明實(shí)施例的索引控制裝置。
【具體實(shí)施方式】
[0012] 以下對(duì)本發(fā)明的示例性實(shí)施例做出說(shuō)明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以有 助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示例性的。因此,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,可對(duì)本 文描述的實(shí)施例做出各種修改和改變,而不脫離本發(fā)明的范圍和精神。
[0013] 圖1示出了能夠?qū)崿F(xiàn)本發(fā)明的分布式搜索系統(tǒng)100,包括Web服務(wù)器110、索引數(shù) 據(jù)庫(kù)120、索引控制服務(wù)器130、索引服務(wù)器150-1至150-N、文檔或數(shù)據(jù)170、以及操作者 180。其中索引控制服務(wù)器130還包括臨時(shí)中轉(zhuǎn)區(qū)140,下文將對(duì)其描述。一般來(lái)說(shuō),搜索引 擎中使用倒排索引。
[0014] 索引數(shù)據(jù)庫(kù)120存儲(chǔ)作為備份的歷史索引數(shù)據(jù),及其版本號(hào),創(chuàng)建時(shí)間等記錄,并 且可以是單臺(tái)數(shù)據(jù)庫(kù)服務(wù)器,或者分布式存儲(chǔ)服務(wù)器。
[0015] 索引控制服務(wù)器130對(duì)本系統(tǒng)中的索引服務(wù)器存儲(chǔ)內(nèi)容進(jìn)行中轉(zhuǎn),同時(shí)執(zhí)行版本 控制,下發(fā)歷史索引文件到索引服務(wù)器。
[0016] 索引服務(wù)器150-1至150-N存儲(chǔ)在全文搜索下某個(gè)單詞在一個(gè)文檔或者一組文檔 中的存儲(chǔ)位置的映射服務(wù)器,為搜索引擎使用。
[0017] 圖1的搜索系統(tǒng)可進(jìn)行以下處理:
[0018] ①操作者通過(guò)Web服務(wù)器110在索引數(shù)據(jù)庫(kù)120中查詢歷史索引的版本號(hào),創(chuàng)建 時(shí)間等信息,選擇需要切換的索引版本。
[0019] ②操作者通過(guò)Web服務(wù)器110選擇需要切換的索引版本,發(fā)送指令給索引控制服 務(wù)器130,請(qǐng)求切換索引服務(wù)器150-1至150-N存儲(chǔ)內(nèi)容的版本為指定版本號(hào)。
[0020] ③索引控制服務(wù)器130收到索引切換請(qǐng)求后,依據(jù)請(qǐng)求切換的版本號(hào)從索引數(shù)據(jù) 庫(kù)120中獲取對(duì)應(yīng)的索引文件,保存在臨時(shí)中轉(zhuǎn)區(qū)140。
[0021] ④索引數(shù)據(jù)庫(kù)120從索引控制服務(wù)器130的臨時(shí)中轉(zhuǎn)區(qū)140中,抽取最新的索引 文件保存,并記錄版本號(hào),創(chuàng)建時(shí)間,MD5校驗(yàn)值,最后刪除臨時(shí)中轉(zhuǎn)區(qū)的文件。
[0022] ⑤索引控制服務(wù)器130將對(duì)應(yīng)的版本的索引文件,逐個(gè)推送到索引服務(wù)器150。同 時(shí)設(shè)置"停止"標(biāo)記位,禁止索引服務(wù)器150執(zhí)行程序⑦。
[0023] ⑥索引控制服務(wù)器130定時(shí)隨機(jī)從索引服務(wù)器150中獲取最新的索引文件存儲(chǔ), 保存于臨時(shí)中轉(zhuǎn)區(qū)140。
[0024] ⑦普通索引建立程序。
[0025] 在一個(gè)實(shí)施例中,操作者180可以在必要時(shí),通過(guò)Web服務(wù)器110發(fā)送命令給索引 控制服務(wù)器130以恢復(fù)正常的索引生成程序。索引控制服務(wù)器130逐個(gè)對(duì)索引服務(wù)器撤銷 "停止"標(biāo)記位,恢復(fù)程序⑦,并開始生成最新的索引。
[0026] 在一個(gè)實(shí)施例中,索引數(shù)據(jù)庫(kù)需要一張表存儲(chǔ)如下關(guān)鍵字段信息,具體如下:
[0028] 索引版本號(hào):記錄歷史索引的唯一序號(hào)。
[0029] 索引創(chuàng)建時(shí)間:歷史索引被創(chuàng)建后產(chǎn)生的時(shí)間戳。
[0030] MD5校驗(yàn)值:歷史索引文件MD5校驗(yàn)值,可用于檢驗(yàn)文件是否被破壞。
[0031] 索引文件所在IP :當(dāng)索引數(shù)據(jù)庫(kù)120為分布式存儲(chǔ)時(shí)使用。索引控制服務(wù)器130 可以向該IP地址請(qǐng)求傳送歷史索引文件。
[0032] 索引文件所在目錄:保存歷史索引文件的位置。
[0033] 結(jié)合圖1,圖2示出了根據(jù)本發(fā)明實(shí)施例的一種索引切換方法200。方法200適用 于在索引服務(wù)器150中執(zhí)行,包括:步驟201,如果當(dāng)前索引損壞,向索引控制服務(wù)器130請(qǐng) 求歷史索引;步驟202,從索引控制服務(wù)器130接收歷史索引;以及步驟203,將當(dāng)前索引切 換為歷史索引。
[0034] 在一個(gè)實(shí)施例中,在步驟202從索引控制服務(wù)器130接收歷史索引之前,還包括: 用戶從索引數(shù)據(jù)庫(kù)120中選擇歷史索引;索引控制服務(wù)器130從索引數(shù)據(jù)庫(kù)120獲取所選 擇的歷史索引,將其存儲(chǔ)在臨時(shí)中轉(zhuǎn)區(qū)140,然后向索引服務(wù)器150發(fā)送歷史索引。用戶可 根據(jù)實(shí)際情況選擇特定時(shí)間的歷史索引,例如,一天前、一小時(shí)前、甚至幾分鐘前的歷史索 引,等等。
[0035] 此外,在向索引服務(wù)器150發(fā)送歷史索引前,可對(duì)歷史索引進(jìn)行校驗(yàn),確保所發(fā)送 的歷史索引對(duì)索引服務(wù)器150而言可用。
[0036] 在一個(gè)實(shí)施例中,在步驟203,從索引控制服務(wù)器130接收歷史索引后,索引服務(wù) 器150設(shè)置"停止"標(biāo)識(shí)位,以禁止其生成最新的索引。這是因?yàn)樵诋?dāng)前索引已損壞的情形 中,繼續(xù)生成的索引很可能也已損壞,因此,應(yīng)當(dāng)禁止繼續(xù)生成新的索引,直至搜索系統(tǒng)修 復(fù)。
[0037] 在一個(gè)實(shí)施例中,所述當(dāng)前索引和歷史索引都是倒排索引。
[0038] 如圖3所示,本發(fā)明還提出了一種索引切換裝置300,包括請(qǐng)求模塊301、接收模塊 302和切換模塊303。這些模塊分別與上述步驟20U202和203相對(duì)應(yīng)。也就是說(shuō),請(qǐng)求模 塊301被配置為,如果當(dāng)前索引損壞,向索引控制服務(wù)器130請(qǐng)求歷史索引;接收模塊302 被配置為,從索引控制服務(wù)器130接收歷史索引;以及切換模塊被配置為,將當(dāng)前索引切換 為歷史索引。
[0039] 結(jié)合圖1,圖4示出了根據(jù)本發(fā)明實(shí)施例的一種索引控制方法400。方法400適用 于在索引控制服務(wù)器130中執(zhí)行,包括:步驟401,從索引服務(wù)器150接收其生成的索引,并 將索引保存在臨時(shí)中轉(zhuǎn)區(qū)140中;步驟402,將臨時(shí)中轉(zhuǎn)區(qū)140中的索引發(fā)送給索引數(shù)據(jù)庫(kù) 120,并在索引數(shù)據(jù)庫(kù)120中記錄與索引有關(guān)的信息;步驟403,判斷當(dāng)前索引是否損壞,如 未損壞,回到