專利名稱:搜索系統(tǒng)索引切換的方法及搜索系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)搜索服務(wù)技術(shù),尤其涉及一種搜索系統(tǒng)索引切換的方法及搜索系統(tǒng)。
背景技術(shù):
目前的網(wǎng)絡(luò)搜索服務(wù)技術(shù)已經(jīng)應(yīng)用在許多方面,例如應(yīng)用在電子商務(wù)的商品全文檢索系統(tǒng)中。圖1為現(xiàn)有的一種搜索系統(tǒng)的結(jié)構(gòu)示意圖。參見圖1,該搜索系統(tǒng)包括索引服務(wù)器、搜索服務(wù)器和中轉(zhuǎn)服務(wù)器。
其中索引服務(wù)器中包括搜索引擎的索引信息生成單元,用于生成用來進(jìn)行搜索服務(wù)的索引信息,即索引、內(nèi)存索引表和屬性過濾表,并將這些數(shù)據(jù)提供給搜索服務(wù)器。其中的索引是指為一個(gè)特定的應(yīng)用程序提供的用于文檔檢索的所有相關(guān)數(shù)據(jù),其中的文檔為索引服務(wù)器用來進(jìn)行索引的原始數(shù)據(jù);屬性過濾表是指以文檔標(biāo)識(ID)排序、且其中的每一條記錄表示對應(yīng)文檔ID的商品的可過濾屬性的表,可過濾屬性可以為商品的價(jià)格、出廠日期等;內(nèi)存索引表是指商品的唯一ID到商品當(dāng)前的文檔ID的對應(yīng)關(guān)系表。
搜索服務(wù)器中包括搜索引擎,具有全文檢索、結(jié)果過濾、記錄即時(shí)刪除以及索引切換的功能,主要用于根據(jù)索引服務(wù)器生成的并傳輸來的索引信息進(jìn)行搜索服務(wù)。
中轉(zhuǎn)服務(wù)器主要為索引服務(wù)器提供應(yīng)用相關(guān)的數(shù)據(jù)源,并將前端的搜索請求命令轉(zhuǎn)發(fā)給搜索服務(wù)器。
由于網(wǎng)絡(luò)中的數(shù)據(jù)源是不斷更新變化的,因此索引服務(wù)器需要及時(shí)地根據(jù)數(shù)據(jù)源生成新的索引信息,并通知搜索服務(wù)器進(jìn)行索引切換。所謂索引切換是指搜索服務(wù)器從索引服務(wù)器中獲取最新的索引信息索引、內(nèi)存索引表和屬性過濾表,并以此更新自身中原有的索引信息,以更新后的索引信息進(jìn)行搜索服務(wù)。
在現(xiàn)有搜索服務(wù)器的索引切換技術(shù)中,需要同時(shí)切換索引數(shù)據(jù)、屬性過濾表和內(nèi)存索引表,為了保證在索引切換的過程中搜索服務(wù)器的索引與屬性過濾表和內(nèi)存索引表中的數(shù)據(jù)保持一致,在更新索引、屬性過濾表和內(nèi)存索引表時(shí),需要對索引信息進(jìn)行加鎖保護(hù),以防止搜索服務(wù)器搜索到和當(dāng)前屬性過濾表以及內(nèi)存索引表不一致的數(shù)據(jù),但是在加鎖保護(hù)時(shí)搜索服務(wù)器無法訪問索引信息,因此在索引切換時(shí)無法進(jìn)行搜索服務(wù)。這種技術(shù)方案在索引信息很大的情況下,索引切換的時(shí)間會(huì)很長,這樣嚴(yán)重影響了搜索服務(wù)器的工作,導(dǎo)致搜索服務(wù)器在長時(shí)間內(nèi)無法進(jìn)行搜索服務(wù),降低了搜索服務(wù)的質(zhì)量。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種搜索系統(tǒng)索引切換的方法,以降低索引切換對搜索服務(wù)的影響,提高搜索服務(wù)的質(zhì)量。
本發(fā)明的另一目的為提供一種搜索系統(tǒng),以降低索引切換對搜索服務(wù)的影響,提高搜索服務(wù)的質(zhì)量。
為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明的主要技術(shù)方案為一種搜索系統(tǒng)索引切換的方法,在搜索服務(wù)器中預(yù)設(shè)用于存儲(chǔ)索引信息的主目錄和備用目錄以及加載索引信息的主內(nèi)存空間和備用內(nèi)存空間,搜索服務(wù)器根據(jù)主目錄中和主內(nèi)存空間中的索引信息進(jìn)行搜索操作;在進(jìn)行索引切換時(shí)將索引服務(wù)器生成的新索引信息拷貝到備用目錄中并加載到備用內(nèi)存空間中,之后將主目錄和備用目錄相互切換,并將主內(nèi)存空間和備用內(nèi)存空間相互切換。
優(yōu)選地,所述將主目錄和備用目錄相互切換的具體方法為將主目錄的名稱和備用目錄的名稱相互交換。
優(yōu)選地,所述索引信息包括索引、屬性過濾表、和內(nèi)存索引表。
優(yōu)選地,該方法進(jìn)一步包括根據(jù)索引信息的大小來設(shè)定合適的索引切換時(shí)間。
優(yōu)選地,所述在內(nèi)存中加載的索引信息為屬性過濾表和內(nèi)存索引表;所述將主內(nèi)存空間和備用內(nèi)存空間相互切換的具體方法為交換主內(nèi)存空間和備用內(nèi)存空間中屬性過濾表的內(nèi)存首地址,交換主內(nèi)存空間和備用內(nèi)存空間中內(nèi)存索引表的內(nèi)存首地址。
優(yōu)選地,對所述主目錄和備用目錄相互切換、主內(nèi)存空間和備用內(nèi)存空間相互切換的操作與所述搜索操作加互斥鎖保護(hù)。
優(yōu)選地,所述的搜索系統(tǒng)為電子商務(wù)的商品全文檢索系統(tǒng)。
優(yōu)選地,所述的索引服務(wù)器生成新索引信息的具體方法為(1)為一篇文檔生成倒排索引數(shù)據(jù);(2)進(jìn)行內(nèi)存索引合并,合并內(nèi)存中的一批文檔,生成一個(gè)更大的數(shù)據(jù)段,將該段存于磁盤;(3)索引優(yōu)化,重新生成新的優(yōu)化后的索引;(5)生成商品的屬性過濾表;(6)生成商品的內(nèi)存索引表。
一種搜索系統(tǒng),包括索引服務(wù)器、中轉(zhuǎn)服務(wù)器和搜索服務(wù)器,該搜索服務(wù)器中設(shè)置有用于存放索引信息的主目錄和備用目錄,以及主內(nèi)存空間和備用內(nèi)存空間,搜索服務(wù)器根據(jù)主目錄和主備用內(nèi)存空間中的索引信息進(jìn)行搜索操作;搜索服務(wù)器中還包括索引切換單元,用于從索引服務(wù)器中拷貝新生成的索引信息到備用目錄,并加載到備用內(nèi)存空間,然后切換主目錄和備用目錄,同時(shí)切換主內(nèi)存空間和備用內(nèi)存空間。
優(yōu)選的,所述索引切換單元進(jìn)一步包括互斥鎖單元,用于在切換主目錄和備用目錄以及主內(nèi)存空間與備用內(nèi)存空間時(shí),對切換操作和搜索引擎的搜索操作加互斥鎖。
優(yōu)選的,所述索引服務(wù)器進(jìn)一步包括記錄更新、優(yōu)化索引數(shù)據(jù)、屬性過濾表和內(nèi)存索引表生成以及數(shù)據(jù)拷貝的功能單元。
本發(fā)明將當(dāng)前的索引數(shù)據(jù)、屬性過濾表、內(nèi)存索引表放在主目錄下,當(dāng)前的屬性過濾表、內(nèi)存索引表加載在主內(nèi)存空間中;切換過來的新的索引數(shù)據(jù)、屬性過濾表、內(nèi)存索引表放在備用目錄下,切換過來的新的屬性過濾表、內(nèi)存索引表加載在備用內(nèi)存空間中。搜索系統(tǒng)根據(jù)主目錄和主內(nèi)存空間中的數(shù)據(jù)進(jìn)行搜索服務(wù)。當(dāng)需要切換時(shí),只交換兩個(gè)目錄的名字就可以實(shí)現(xiàn)切換,在切換的所有準(zhǔn)備工作完成之后,系統(tǒng)只需要交換索引的屬性過濾表和內(nèi)存索引表的首地址即可,并只需在兩塊內(nèi)存的首地址交換時(shí)進(jìn)行加鎖保護(hù),而這個(gè)加鎖保護(hù)的時(shí)間非常短,基本不會(huì)影響搜索服務(wù),因此本發(fā)明可以大大降低索引切換對搜索服務(wù)系統(tǒng)的影響。
另外,本發(fā)明的搜索系統(tǒng)可以根據(jù)索引數(shù)據(jù)的大小來設(shè)定合適的索引切換的時(shí)間,保證了搜索系統(tǒng)在不影響正常服務(wù)的情況下,它的索引信息又能及時(shí)更新,并且優(yōu)化后的索引可以在一定程度上提高搜索服務(wù)的性能,節(jié)省搜索服務(wù)器的磁盤空間。
圖1為現(xiàn)有的一種搜索系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明所述方法的一種實(shí)施例的流程圖;圖3為本發(fā)明所述搜索系統(tǒng)的一種實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面通過具體實(shí)施例和附圖對本發(fā)明做進(jìn)一步詳細(xì)說明。
本文以電子商務(wù)的商品全文檢索系統(tǒng)所應(yīng)用的搜索系統(tǒng)為例進(jìn)行說明。
本文的實(shí)施例中在搜索服務(wù)器建立兩個(gè)目錄index目錄和switch目錄;index目錄為主目錄,switch目錄為備用目錄。并建立兩個(gè)內(nèi)存空間主內(nèi)存空間和備用內(nèi)存空間。搜索引擎當(dāng)前使用的索引信息索引、屬性過濾表、內(nèi)存索引表放在index目錄下,當(dāng)前使用的屬性過濾表和內(nèi)存索引表加載在主內(nèi)存空間中。索引切換過來的新的索引、屬性過濾表、內(nèi)存索引表放在switch目錄下,新的屬性過濾表和內(nèi)存索引表加載在備用內(nèi)存空間中。搜索服務(wù)器總是根據(jù)index目錄下和主內(nèi)存空間中的索引信息進(jìn)行搜索操作。
圖2為本發(fā)明所述方法的一種實(shí)施例的流程圖。參見圖2,該流程包括步驟21、索引服務(wù)器根據(jù)數(shù)據(jù)源生成新的索引信息。
本步驟具體包括(1)為一篇文檔生成倒排索引數(shù)據(jù),倒排索引可以記錄關(guān)鍵詞相關(guān)的排序信息,如關(guān)鍵字在某個(gè)文檔的權(quán)值,出現(xiàn)的位置等等,倒排是關(guān)鍵詞到文檔列表的映射。(2)進(jìn)行內(nèi)存索引合并,合并內(nèi)存中的一批文檔,生成一個(gè)更大的數(shù)據(jù)段,將該段存于磁盤。(3)索引優(yōu)化。在上面兩個(gè)步驟中,將文檔加入到索引后,執(zhí)行刪除操作時(shí),索引不會(huì)立即從索引文件中刪除,而是將刪除的文檔放在″刪除″的文件中。在索引優(yōu)化時(shí),系統(tǒng)會(huì)重新生成新的優(yōu)化后的索引文件(即索引)。(5)生成商品的屬性過濾表,保存著所有商品的非索引的選擇性屬性信息,這些屬性在全文檢索中用于對商品的檢索結(jié)果進(jìn)行過濾。(6)生成商品的內(nèi)存索引表。生成商品的外部唯一標(biāo)識ID到搜索系統(tǒng)當(dāng)前的文檔ID的Hash Table映射表,當(dāng)搜索服務(wù)器收到是中轉(zhuǎn)服務(wù)器的記錄刪除命令時(shí),系統(tǒng)通過查找該表來快速定位商品記錄當(dāng)前的文檔ID。
步驟22、索引服務(wù)器向搜索服務(wù)器發(fā)送索引切換命令。
步驟23、搜索服務(wù)器收到索引服務(wù)器的索引切換命令,從索引服務(wù)器中拷貝優(yōu)化后的索引信息(包括索引、屬性過濾表、內(nèi)存索引表)到Switch目錄下,并將其中新生成的屬性過濾表和內(nèi)存索引表裝載到備用內(nèi)存空間中。
由于執(zhí)行步驟23所占用的時(shí)間較長,因此本發(fā)明在搜索服務(wù)器執(zhí)行步驟23的同時(shí),搜索服務(wù)器仍然利用index目錄中的索引信息以及在主內(nèi)存空間中已經(jīng)裝載的舊的屬性過濾表和內(nèi)存索引表進(jìn)行搜索操作,使得用戶仍然可以正常搜索舊的索引信息。
步驟24、搜索服務(wù)器將switch目錄和index目錄相互切換,具體為交換switch目錄和index目錄的目錄名;然后將主內(nèi)存空間和備用內(nèi)存空間進(jìn)行切換,具體為交換備用內(nèi)存空間中新屬性過濾表和主內(nèi)存空間中舊屬性過濾表的內(nèi)存首地址,交換備用內(nèi)存空間中新內(nèi)存索引表和主內(nèi)存空間中舊內(nèi)存索引表的內(nèi)存首地址。經(jīng)過主備目錄和主備內(nèi)存空間的切換,原來的備用目錄和備用內(nèi)存空間變?yōu)楫?dāng)前的主目錄和主內(nèi)存空間,而搜索服務(wù)器始終按照當(dāng)前的主目錄和主內(nèi)存空間進(jìn)行搜索操作,所以可以使搜索操作總是以新的索引信息為基礎(chǔ)。
為了保持當(dāng)前索引和當(dāng)前屬性過濾表數(shù)據(jù)的一致性,上述主備目錄和主備內(nèi)存空間的兩個(gè)切換操作需與搜索服務(wù)器的搜索操作加互斥鎖保護(hù)。由于本步驟中所述的兩個(gè)操作占用CPU很少的時(shí)間,因此加互斥鎖保護(hù)的時(shí)間也很短,所以較現(xiàn)有技術(shù)來說,本發(fā)明基本上對搜索操作沒有什么影響。
在實(shí)際應(yīng)用中,由于索引服務(wù)器會(huì)不斷地生成新的索引信息,因此上述步驟21到步驟24的索引切換是循環(huán)執(zhí)行的。本發(fā)明的搜索系統(tǒng)可以根據(jù)索引信息的大小來設(shè)定合適的索引切換的時(shí)間,保證了搜索系統(tǒng)在不影響正常服務(wù)的情況下,它的索引信息又能及時(shí)更新,并且在步驟21中對索引進(jìn)行優(yōu)化,優(yōu)化后的索引可以在一定程度上提高搜索服務(wù)的性能,節(jié)省搜索服務(wù)器的磁盤空間。
圖3為本發(fā)明所述搜索系統(tǒng)的一種實(shí)施例的結(jié)構(gòu)示意圖。參見圖3,該搜索系統(tǒng)包括索引服務(wù)器35,具有記錄更新、優(yōu)化索引數(shù)據(jù)、屬性過濾表和內(nèi)存索引表生成以及數(shù)據(jù)拷貝的功能單元。其中包括索引信息生成單元36,用于生成新的索引信息,并通知搜索服務(wù)器進(jìn)行索引切換。
中轉(zhuǎn)服務(wù)器37,主要為索引服務(wù)器提供應(yīng)用相關(guān)的數(shù)據(jù)源,并將前端的搜索請求命令轉(zhuǎn)發(fā)給搜索服務(wù)器,該中轉(zhuǎn)服務(wù)器37與現(xiàn)有技術(shù)的中轉(zhuǎn)服務(wù)器相同,此處不再贅述。
搜索服務(wù)器38,主要用于根據(jù)索引服務(wù)器生成的并傳輸來的索引信息進(jìn)行搜索服務(wù)。其中包括
搜索引擎30,具有全文檢索、結(jié)果過濾、記錄即時(shí)刪除以及索引切換的功能。
用于存放索引信息的主目錄31和備用目錄32,以及主內(nèi)存空間33和備用內(nèi)存空間34。搜索引擎30根據(jù)主目錄31和主內(nèi)存空間33中的索引信息進(jìn)行搜索操作。主目錄31和備用目錄32中用于存儲(chǔ)索引信息索引301、屬性過濾表302和內(nèi)存索引表303;主內(nèi)存空間33和備用內(nèi)存空間34用于加載屬性過濾表302和內(nèi)存索引表303。搜索引擎30根據(jù)主目錄31和主備用內(nèi)存空間33中的索引信息進(jìn)行搜索操作。
搜索引擎30中進(jìn)一步包括索引切換單元35,用于從索引服務(wù)器中拷貝新的索引信息到備用目錄32中,并加載屬性過濾表302和內(nèi)存索引表303到備用內(nèi)存空間34;然后切換主目錄和備用目錄,同時(shí)切換主內(nèi)存空間和備用內(nèi)存空間即交換主目錄和備用目錄的目錄名,以及分別交換主、備用內(nèi)存空間中屬性過濾表的首地址和內(nèi)存索引表的首地址。
所述索引切換單元進(jìn)一步包括互斥鎖單元304,用于在切換主目錄31和備用目錄32以及主內(nèi)存空間33與備用內(nèi)存空間34時(shí),對切換操作和搜索引擎30的搜索操作加互斥鎖。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種搜索系統(tǒng)索引切換的方法,其特征在于,在搜索服務(wù)器中預(yù)設(shè)用于存儲(chǔ)索引信息的主目錄和備用目錄以及加載索引信息的主內(nèi)存空間和備用內(nèi)存空間,搜索服務(wù)器根據(jù)主目錄中和主內(nèi)存空間中的索引信息進(jìn)行搜索操作;在進(jìn)行索引切換時(shí)將索引服務(wù)器生成的新索引信息拷貝到備用目錄中并加載到備用內(nèi)存空間中,之后將主目錄和備用目錄相互切換,并將主內(nèi)存空間和備用內(nèi)存空間相互切換。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將主目錄和備用目錄相互切換的具體方法為將主目錄的名稱和備用目錄的名稱相互交換。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述索引信息包括索引、屬性過濾表、和內(nèi)存索引表。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,該方法進(jìn)一步包括根據(jù)索引信息的大小來設(shè)定合適的索引切換時(shí)間。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在內(nèi)存中加載的索引信息為屬性過濾表和內(nèi)存索引表;所述將主內(nèi)存空間和備用內(nèi)存空間相互切換的具體方法為交換主內(nèi)存空間和備用內(nèi)存空間中屬性過濾表的內(nèi)存首地址,交換主內(nèi)存空間和備用內(nèi)存空間中內(nèi)存索引表的內(nèi)存首地址。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,對所述主目錄和備用目錄相互切換、主內(nèi)存空間和備用內(nèi)存空間相互切換的操作與所述搜索操作加互斥鎖保護(hù)。
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的方法,其特征在于,所述的搜索系統(tǒng)為電子商務(wù)的商品全文檢索系統(tǒng)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述的索引服務(wù)器生成新索引信息的具體方法為(1)為一篇文檔生成倒排索引數(shù)據(jù);(2)進(jìn)行內(nèi)存索引合并,合并內(nèi)存中的一批文檔,生成一個(gè)更大的數(shù)據(jù)段,將該段存于磁盤;(3)索引優(yōu)化,重新生成新的優(yōu)化后的索引;(5)生成商品的屬性過濾表;(6)生成商品的內(nèi)存索引表。
9.一種搜索系統(tǒng),包括索引服務(wù)器、中轉(zhuǎn)服務(wù)器和搜索服務(wù)器,其特征在于,該搜索服務(wù)器中設(shè)置有用于存放索引信息的主目錄和備用目錄,以及主內(nèi)存空間和備用內(nèi)存空間,搜索服務(wù)器根據(jù)主目錄和主備用內(nèi)存空間中的索引信息進(jìn)行搜索操作;搜索服務(wù)器中還包括索引切換單元,用于從索引服務(wù)器中拷貝新生成的索引信息到備用目錄,并加載到備用內(nèi)存空間,然后切換主目錄和備用目錄,同時(shí)切換主內(nèi)存空間和備用內(nèi)存空間。
10.根據(jù)權(quán)利要求9所述的搜索系統(tǒng),其特征在于,所述索引切換單元進(jìn)一步包括互斥鎖單元,用于在切換主目錄和備用目錄以及主內(nèi)存空間與備用內(nèi)存空間時(shí),對切換操作和搜索引擎的搜索操作加互斥鎖。
11.根據(jù)權(quán)利要求9所述的搜索系統(tǒng),其特征在于,所述索引服務(wù)器進(jìn)一步包括記錄更新、優(yōu)化索引數(shù)據(jù)、屬性過濾表和內(nèi)存索引表生成以及數(shù)據(jù)拷貝的功能單元。
全文摘要
本發(fā)明公開了一種搜索系統(tǒng)中索引切換的方法,在搜索服務(wù)器中預(yù)設(shè)用于存儲(chǔ)索引信息的主目錄和備用目錄以及加載索引信息的主內(nèi)存空間和備用內(nèi)存空間,搜索服務(wù)器根據(jù)主目錄中和主內(nèi)存空間中的索引信息進(jìn)行搜索操作;在進(jìn)行索引切換時(shí)將索引服務(wù)器生成的新索引信息拷貝到備用目錄中并加載到備用內(nèi)存空間中,之后將主目錄和備用目錄相互切換,并將主內(nèi)存空間和備用內(nèi)存空間相互切換。還公開了一種基于上述方法的搜索系統(tǒng),包括索引服務(wù)器、中轉(zhuǎn)服務(wù)器和搜索服務(wù)器。本發(fā)明可以降低索引切換對搜索服務(wù)的影響,提高搜索服務(wù)的質(zhì)量。
文檔編號G06F17/30GK1975717SQ200510105279
公開日2007年6月6日 申請日期2005年11月28日 優(yōu)先權(quán)日2005年11月28日
發(fā)明者陳厚道 申請人:騰訊科技(深圳)有限公司