專利名稱:復(fù)合索引結(jié)構(gòu)以及基于該復(fù)合索引結(jié)構(gòu)的搜索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及搜索領(lǐng)域,尤其涉及一種復(fù)合索引結(jié)構(gòu)以及基于該復(fù)合索引結(jié)構(gòu)的搜索方法。
背景技術(shù):
在搜索引擎內(nèi)部,每一條索引的文檔均按索引順序遞增分配一個(gè)數(shù)字編號(hào),在搜索的過(guò)程當(dāng)中,均是以此編號(hào)來(lái)標(biāo)識(shí)一篇文檔,我們稱之為文檔編號(hào),每一篇文檔由多個(gè)字段組成,我們稱之為域。查詢的基本單元為對(duì)域的查詢,我們稱之為域查詢,每個(gè)域查詢均
有一個(gè)對(duì)應(yīng)的文檔編號(hào)集合,而一次檢索一般由多個(gè)域查詢組合而成,則最終的檢索結(jié)果是由多個(gè)域查詢對(duì)應(yīng)的文檔編號(hào)集合求交而成的集合。眾所周知,搜索引擎技術(shù)是伴隨著海量文本信息的檢索而出現(xiàn)的,倒排索引是傳統(tǒng)搜索引擎最核心的存儲(chǔ)結(jié)構(gòu),這種類似于字典索引的存儲(chǔ)結(jié)構(gòu)極大的提升了在海量文本信息中進(jìn)行關(guān)鍵字檢索的性能,然而隨著互聯(lián)網(wǎng)的不斷發(fā)展,海量數(shù)值類型數(shù)據(jù)的檢索的場(chǎng)景越來(lái)越多,并且更新時(shí)效要求非常高,尤其是電子商務(wù)領(lǐng)域,而傳統(tǒng)的倒排索引結(jié)構(gòu)對(duì)于數(shù)值類型的一些特定檢索處理及更新性能非常低下,所以需要一種新的索引結(jié)構(gòu)來(lái)滿足這種新的應(yīng)用場(chǎng)景。
發(fā)明內(nèi)容
本發(fā)明的目的之一在于提供一種復(fù)合索引結(jié)構(gòu)。為實(shí)現(xiàn)上述目的,所述復(fù)合索引結(jié)構(gòu)包括倒排索引結(jié)構(gòu)和正向存儲(chǔ)結(jié)構(gòu);其中,文本類型域依照所述倒排索引結(jié)構(gòu)寫入倒排索引域內(nèi);數(shù)值類型域依照所述正向存儲(chǔ)結(jié)構(gòu)寫入正向存儲(chǔ)域內(nèi),所述正向存儲(chǔ)結(jié)構(gòu)為數(shù)組,將搜索引擎的文檔編號(hào)直接作為數(shù)組的下標(biāo)來(lái)存儲(chǔ)數(shù)值類型的域。本發(fā)明的另一個(gè)目的在于提供基于所述復(fù)合索引結(jié)構(gòu)的搜索方法,其中,索引過(guò)程為,將文本類型域?qū)懭胂鄳?yīng)的倒排索引域內(nèi);將數(shù)值類型域?qū)懭胂鄳?yīng)的正向存儲(chǔ)域。優(yōu)選的是,復(fù)合索引結(jié)構(gòu)的搜索方法中的搜索過(guò)程為,當(dāng)搜索條件只包含文本類型域時(shí),分別檢索各個(gè)相應(yīng)的文本類型域的倒排索引域,將得到各個(gè)文檔編號(hào)集合求交,得到最終的結(jié)果集合;當(dāng)搜索條件僅包含數(shù)值類型域時(shí),從第一個(gè)數(shù)組下標(biāo)開(kāi)始,針對(duì)數(shù)值類型域進(jìn)行過(guò)濾檢索,直至最后一個(gè)數(shù)組下標(biāo);當(dāng)搜索條件即包含文本類型域又包括數(shù)值類型域時(shí),先檢索文本類型域,得到一個(gè)文檔編號(hào)集合,并在此集合內(nèi)對(duì)每個(gè)編號(hào)進(jìn)行所有數(shù)值類型域的過(guò)濾,得到最終的過(guò)濾結(jié)果集合。本發(fā)明的有益效果在于,本發(fā)明結(jié)合數(shù)組的特點(diǎn),將搜索引擎的文檔編號(hào)直接作為數(shù)組的下標(biāo)來(lái)存儲(chǔ)數(shù)值類型的域,即新的索引結(jié)構(gòu)由原來(lái)的倒排索引結(jié)構(gòu)和數(shù)組這種正向存儲(chǔ)結(jié)構(gòu)共同組成,數(shù)值類型域的讀寫都將非常快速,文本類型域仍然采用倒排方式,因?yàn)槲谋绢愋偷挠蛑饕腔趩我挥蛑档臋z索,而對(duì)于數(shù)值類型的域,范圍檢索是一個(gè)非常常見(jiàn)的情形,并且更新頻率較文本類型字段也高很多,尤其是電子商務(wù)領(lǐng)域,像商品價(jià)格、庫(kù)存數(shù)量等都是變化較為頻繁的域?;谏鲜鰪?fù)合索引結(jié)構(gòu)構(gòu)建的搜索引擎系統(tǒng)將可以高效的實(shí)現(xiàn)數(shù)值類型的范圍過(guò)濾及實(shí)時(shí)更新。
圖I為基于復(fù)合索引結(jié)構(gòu)的搜索方法的搜索過(guò)程的流程圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步說(shuō)明。本發(fā)明所述的復(fù)合索引結(jié)構(gòu)包括倒排索引結(jié)構(gòu)和正向存儲(chǔ)結(jié)構(gòu);其中,文本類型域依照所述倒排索引結(jié)構(gòu)寫入倒排索引域內(nèi);數(shù)值類型域依照所述正向存儲(chǔ)結(jié)構(gòu)寫入正向存儲(chǔ)域內(nèi),所述正向存儲(chǔ)結(jié)構(gòu)為數(shù)組,將搜索引擎的文檔編號(hào)直接作為數(shù)組的下標(biāo)來(lái)存儲(chǔ)數(shù)值類型的域?;谒鰪?fù)合索引結(jié)構(gòu)的搜索方法中的索引過(guò)程為,將文本類型域?qū)懭胂鄳?yīng)的倒排索引域內(nèi);將數(shù)值類型域?qū)懭胂鄳?yīng)的正向存儲(chǔ)域。如圖I所示,所述復(fù)合索引結(jié)構(gòu)的搜索方法中的搜索過(guò)程為,當(dāng)搜索條件只包含文本類型域時(shí),分別檢索各個(gè)相應(yīng)的文本類型域的倒排索引域,將得到各個(gè)文檔編號(hào)集合求交,得到最終的結(jié)果集合Si ; 當(dāng)搜索條件僅包含數(shù)值類型域時(shí),從第一個(gè)數(shù)組下標(biāo)開(kāi)始,針對(duì)數(shù)值類型域進(jìn)行過(guò)濾檢索,直至最后一個(gè)數(shù)組下標(biāo)S2 ;當(dāng)搜索條件即包含文本類型域又包括數(shù)值類型域時(shí),先檢索文本類型域,得到一個(gè)文檔編號(hào)集合,并在此集合內(nèi)對(duì)每個(gè)編號(hào)進(jìn)行所有數(shù)值類型域的過(guò)濾,得到最終的過(guò)濾結(jié)果集合S3。下面以一個(gè)實(shí)施例對(duì)比僅使用倒排索引結(jié)構(gòu)與使用復(fù)合索引結(jié)構(gòu)的搜索過(guò)程。首先定義一個(gè)文檔樣例集合,如表I所示表I
文檔編號(hào)品牌域價(jià)格域
~希爾頓300
—IWW.Ioo
S 100
4如家500
5希爾頓100~6 100
權(quán)利要求
1.一種復(fù)合索引結(jié)構(gòu),其特征在于所述復(fù)合索引結(jié)構(gòu)包括倒排索引結(jié)構(gòu)和正向存儲(chǔ)結(jié)構(gòu);其中, 文本類型域依照所述倒排索引結(jié)構(gòu)寫入倒排索引域內(nèi); 數(shù)值類型域依照所述正向存儲(chǔ)結(jié)構(gòu)寫入正向存儲(chǔ)域內(nèi),所述正向存儲(chǔ)結(jié)構(gòu)為數(shù)組,將搜索引擎的文檔編號(hào)直接作為數(shù)組的下標(biāo)來(lái)存儲(chǔ)數(shù)值類型的域。
2.基于如權(quán)利要求I所述的復(fù)合索引結(jié)構(gòu)的搜索方法,其特征在于索引過(guò)程為,將文本類型域?qū)懭胂鄳?yīng)的倒排索引域內(nèi);將數(shù)值類型域?qū)懭胂鄳?yīng)的正向存儲(chǔ)域。
3.根據(jù)權(quán)利要求2所述的復(fù)合索引結(jié)構(gòu)的搜索方法,其特征在于搜索過(guò)程為, 當(dāng)搜索條件只包含文本類型域時(shí),分別檢索各個(gè)相應(yīng)的文本類型域的倒排索引域,將得到各個(gè)文檔編號(hào)集合求交,得到最終的結(jié)果集合; 當(dāng)搜索條件僅包含數(shù)值類型域時(shí),從第一個(gè)數(shù)組下標(biāo)開(kāi)始,針對(duì)數(shù)值類型域進(jìn)行過(guò)濾檢索,直至最后一個(gè)數(shù)組下標(biāo); 當(dāng)搜索條件即包含文本類型域又包括數(shù)值類型域時(shí),先檢索文本類型域,得到一個(gè)文檔編號(hào)集合,并在此集合內(nèi)對(duì)每個(gè)編號(hào)進(jìn)行所有數(shù)值類型域的過(guò)濾,得到最終的過(guò)濾結(jié)果集合
全文摘要
本發(fā)明公開(kāi)了一種復(fù)合索引結(jié)構(gòu)及基于該結(jié)構(gòu)的搜索方法,該結(jié)構(gòu)包括倒排索引結(jié)構(gòu)和正向存儲(chǔ)結(jié)構(gòu)文本類型域依照倒排索引結(jié)構(gòu)寫入倒排索引域內(nèi);數(shù)值類型域依照正向存儲(chǔ)結(jié)構(gòu)寫入正向存儲(chǔ)域內(nèi),正向存儲(chǔ)結(jié)構(gòu)為數(shù)組,將搜索引擎的文檔編號(hào)作為數(shù)組的下標(biāo)存儲(chǔ)數(shù)值類型的域。搜索過(guò)程當(dāng)搜索條件為文本類型域時(shí),分別檢索各文本類型域的倒排索引域,將得到各文檔編號(hào)集合求交,得到最終的結(jié)果集合;當(dāng)搜索條件這數(shù)值類型域時(shí),從第一個(gè)數(shù)組下標(biāo)開(kāi)始,針對(duì)數(shù)值類型域過(guò)濾檢索,直至最后一個(gè)數(shù)組下標(biāo);當(dāng)搜索條件包含兩者時(shí),先檢索文本類型域,得到一個(gè)文檔編號(hào)集合后,并在此集合內(nèi)對(duì)每個(gè)編號(hào)進(jìn)行所有數(shù)值類型域的過(guò)濾,得到最終的過(guò)濾結(jié)果集合。
文檔編號(hào)G06F17/30GK102750393SQ20121024343
公開(kāi)日2012年10月24日 申請(qǐng)日期2012年7月13日 優(yōu)先權(quán)日2012年7月13日
發(fā)明者傅志忠, 李耀 申請(qǐng)人:攜程計(jì)算機(jī)技術(shù)(上海)有限公司