專利名稱:用于索引和搜索數(shù)據(jù)庫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
所描述的技術(shù)通常涉及數(shù)據(jù)庫搜索,尤其涉及web數(shù)據(jù)庫搜索。
背景全球網(wǎng)(“web”)提供了大量可通過網(wǎng)頁訪問的數(shù)據(jù)。網(wǎng)頁可包含靜態(tài)內(nèi)容或動態(tài)內(nèi)容。靜態(tài)內(nèi)容通常指通過網(wǎng)頁的許多次訪問能保持一樣的信息。動態(tài)內(nèi)容通常指存儲在web數(shù)據(jù)庫中并響應(yīng)于搜索請求添加到網(wǎng)頁上的信息。動態(tài)內(nèi)容表示所謂的深web或隱藏的web。
許多搜索引擎服務(wù)允許用戶查找web的靜態(tài)內(nèi)容。在用戶提交了包括搜索項的搜索請求或查詢之后,搜索引擎服務(wù)識別與那些搜索項相關(guān)的網(wǎng)頁。這些網(wǎng)頁是搜索結(jié)果。為了快速識別相關(guān)的網(wǎng)頁,搜索引擎服務(wù)保持關(guān)鍵字到網(wǎng)頁的映射。通過“爬”網(wǎng)產(chǎn)生該映射來識別每個網(wǎng)頁的關(guān)鍵字。為了“爬”網(wǎng),搜索引擎服務(wù)可使用根網(wǎng)頁表來識別可通過那些根網(wǎng)頁訪問的所有網(wǎng)頁。任何特定網(wǎng)頁的關(guān)鍵字都可使用各種公知的信息檢索技術(shù)來識別,比如識別標(biāo)題的字、網(wǎng)頁的元數(shù)據(jù)中提供的字、高亮的字等等。
然而,通常這些搜索引擎服務(wù)不能用來搜索動態(tài)內(nèi)容,也認(rèn)為動態(tài)內(nèi)容是不可“爬”內(nèi)容。搜索動態(tài)內(nèi)容的一個問題在于有幾個原因使得不能有效地檢索和索引web數(shù)據(jù)庫內(nèi)容。一個原因是多個web數(shù)據(jù)庫的內(nèi)容太大了,以至于不能檢索和索引。另一個原因是web數(shù)據(jù)庫的計劃隱藏在搜索界面后面,即只向用戶陳列搜索網(wǎng)頁(和結(jié)果網(wǎng)頁)的屬性。搜索動態(tài)內(nèi)容的另一個問題在于,生成的索引需要支持結(jié)構(gòu)性查詢和非結(jié)構(gòu)性查詢。非結(jié)構(gòu)性查詢是在搜索文獻時通常使用的搜索項列表。例如,一個非結(jié)構(gòu)性查詢可以是“Harry PotterRowling”。一個結(jié)構(gòu)性查詢是在搜索數(shù)據(jù)庫時通常使用的屬性和屬性值列表。例如,一個結(jié)構(gòu)性查詢可以是“title=Harry Potter and author=Rowling”已經(jīng)進行了相當(dāng)多的研究來開發(fā)提供跨越多個web數(shù)據(jù)庫搜索的“元搜索器”。當(dāng)元搜索器收到一個查詢時,它選擇最有可能包含相關(guān)內(nèi)容的web數(shù)據(jù)庫,這被稱為“源選擇”。元搜索器接著將查詢翻譯成合適的格式,用于每個識別的web數(shù)據(jù)庫,這被稱為“查詢翻譯”。例如,元搜索器需要懂得如何將元搜索器查詢的屬性映射到每個選擇的web數(shù)據(jù)庫的站點屬性。例如,元搜索器可使用名為“格式”的屬性來查閱介質(zhì)(例如,平裝書或精裝書),而web數(shù)據(jù)庫可使用名為“類型”的屬性來查閱同一數(shù)據(jù)。查詢翻譯需要將元搜索器的格式屬性映射到web數(shù)據(jù)庫的類型屬性。元搜索器將翻譯的查詢發(fā)送到選擇的web數(shù)據(jù)庫,這被稱為“調(diào)度”。當(dāng)元搜索器接收搜索結(jié)果時,它將它們整合為總的結(jié)果,這被稱為“結(jié)果整合”。
期望有一種用來有效地生成web數(shù)據(jù)庫索引的技術(shù),該技術(shù)允許使用非結(jié)構(gòu)性和結(jié)構(gòu)性查詢來有效地搜索。
發(fā)明概述提供了一種用來在一個域中索引和搜索web數(shù)據(jù)庫的方法和系統(tǒng)。在一個實施例中,搜索系統(tǒng)通過生成性地抽樣數(shù)據(jù)庫來為web數(shù)據(jù)庫生成一個索引,并使用那個索引來識別和設(shè)計用來搜索數(shù)據(jù)庫的查詢。生成的索引被稱為域級屬性索引,并包含域級索引和用于每個數(shù)據(jù)庫的站點級索引。用于數(shù)據(jù)庫的站點級索引將站點屬性映射到數(shù)據(jù)庫中確定的屬性值。用于域的域級索引將屬性值映射到包含這些屬性值的數(shù)據(jù)庫和站點屬性對。為某個域中的數(shù)據(jù)庫生成站點級索引,所述搜索系統(tǒng)對那個域以最初的一組抽樣數(shù)據(jù)開始。該搜索系統(tǒng)使用域-站點映射來選擇與域?qū)傩韵鄳?yīng)的數(shù)據(jù)庫站點屬性。該搜索系統(tǒng)從抽樣數(shù)據(jù)中為所述域?qū)傩赃x擇一個屬性值。該搜索系統(tǒng)接著生成并提交抽樣查詢至數(shù)據(jù)庫以搜索在已選擇站點屬性方面匹配選擇的屬性值的條目。一旦收到作為查詢結(jié)果的條目,搜索系統(tǒng)為所述數(shù)據(jù)庫生成站點級索引,它將站點級屬性映射到包含在那些站點屬性之中確定的屬性值。該搜索系統(tǒng)可以從各種站點級索引中生成域級索引。
在一個實施例中,在搜索多個數(shù)據(jù)庫時,搜索系統(tǒng)允許用戶規(guī)定非結(jié)構(gòu)性查詢或結(jié)構(gòu)性查詢。該搜索系統(tǒng)通過基于域級索引首先識別非結(jié)構(gòu)性查詢的項是否代表屬性或?qū)傩灾刀鴮⒎墙Y(jié)構(gòu)性查詢映射到一系列結(jié)構(gòu)性查詢。在識別了一組屬性項和屬性值項(term)之后,搜索系統(tǒng)為屬性項和屬性值項的每個組合生成一個查詢。該搜索系統(tǒng)能夠直接使用結(jié)構(gòu)化查詢的屬性和屬性值對,而不必執(zhí)行與用于非結(jié)構(gòu)化查詢相似的映射。該搜索系統(tǒng)使用域級索引來識別查詢應(yīng)提交到哪個數(shù)據(jù)庫。
附圖簡述
圖1是說明一個實施例中的搜索系統(tǒng)組件的框圖。
圖2說明了一個實施例中的對應(yīng)表。
圖3說明了在一個實施例中用于域?qū)傩运饕恼军c級索引。
圖4說明了在一個實施例中用于域?qū)傩运饕挠蚣壦饕?br>
圖5是說明在一個實施例中生成查詢組件處理過程的流程圖。
圖6是說明在一個實施例中設(shè)計非結(jié)構(gòu)化查詢組件處理過程的流程圖。
圖7是說明在一個實施例中識別一個查詢的屬性項和屬性值項的組件處理過程的流程圖。
圖8是說明在一個實施例中組件選擇數(shù)據(jù)庫來提交查詢的處理過程的流程圖。
圖9是說明在一個實施例中生成域?qū)傩运饕慕M件處理過程的流程圖。
圖10是說明在一個實施例中更新站點級索引組件的處理過程的流程圖。
詳細(xì)描述提供一種用來索引和搜索web數(shù)據(jù)庫的方法和裝置。在一個實施例中,搜索系統(tǒng)通過生成性地抽樣數(shù)據(jù)庫來為web數(shù)據(jù)庫生成一個索引,并使用該索引來識別和設(shè)計用來搜索數(shù)據(jù)庫的查詢。該生成的索引被稱為域-屬性索引,并包含一個域級索引和用于每個數(shù)據(jù)庫的站點級索引。域是針對特定主題(例如,書或汽車)的數(shù)據(jù)庫集合。每個域具有一個域規(guī)劃(也被稱為“全球規(guī)劃”),它定義了一組通常能在域數(shù)據(jù)庫的規(guī)劃中找到的域?qū)傩浴@?,?dāng)域涉及到書時,域規(guī)劃包括作者屬性和書名屬性,因為大多數(shù)書數(shù)據(jù)庫具有那些屬性。用于數(shù)據(jù)庫的站點級索引將站點屬性映射到數(shù)據(jù)庫之中的確定的屬性值。例如,如果數(shù)據(jù)庫包含一個帶有作者屬性的項,作者屬性具有屬性值Tolkien,然后站點級索引將作者屬性映射到Tolkien。搜索系統(tǒng)通過如下所述抽樣數(shù)據(jù)庫來生成站點級索引。域級索引將屬性值映射到包含那些屬性值的數(shù)據(jù)庫和站點屬性對。例如,域級索引將包括屬性值Tolkien的項,該屬性值項Tolkien被映射到包含Tolkien書籍項的數(shù)據(jù)庫,并且還映射到那個數(shù)據(jù)庫的作者屬性。搜索系統(tǒng)可從站點級索引中生成域級索引。該域級索引是站點級索引的合并和轉(zhuǎn)置形式。為了處理一個查詢,搜索系統(tǒng)使用域-屬性索引來選擇應(yīng)當(dāng)搜索哪個數(shù)據(jù)庫,并使用域-站點屬性映射來將該查詢翻譯成適于每個選擇的數(shù)據(jù)庫的查詢。隨后搜索系統(tǒng)把翻譯的查詢提交到選擇的數(shù)據(jù)庫。搜索系統(tǒng)接著使用域-站點屬性映射整合查詢的結(jié)果以把結(jié)果從站點屬性映射到域?qū)傩浴?br>
為特定域中的數(shù)據(jù)庫生成站點級索引,所述搜索系統(tǒng)開始于對那個域最初的一組抽樣數(shù)據(jù)。該抽樣數(shù)據(jù)為域中的數(shù)據(jù)庫提供抽樣項。所述項為域規(guī)劃的域?qū)傩蕴峁傩灾?。例如,書籍域中的抽樣?shù)據(jù)可包含一個項和另一個項,所述第一項的書名屬性設(shè)置成“Harry Potter and the Order of the Phoenix”且作者屬性設(shè)置成“Rowling”,此外另一個項的書名屬性設(shè)置成“The Fellowship of theRing”且作者屬性設(shè)置成Tolkien。為了抽樣數(shù)據(jù)庫,搜索系統(tǒng)使用域-站點映射來選擇與域?qū)傩韵鄳?yīng)的數(shù)據(jù)庫站點屬性。搜索系統(tǒng)從抽樣數(shù)據(jù)中為那個域?qū)傩赃x擇一個屬性值。搜索系統(tǒng)接著生成并提交抽樣查詢至數(shù)據(jù)庫以搜索在選擇的站點屬性方面匹配于選擇的屬性值的項。例如,如果選擇的站點屬性是作者,且選擇的屬性值是Tolkien,則查詢將搜索由Tolkien寫的書的項。一旦收到作為查詢結(jié)果的項,搜索系統(tǒng)為那個數(shù)據(jù)庫生成站點級索引,它將站點級屬性映射到包含在那些站點屬性之中的確定的屬性值。例如,結(jié)果可包括由Del Ray出版的Tolkien的書“Silmarillion”的項,由Houghton Mifflin出版的Tolkien的書“Roverandom”的項和由Houghton Mifflin出版的Tolkien的書“The Hobbit”的項。如果這樣,那么站點級索引將把書名站點屬性映射到詞Silmarillion、Roverandom和Hobbit,并且將出版人的站點屬性映射到詞Del Ray、Houghton和Mifflin。搜索系統(tǒng)也跟蹤每個屬性值在抽樣結(jié)果中出現(xiàn)的次數(shù)。例如,出現(xiàn)計數(shù)為2將與Houghton的屬性值相關(guān),因為它出現(xiàn)在這個抽樣結(jié)果的兩個項中。為了增加數(shù)據(jù)庫的覆蓋,即增加被表示在站點級索引中的項數(shù),搜索系統(tǒng)使用抽樣結(jié)果的數(shù)據(jù)來為那個數(shù)據(jù)庫設(shè)計新的抽樣查詢。例如,該搜索系統(tǒng)用設(shè)置成Houghton的站點出版者屬性來設(shè)計抽樣查詢,這將檢索由Houghton Mifflin出版的書籍的所有項。該搜索系統(tǒng)接著將更新站點級索引,以便它“覆蓋”數(shù)據(jù)庫的所有Houghton Mifflin書籍,從而增加了數(shù)據(jù)庫的覆蓋。該搜索系統(tǒng)可使用那個抽樣結(jié)果來進一步生成抽樣查詢。因此該搜索系統(tǒng)基于抽樣搜索的以前的抽樣結(jié)果,再生性地擴展了數(shù)據(jù)庫的覆蓋。
在一個實施例中,搜索系統(tǒng)從各種站點級索引中生成域級索引。該搜索系統(tǒng)為站點級索引中的每個確定的屬性值添加一個域級索引項。例如,如果5個數(shù)據(jù)庫具有Tolkien的書的項,那么域級索引將具有用于Tolkien的項,它帶有至少5個子項,每個子項識別5個數(shù)據(jù)庫之一和那個數(shù)據(jù)庫的作者站點屬性。當(dāng)所述數(shù)據(jù)庫之一包含書籍“J.R.R.TolkienArchitect of Middle EarthABiography”的項時,用于Tolkien的域級索引項也包含用于那個數(shù)據(jù)庫的子項,所述數(shù)據(jù)庫識別書名站點屬性。域級索引在每個子項中還包含頻率信息,所述頻率信息指示那個屬性值在每個數(shù)據(jù)庫中的頻率。該搜索系統(tǒng)在選擇數(shù)據(jù)庫來提交查詢時,可使用所述頻率信息。在一個實施例中,該搜索系統(tǒng)可基于域?qū)傩詣澐只蚍侄斡蚣壦饕@?,域級索引具有用于書名域?qū)傩缘淖铀饕?,以及用于作者域?qū)傩缘牧硪粋€子索引。每個子索引包括一個對于在數(shù)據(jù)庫中的那個屬性的每個確定屬性值的項。子索引的使用通過允許搜索系統(tǒng)首先為結(jié)構(gòu)式查詢的屬性選擇適當(dāng)?shù)淖铀饕筮x擇包含屬性值的項(包含了完全對應(yīng)于該屬性的子項)而便于翻譯結(jié)構(gòu)式查詢,而不是首先選擇屬性值,而后還必須搜索相應(yīng)于該屬性的子項。
在一個實施例中,在搜索多個數(shù)據(jù)庫時,搜索系統(tǒng)允許用戶規(guī)定非結(jié)構(gòu)性查詢或結(jié)構(gòu)性查詢。該搜索系統(tǒng)通過基于域級索引首先識別非結(jié)構(gòu)性查詢的項是否代表屬性或?qū)傩灾刀鴮⒎墙Y(jié)構(gòu)性查詢映射到一系列結(jié)構(gòu)性查詢。例如,當(dāng)用戶想搜索作者Tolkien寫的書時,非結(jié)構(gòu)性查詢可以是“書名作者Tolkien”。該搜索系統(tǒng)識別出書名項和作者項都是域?qū)傩?,因為它們是域?guī)劃之中的屬性名稱。該搜索系統(tǒng)還識別出書名項、作者項和Tolkien項是屬性值,因為它們是數(shù)據(jù)庫之中的屬性值。書名項和作者項可以是屬性值,因為數(shù)據(jù)庫之一具有書“1997 Harvard Business School Core Collection作者、書名和主題指南”的項。在識別了一組屬性項和屬性值項(term)之后,搜索系統(tǒng)為屬性項和屬性值項的每個組合生成一個查詢。例如,該搜索系統(tǒng)將為具有書名、作者和Tolkien屬性值的書名屬性生成查詢,并且為具有書名、作者和Tolkien屬性值的作者屬性生成查詢。該搜索系統(tǒng)能夠直接使用結(jié)構(gòu)化查詢的屬性和屬性值對,而不必執(zhí)行與用于非結(jié)構(gòu)化查詢相似的映射。用非結(jié)構(gòu)化查詢或結(jié)構(gòu)化查詢,該搜索系統(tǒng)將域?qū)傩苑g成所選擇數(shù)據(jù)庫的站點屬性。該搜索系統(tǒng)接著將那些查詢提交給基于域?qū)傩运饕x擇的數(shù)據(jù)庫,例如,已知它們具有與查詢的屬性和屬性值相對應(yīng)的條目。該搜索系統(tǒng)也基于域?qū)傩运饕畔⒆R別查詢提交的順序。例如,該搜索系統(tǒng)基于域?qū)傩允欠裰甘舅鼈兛赡軙祷卮罅宽?比如,頻率數(shù)指示將返回的大量項)來決定對數(shù)據(jù)庫排序。
因為數(shù)據(jù)庫抽樣將在數(shù)據(jù)庫上加上較重的負(fù)擔(dān),搜索系統(tǒng)可使用各種技術(shù),以確保以更少的抽樣來實現(xiàn)數(shù)據(jù)庫的更大覆蓋。該搜索系統(tǒng)可使用各種抽樣準(zhǔn)則,包括隨機抽樣、屬性自適應(yīng)抽樣和值自適應(yīng)抽樣。在使用隨機抽樣時,搜索系統(tǒng)隨機地選擇站點屬性,并且為選擇的屬性隨機選擇還沒有被選擇的屬性值。在使用屬性自適應(yīng)抽樣時,搜索系統(tǒng)選擇在數(shù)據(jù)庫的所有屬性中具有最小數(shù)目確定屬性值的站點屬性。該搜索系統(tǒng)接著為那個站點屬性隨機選擇一個未使用過的屬性值。在使用值自適應(yīng)抽樣時,該搜索系統(tǒng)選擇具有最小數(shù)目確定屬性值的站點屬性(像屬性自適應(yīng)抽樣一樣),但是為那個屬性選擇還沒有被選擇并且在所有還沒有被選擇的屬性值中具有最大出現(xiàn)次數(shù)的屬性值。在域?qū)傩运饕袔в凶钚〈_定值數(shù)的屬性在已抽樣數(shù)據(jù)庫中也可以具有小數(shù)目的確定值。即,在從該屬性中平均一個值時,比從其它屬性中的值更可能匹配大部分已抽樣數(shù)據(jù)庫項。同樣,在域?qū)傩运饕懈喑霈F(xiàn)的值在抽樣數(shù)據(jù)庫中也出現(xiàn)得更頻繁。即,以更多出現(xiàn)的值來抽樣數(shù)據(jù)庫可檢索更大部分?jǐn)?shù)據(jù)庫項。
在一個實施例中,搜索系統(tǒng)運用抽樣停止準(zhǔn)則來終止已抽樣數(shù)據(jù)庫的抽樣。雖然可能徹底抽樣數(shù)據(jù)庫,但是這為數(shù)據(jù)庫加上很重的負(fù)擔(dān),且數(shù)據(jù)庫的web站點將把過度頻繁訪問數(shù)據(jù)庫的用戶關(guān)在外面。搜索系統(tǒng)可使用絕對抽樣停止準(zhǔn)則,該絕對抽樣停止準(zhǔn)則是基于最大數(shù)目查詢或者最大時間??商鎿Q地,搜索系統(tǒng)可使用相對抽樣停止準(zhǔn)則,該相對抽樣停止準(zhǔn)則是基于最后幾個抽樣查詢的邊界值,如同基于查詢結(jié)果被添加到站點級索引的新內(nèi)容的數(shù)量所指示的一樣。該搜索系統(tǒng)可使用絕對和相對抽樣停止準(zhǔn)則的組合。例如,不管哪一個首先出現(xiàn),該搜索系統(tǒng)可在1000個查詢之后停止抽樣,或者邊界值在閾值以下時停止抽樣。
圖1是說明一個實施例中的搜索系統(tǒng)組件的框圖。Web數(shù)據(jù)庫101經(jīng)由通信鏈路102連接到搜索系統(tǒng)110。該搜索系統(tǒng)包括一個生成查詢組件111,設(shè)計結(jié)構(gòu)化查詢組件112,設(shè)計非結(jié)構(gòu)化查詢組件113,生成域?qū)傩运饕M件114,查詢選擇組件115,更新站點級索引116和更新域級索引組件117。該搜索系統(tǒng)還包括域?qū)傩运饕?20,它包括域級索引121和對于每個數(shù)據(jù)庫的站點級索引122。該搜索系統(tǒng)還包括對應(yīng)表123。域級索引是一個值-屬性索引,它將屬性值映射到數(shù)據(jù)庫和數(shù)據(jù)庫之中的站點屬性。站點級索引是屬性-值索引,它將數(shù)據(jù)庫的站點屬性映射到它們的對應(yīng)確定值。對應(yīng)表將域?qū)傩杂成涞矫總€數(shù)據(jù)庫的站點屬性。本領(lǐng)域普通技術(shù)人員可以理解,由于站點屬性被映射到域?qū)傩?,反之亦然,無論何時某物映射到站點屬性,它都可以直接或間接地通過域?qū)傩员挥成?,并且對于域?qū)傩韵喾础I刹樵兘M件接收用戶查詢,判定該查詢是結(jié)構(gòu)化的還是非結(jié)構(gòu)化的,并適當(dāng)?shù)卣{(diào)用設(shè)計結(jié)構(gòu)化查詢組件或者設(shè)計非結(jié)構(gòu)化查詢組件。設(shè)計結(jié)構(gòu)化查詢組件基于結(jié)構(gòu)化查詢的屬性和屬性值生成查詢。設(shè)計非結(jié)構(gòu)化查詢組件識別查詢的屬性項和屬性值項,并基于屬性項和屬性值項的組合生成查詢。生成查詢組件選擇數(shù)據(jù)庫并將查詢提交到那些數(shù)據(jù)庫。生成域?qū)傩运饕M件控制域?qū)傩运饕纳?,域?qū)傩运饕ㄓ蚣壦饕驼军c級索引。生成域?qū)傩运饕M件調(diào)用查詢選擇組件來生成抽樣數(shù)據(jù)庫的查詢。生成域?qū)傩运饕M件調(diào)用更新站點級索引組件來為抽樣的數(shù)據(jù)庫更新站點級索引。生成域?qū)傩运饕M件基于站點級索引的信息調(diào)用更新域級索引組件來更新域級索引。
在其上實現(xiàn)搜索系統(tǒng)的計算設(shè)備可包括中央處理單元,內(nèi)存,輸入設(shè)備(比如,鍵盤和指向設(shè)備),輸出設(shè)備(比如,顯示設(shè)備)和存儲設(shè)備(比如,磁盤驅(qū)動器)。內(nèi)存和存儲設(shè)備是包含實現(xiàn)搜索系統(tǒng)指令的計算機可讀媒體。此外,可以經(jīng)由諸如通信鏈路上的信號之類的數(shù)據(jù)傳輸介質(zhì)存儲或發(fā)射數(shù)據(jù)結(jié)構(gòu)和消息結(jié)構(gòu)。可使用各種通信鏈路,比如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)或者點對點撥號連接。本領(lǐng)域普通技術(shù)人員可以理解還可以和除了web數(shù)據(jù)庫之外數(shù)據(jù)庫一起使用搜索系統(tǒng)。例如,所述數(shù)據(jù)庫是不同組織(例如,公司或者政府實體)的數(shù)據(jù)庫,這些數(shù)據(jù)庫能夠通過元搜索器搜索。
該搜索系統(tǒng)可以在各種操作環(huán)境中實現(xiàn),各種操作環(huán)境包括個人計算機、服務(wù)器計算機、手持或便攜式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費電器、網(wǎng)絡(luò)PC、微型計算機、大型計算機、包括任何上述系統(tǒng)或設(shè)備的分布式計算環(huán)境,等等。
該搜索系統(tǒng)應(yīng)當(dāng)在計算機可執(zhí)行指令的通用環(huán)境中描述,比如由一個或多個計算機或其它設(shè)備執(zhí)行的程序模塊。程序模塊通常包括例行程序、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄蟮臄?shù)據(jù)類型。通常程序模塊的功能性可如在各個實施例中所需要的那樣組合或分配。本領(lǐng)域普通技術(shù)人員能夠理解舉例說明的數(shù)據(jù)結(jié)構(gòu)僅僅是能夠用來組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)抽樣類型。
圖2說明了一個實施例中的對應(yīng)表。對應(yīng)表200為(也被稱為域-站點屬性映射)將每個域?qū)傩?01映射到每個數(shù)據(jù)庫相應(yīng)的站點屬性。例如,對應(yīng)表的行202指示作者域?qū)傩詫?yīng)到第一數(shù)據(jù)庫的作者站點屬性和第二數(shù)據(jù)庫的“au”站點屬性。行203指示格式域?qū)傩詫?yīng)到第一數(shù)據(jù)庫的類型站點屬性和第二數(shù)據(jù)庫的格式站點屬性。對應(yīng)表的產(chǎn)生在美國專利申請?zhí)枮?-------,名為“用于Web數(shù)據(jù)庫規(guī)劃匹配的方法和裝置”,于2004年5月14日提交的申請中描述,該申請通過參考合并于此。
圖3說明了在一個實施例中用于域?qū)傩运饕恼军c級索引。站點級索引300包含一個Web站點數(shù)據(jù)庫的每個站點屬性的項。在本實例中,站點屬性的項由表中的行表示。每個項包括對于那個站點屬性在數(shù)據(jù)庫內(nèi)的每一確定值的子項。子項還指示在抽樣數(shù)據(jù)庫時被發(fā)現(xiàn)的屬性值出現(xiàn)的頻率或者數(shù)目。例如,作者站點屬性的項具有Rowling屬性值的子項和Tolkien屬性值的另一個子項。書名站點屬性的項包括魔術(shù)師屬性值的子項和鈴聲屬性值的子項。
圖4說明了在一個實施例中用于域?qū)傩运饕挠蚣壦饕S蚣壦饕?00包括一個對于在站點級索引中的每個確定屬性值的項和將屬性值映射到數(shù)據(jù)庫和包含所述值的站點屬性的子項。在本例中,項401對應(yīng)于屬性值Tolkien,并具有指示在第一數(shù)據(jù)庫的書名站點屬性、第一數(shù)據(jù)庫的作者站點屬性和第二數(shù)據(jù)庫的書名站點屬性中發(fā)現(xiàn)Tolkien屬性值的子項。條目402對應(yīng)于屬性值Houghton,并具有指示是在第一數(shù)據(jù)庫的出版者站點屬性、第二數(shù)據(jù)庫的出版者站點屬性、第二數(shù)據(jù)庫的作者站點屬性和第二數(shù)據(jù)庫的書名站點屬性中發(fā)現(xiàn)Houghton屬性值的子項。
圖5是說明在一個實施例中生成查詢組件的處理過程的流程圖。該組件傳遞一個查詢,該查詢是結(jié)構(gòu)化或者是非結(jié)構(gòu)化的,并生成將提交到各種數(shù)據(jù)庫的查詢。在判決塊501,如果傳遞的查詢是結(jié)構(gòu)化的,組件在塊502繼續(xù),否則組件在塊503繼續(xù)。在塊502,組件調(diào)用設(shè)計結(jié)構(gòu)化查詢組件來生成數(shù)據(jù)庫的查詢。在塊503,組件調(diào)用設(shè)計非結(jié)構(gòu)化查詢組件而從非結(jié)構(gòu)化查詢設(shè)計查詢。在塊504,組件調(diào)用選擇數(shù)據(jù)庫組件來選擇向其提交查詢的數(shù)據(jù)庫。該組件還將查詢從域?qū)傩苑g成已選擇數(shù)據(jù)庫的站點屬性。在塊505,組件對數(shù)據(jù)庫排序,以便以能夠更快地生成最需要的結(jié)果的次序提交所述查詢。例如,可根據(jù)哪個數(shù)據(jù)庫具有與某個屬性值相關(guān)的最多項來對數(shù)據(jù)庫排序。該組件也可以通過邏輯“OR”組合屬性和屬性值來為數(shù)據(jù)庫組合查詢。組件隨后結(jié)束。
圖6是說明在一個實施例中設(shè)計非結(jié)構(gòu)化查詢組件的處理過程流程圖。在塊601,該組件調(diào)用一個組件,以從查詢中識別屬性項和屬性值項。在塊602-606,組件循環(huán)選擇屬性和屬性值項對,并為該對設(shè)計一個查詢。在塊602,組件選擇下一個屬性項。在判決塊603,如果已經(jīng)選擇了所有屬性項,那么組件返回,否則組件繼續(xù)到塊604。在塊604,組件選擇下一個屬性值項。在判決塊605,如果已經(jīng)選擇了所有屬性值項,那么組件循環(huán)到塊602來選擇下一個屬性項,否則組件在塊606繼續(xù)。在塊606,組件通過把與選擇的屬性項對應(yīng)的域?qū)傩栽O(shè)置成已選擇屬性值項來設(shè)計一個查詢。隨后組件循環(huán)到塊604選擇下一個屬性值項。
圖7是說明在一個實施例中識別查詢的屬性項和屬性值項的處理過程的流程圖。在塊701,組件將屬性項列表和屬性值項列表初始化為空。在塊702-707,組件循環(huán)選擇查詢的每個項,并判定它是一個屬性項還是一個屬性值項,或者兩者都是。在塊702,組件選擇查詢的下一項。在判決塊703,如果已經(jīng)選擇了查詢的所有項,那么部件返回,否則組件在塊704繼續(xù)。在判決塊704,如果選擇的項是屬性值項,那么組件在塊705繼續(xù),否則該組件在塊706繼續(xù)。當(dāng)該項在域級索引的項中時,該項是一個屬性值項。在塊705中,組件將選擇的項添加到屬性值項列表,然后在塊706繼續(xù)。在判決塊706,如果選擇項是屬性,那么組件在塊707繼續(xù),否則組件循環(huán)到塊702來選擇查詢的下一項。當(dāng)項在域級索引的項的任一個之內(nèi)的子項中時,它是一個屬性項。在塊707,組件將選擇的項添加到屬性項列表,然后循環(huán)到塊702以選擇查詢的下一項。
圖8是說明在一個實施例中組件選擇數(shù)據(jù)庫來提交查詢的處理過程的流程圖。組件根據(jù)那個數(shù)據(jù)庫是否在項的子項中來選擇數(shù)據(jù)庫,所述項是對于域級索引中的查詢屬性值的項。在塊801,組件選擇下一個設(shè)計的查詢。在判決塊802,如果已經(jīng)選擇了所有的查詢,那么組件返回,否則組件在塊803繼續(xù)。在塊803,組件在用于已選擇查詢的屬性的項中選擇一個子項。在判決塊804,如果已經(jīng)選擇了所有這樣的子項,那么組件循環(huán)到塊801來選擇下一個查詢,否則組件在塊805繼續(xù)。在塊805,組件為查詢生成數(shù)據(jù)庫、屬性和屬性值三元組,然后循環(huán)到塊803來選擇下一個子項。三元組指示將提交到數(shù)據(jù)庫的查詢。組件還將域?qū)傩苑g成數(shù)據(jù)庫相應(yīng)的站點屬性。
圖9是說明在一個實施例中生成域?qū)傩运饕M件(component)的處理過程的流程圖。在該實施例中,所述組件竭力為所有屬性和屬性值組合生成查詢,并隨機選擇屬性和屬性值。塊901-904可由實現(xiàn)不同抽樣準(zhǔn)則(例如,屬性自適應(yīng)抽樣)和抽樣停止準(zhǔn)則的組件代替。在塊901中,組件選擇下一個域?qū)傩?。在判決塊902中,如果已經(jīng)選擇了所有的域?qū)傩裕敲唇M件在塊980繼續(xù),否則組件在903繼續(xù)。在塊903,組件選擇下一個屬性值。在判決塊904,如果已經(jīng)選擇了所有屬性值,那么組件在塊901繼續(xù),否則組件在塊905繼續(xù)。在塊905,組件根據(jù)選擇的域?qū)傩?映射到相應(yīng)的站點屬性)和選擇的屬性值來提交抽樣查詢。在塊906,組件提取抽樣結(jié)果的項。例如,組件只提取前10個項或者其它數(shù)量的項。在塊907,組件調(diào)用更新站點級索引組件來來為已抽樣數(shù)據(jù)庫更新站點級索引。該組件接著循環(huán)到塊903來為已選擇的域?qū)傩赃x擇下一個屬性值。在塊908,組件基于已更新的站點級索引,調(diào)用更新域級索引來更新域級索引。
圖10是說明在一個實施例中更新站點級索引組件的處理過程的流程圖。該組件被傳遞抽樣結(jié)果,選擇抽樣結(jié)果之中的每個屬性和屬性值對,此外還判定該對是否在站點級索引中。如果不在站點級索引中,該組件將所述對添加到索引中。否則,組件更新現(xiàn)有對的頻率。在塊1001,該組件選擇抽樣結(jié)果的下一項。在判決塊1002,如果已經(jīng)選擇了所有條目,那么組件返回,否則組件在塊1003繼續(xù)。在塊1003,組件選擇已選擇項的下一個屬性。在判決塊1004,如果已經(jīng)選擇了已選擇項的所有屬性,該組件循環(huán)到塊1001來選擇下一項,否則組件在塊1005繼續(xù)。在判決塊1005,如果已選擇屬性及其屬性值已經(jīng)是在站點級索引中的一對,那么,組件在塊1006繼續(xù),否則組件在塊1007繼續(xù)。在塊1007,該組件將屬性和屬性值對添加到站點級索引,然后在塊1006繼續(xù)。在塊1006,組件在站點級索引中更新屬性和屬性值對的頻率,之后循環(huán)到塊1003來為抽樣結(jié)果的已選擇項選擇下一個屬性。
本領(lǐng)域的普通技術(shù)人員將會理解,雖然為了舉例說明的目的,在此已經(jīng)描述了搜索系統(tǒng)的具體實施例,但是可以做出各種修改而不脫離本發(fā)明的精神和范圍。因此,除了所附的權(quán)利要求之外,本發(fā)明不受限制。
權(quán)利要求
1.一種計算機可讀媒體,包括一個支持?jǐn)?shù)據(jù)庫搜索的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包含多個屬性值,每個屬性值被包含在一個數(shù)據(jù)庫的一個項的至少一個屬性中,從屬性值到數(shù)據(jù)庫和所述數(shù)據(jù)庫的屬性的映射,所述數(shù)據(jù)庫在其項屬性中包含了所述屬性值。
2.權(quán)利要求1所述的計算機可讀媒體,其中所述數(shù)據(jù)結(jié)構(gòu)包括將域規(guī)劃的域?qū)傩杂成涞綌?shù)據(jù)庫的對應(yīng)屬性的對應(yīng)性信息。
3.權(quán)利要求1所述的計算機可讀媒體,其中對于每個數(shù)據(jù)庫和為該數(shù)據(jù)庫中的每個屬性,所述數(shù)據(jù)結(jié)構(gòu)包括到確定的屬性值的映射,所述確定的屬性值包含在所述數(shù)據(jù)庫的一個項的屬性中。
4.權(quán)利要求3所述的計算機可讀媒體,其中每個到確定的屬性值的映射包括在所述數(shù)據(jù)庫的項屬性之中的屬性值的頻率指示。
5.權(quán)利要求1所述的計算機可讀媒體,其中數(shù)據(jù)庫是Web數(shù)據(jù)庫。
6.權(quán)利要求1所述的計算機可讀媒體,其中所述映射包括在所述數(shù)據(jù)庫的項屬性之中的屬性值出現(xiàn)頻率的指示。
7.權(quán)利要求1所述的計算機可讀媒體,其中所述映射基于屬性被隔開。
8.權(quán)利要求1所述的計算機可讀媒體,其中所述映射表示域?qū)傩运饕膶俚燃墶?br>
9.權(quán)利要求8所述的計算機可讀媒體,其中所述數(shù)據(jù)結(jié)構(gòu)對于每個數(shù)據(jù)庫包括一個站點級索引。
10.一種在計算機系統(tǒng)中用來搜索Web數(shù)據(jù)庫的方法,該方法包括接收一個具有項的非結(jié)構(gòu)化查詢;識別屬性項為相應(yīng)于web數(shù)據(jù)庫屬性的項;識別屬性值項為相應(yīng)于web數(shù)據(jù)庫屬性值的項;對于屬性項和屬性值項對,用相應(yīng)于設(shè)置到屬性值項的屬性項的屬性,設(shè)計一個查詢;以及向web數(shù)據(jù)庫提交設(shè)計的查詢。
11.權(quán)利要求10所述的方法,包括在提交設(shè)計的查詢之前,識別web數(shù)據(jù)庫的子集來提交設(shè)計的查詢。
12.權(quán)利要求10所述的方法,其中屬性項和屬性值項的識別使用域?qū)傩运饕?br>
13.權(quán)利要求12所述的方法,其中所述域?qū)傩运饕秊槎鄠€屬性值提供了從屬性值到數(shù)據(jù)庫的映射和所述數(shù)據(jù)庫的屬性的映射,每個屬性值被包含在一個數(shù)據(jù)庫的一個項的至少一個屬性中,所述數(shù)據(jù)庫在其項屬性中包含了所述屬性值。
14.權(quán)利要求12所述的方法,其中所述域?qū)傩运饕秊槊總€數(shù)據(jù)庫和該數(shù)據(jù)庫中的每個屬性,提供到確定的屬性值的映射,所述確定的屬性值包含在所述數(shù)據(jù)庫的一個項屬性中。
15.權(quán)利要求12所述的方法,其中所述域?qū)傩运饕ㄓ蚣壦饕驼军c級索引。
16.在計算機系統(tǒng)中用來搜索web數(shù)據(jù)庫的方法,該方法包括接收屬性和屬性值對;為每個接收對設(shè)計一個查詢;識別web數(shù)據(jù)庫來使用域?qū)傩运饕峤辉O(shè)計的查詢;將設(shè)計的查詢提交到識別的web數(shù)據(jù)庫。
17.權(quán)利要求16所述的方法,其中域?qū)傩运饕秊槎鄠€屬性值提供了從屬性值到數(shù)據(jù)庫的映射和所述數(shù)據(jù)庫的屬性的映射,每個屬性值被包含在一個數(shù)據(jù)庫的一個項的至少一個屬性中,所述數(shù)據(jù)庫在其項屬性中包含了所述屬性值。
18.權(quán)利要求16所述的方法,其中域?qū)傩运饕秊槊總€數(shù)據(jù)庫和該數(shù)據(jù)庫中的每個屬性,提供到確定的屬性值的映射,所述確定的屬性值包含在所述數(shù)據(jù)庫的一個項屬性中。
19.權(quán)利要求16所述的方法,其中域?qū)傩运饕ㄓ蚣壦饕驼军c級索引。
20.在計算機系統(tǒng)中用來抽樣在域中的數(shù)據(jù)庫的方法,該方法包括為域?qū)傩蕴峁┒嘟M屬性值;選擇一個數(shù)據(jù)庫來抽樣;為已選擇屬性選擇一個屬性和屬性值;向已選擇數(shù)據(jù)庫提交一個查詢,已選擇數(shù)據(jù)庫查詢具有已選擇屬性值的已選擇屬性,其中提交的查詢生成一個結(jié)果;和基于所述結(jié)果在已選擇數(shù)據(jù)庫的屬性和屬性值之間生成一個映射。
21.權(quán)利要求20所述的方法,包括基于所述結(jié)果,為域的屬性更新屬性值組,以便在接下來提交查詢時能夠使用來自于已更新組的屬性值。
22.權(quán)利要求20所述的方法,其中生成的映射為域?qū)傩运饕?br>
23.權(quán)利要求22所述的方法,其中生成的映射為站點級索引。
24.權(quán)利要求22所述的方法,其中生成的映射為域級索引。
25.權(quán)利要求20所述的方法,其中隨機選擇屬性和屬性值。
26.權(quán)利要求20所述的方法,其中選擇具有最小數(shù)目的確定屬性值的屬性。
27.權(quán)利要求20所述的方法,其中選擇在未被選擇的屬性值中具有最大出現(xiàn)次數(shù)的屬性值。
全文摘要
搜索系統(tǒng)通過生成性地抽樣數(shù)據(jù)庫來為web數(shù)據(jù)庫生成一個索引,并使用該索引來識別和設(shè)計搜索數(shù)據(jù)庫的查詢。該生成的索引被稱為域-屬性索引,并包含一個域級索引和多個站點級索引。用于數(shù)據(jù)庫的站點級索引將站點屬性映射到數(shù)據(jù)庫中的確定屬性值。用于域的域級索引將屬性值映射到包含那些屬性值的數(shù)據(jù)庫和站點屬性對。為某個域中的數(shù)據(jù)庫生成站點級索引,所述搜索系統(tǒng)開始于那個域最初的一組抽樣數(shù)據(jù)。該搜索系統(tǒng)基于抽樣數(shù)據(jù)生成抽樣查詢并將該抽樣查詢提交給數(shù)據(jù)庫。該搜索系統(tǒng)基于抽樣結(jié)果更新站點級索引,并使用該結(jié)果來生成更多的抽樣查詢。
文檔編號G06F17/30GK1741017SQ20051009224
公開日2006年3月1日 申請日期2005年5月16日 優(yōu)先權(quán)日2004年5月14日
發(fā)明者J-R·文, 馬維英 申請人:微軟公司