搜索的方法和系統(tǒng)的制作方法
【專利摘要】接收包括針對文檔集合的多維反向索引的兩個或更多面元的查詢。每個文檔與至少一個面元相關(guān)聯(lián)。生成多維反向索引包括創(chuàng)建一個或多個條目。每個條目包括兩個或更多面元的組合以及針對與每個條目的相應(yīng)面元相關(guān)聯(lián)的文檔的指示的發(fā)布列表。每個指示標(biāo)識一個文檔。生成索引還包括確定與每個條目的組合中的相應(yīng)面元相關(guān)聯(lián)的文檔。針對具有該查詢中所包括的兩個或更多面元的組合的條目而搜索多維反向索引,并且返回搜索結(jié)果。如果確定了一個文檔與該條目的面元的組合中的每個面元相關(guān)聯(lián),則針對該文檔的指示可以被包括在發(fā)布列表中。
【專利說明】搜索的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本公開總體上涉及可以在文檔或文檔集合的搜索中使用的索引,并且更具體地,涉及可以在多面元(multifaceted)搜索、包括商業(yè)智能應(yīng)用中的多面元搜索中使用的索引。
【背景技術(shù)】
[0002]搜索引擎可以被用來定位文檔集合中的特定文檔。此外,搜索引擎可以被用來定位文檔中的特定關(guān)鍵詞或短語。搜索引擎可以使用一個或多個索引來定位特定文檔、關(guān)鍵詞或短語。此外,搜索引擎可以在定位特定信息的過程中執(zhí)行布爾(Boolean)和其它運(yùn)算。搜索引擎可能需要大量時間來執(zhí)行搜索。減少執(zhí)行搜索所需時間的索引通常是有利的。
【發(fā)明內(nèi)容】
[0003]本公開的實施例提供了一種用于多面元搜索的方法和系統(tǒng)。該方法和系統(tǒng)包括接收查詢。該查詢包括針對文檔集合的多維反向索引的兩個或多個面元。該集合中的每個文檔與至少一個面元相關(guān)聯(lián)。生成多維反向索引包括:(a)創(chuàng)建一個或多個條目,每個條目包括兩個或更多面元的組合;(b)確定與每個條目的兩個或更多面元的組合中的相應(yīng)面元相關(guān)聯(lián)的文檔;以及(c)針對與每個條目的相應(yīng)面元相關(guān)聯(lián)的文檔而創(chuàng)建指示的發(fā)布列表(posting list),每個指示標(biāo)識一個文檔。除了接收查詢之外,該方法和系統(tǒng)包括針對與該查詢中所包括的兩個或更多面元的組合相匹配的條目而搜素多維反向索引。進(jìn)一步地,該方法和系統(tǒng)包括返回搜索結(jié)果。
[0004]在各個實施例中,確定與每個條目的兩個或更多面元的組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括確定一個文檔與兩個或更多面元中的每個面元相關(guān)聯(lián)。
【專利附圖】
【附圖說明】
[0005]圖1圖示了依據(jù)各個實施例的多面元文檔的示例性分類的數(shù)據(jù)面元。
[0006]圖2圖示了依據(jù)各個實施例的多面元文檔的示例性分類的發(fā)送方面元。
[0007]圖3圖示了依據(jù)各個實施例的多面元文檔的示例性分類的接收方面元。
[0008]圖4圖示了依據(jù)各個實施例的在圖1、2和3中所提及的多面元文檔的示例性分類。
[0009]圖5描繪了依據(jù)各個實施例的由一個系統(tǒng)所使用的文檔記錄。
[0010]圖6是依據(jù)各個實施例的用于圖4的示例性分類的示例性反向索引。
[0011]圖7是依據(jù)各個實施例的用于圖4的示例性分類的示例性多維反向索引。
[0012]圖8是依據(jù)各個實施例的用于圖4的示例性分類的示例性多維反向索引。
[0013]圖9是依據(jù)各個實施例的用于圖4的示例性分類的示例性多維反向索引。
[0014]圖10描繪了依據(jù)各個實施例的用于生成MD反向索引的過程。
[0015]圖11是依據(jù)各個實施例的計算機(jī)系統(tǒng)的框圖。
[0016]圖12描繪了依據(jù)各個實施例的用于執(zhí)行搜索查詢的過程。
[0017]同樣的參考標(biāo)號和名稱在各圖中指示同樣的要素。
【具體實施方式】
[0018]根據(jù)各個實施例,集合中的每個文檔與至少一個面元(facet)或類別相關(guān)聯(lián)。計算機(jī)系統(tǒng)被配置為針對文檔集合存儲多維反向索引。計算機(jī)系統(tǒng)接收查詢。該查詢包括多維反向索引的兩個或更多面元。該多維反向索引可以隨著查詢被接收、即每次接收到查詢,而遞增地生成。如果該索引并不包括與該查詢相匹配的條目,則生成新的條目并將其添加至該索引。備選地,該多維反向索引可以在接收查詢之前被整體或部分地生成??梢蕴峁┒鄠€多維反向索引,其中每個索引包括兩個或更多面元的不同組合。計算機(jī)系統(tǒng)被配置為針對具有被包括在查詢之中或者與該查詢相匹配的兩個或更多面元的組合的條目而搜索多維反向索引并且返回搜索結(jié)果。
[0019]多維反向索引包括一個或多個條目。每個條目包括兩個或更多面元的組合。此外,每個條目包括指示的發(fā)布列表。每個指示標(biāo)識集合中的一個文檔。發(fā)布列表是針對與該條目的面元的組合中的相應(yīng)面元相關(guān)聯(lián)的文檔的指示的列表。因此,生成多維反向索引包括確定哪些文檔與每個條目的兩個或更多面元的組合中的相應(yīng)面元相關(guān)聯(lián)。
[0020]在各個實施例中,文檔可以通過并集、交集或?qū)ΨQ差集類型關(guān)聯(lián)而與條目的面元組合中的相應(yīng)面元相關(guān)聯(lián)。
[0021]有利地,【具體實施方式】中所公開的實施例可以結(jié)合各種商業(yè)智能應(yīng)用來使用。作為一個示例,所公開的實施例可以被用作用于應(yīng)答多維分析查詢的在線分析處理應(yīng)用的一部分。
[0022]圖4圖示了依據(jù)各個實施例的多面元文檔的示例性分類400。分類400包括虛擬根節(jié)點402、面元120、面元220、面元320和面元404。在該示例中,文檔是電子郵件文檔。面元120、220和320分別是日期、發(fā)送方和接收方面元或類別。面元404可以是指示文檔是否包括附件文檔的二進(jìn)制指示符。此外,面元404可以是附件類型或大小類別。進(jìn)一步關(guān)于圖1、2和3對面元120、220和320的子類別進(jìn)行描述。示例性分類400可以包括另外的面元。
[0023]雖然圖1-4中的示例中的文檔是電子郵件文檔,但是該【具體實施方式】中所描述的原理可以隨任意適當(dāng)類型的虛擬或物理文檔而使用。例如,這些文檔可以是商業(yè)產(chǎn)品的說明書、科研文章、生物機(jī)體說明書、專利申請或者病理描述。另外,雖然該【具體實施方式】中所給出的示例索引涉及到日期、發(fā)送方、接收方面元,但是對于對文檔進(jìn)行歸類有用或有幫助的分類數(shù)據(jù)庫中所存儲的任意文檔中所包含的信息的任意屬性可以依據(jù)各個實施例而被指定為面元。
[0024]面元可以被用來對文檔(或者一個或多個文檔內(nèi)的單詞或短語)的集合進(jìn)行歸類。如以下進(jìn)一步描述的,面元可以是類別的層級,其可以由樹形結(jié)構(gòu)來表示,該樹形結(jié)構(gòu)通過面元或類別并且可選地通過面元內(nèi)的一個或多個子類別而對項目進(jìn)行歸類。利用面元對對象進(jìn)行歸類允許這些對象以多種方式被排序。用于文檔集合的面元可以基于在任意時刻表現(xiàn)為有用的組織而在該時刻被確定。如果另外的面元隨后被發(fā)現(xiàn)是有用的,則它們在后續(xù)可以被添加至初始面元集合。用于特定文檔集合的面元可以使用任何已知方法來標(biāo)識或確定。
[0025]圖1圖示了依據(jù)各個實施例的多面元文檔的示例性分類400的數(shù)據(jù)面元120。數(shù)據(jù)面元120包括“日期”根122以及通過年份2010和2011 (附圖標(biāo)記126、128)對文檔進(jìn)行歸類的兩個面元。2010年份類別下的子類別包括季度Ql和Q2(附圖標(biāo)記130、132)。2011年份類別下的子類別是季度Q3和Q4(附圖標(biāo)記134、136)。針對每個季度子類別提供各個月份子類別。一月、二月和三月子類別(附圖標(biāo)記138、140、412)提供在2010的季度Ql下。五月和六月子類別(附圖標(biāo)記144、146)提供在2010的季度Q2下。八月和九月子類別(附圖標(biāo)記148、150)提供在2011的季度Q3下。十二月子類別(附圖標(biāo)記152)提供在2011的季度Q4下。
[0026]每個類別或子類別可以被稱作節(jié)點并且可以通過序數(shù)進(jìn)行標(biāo)識。例如,日期根節(jié)點122可以由序數(shù)5所標(biāo)識。作為另一個示例,2011的子類別節(jié)點148的八月可以由序數(shù)16所標(biāo)識。序數(shù)可以被用來指定去向文檔的路徑。
[0027]文檔集合中的文檔D1、D2、D3、D4、D5、D6、D7、D8、D9、D10、D11 和 D12(分別為附圖標(biāo)記 154、162、168、156、164、158、170、176、160、154、166 和 172)利用將文檔連接至與該文檔的日期相關(guān)聯(lián)的月份節(jié)點的線條來示出。例如,文檔D10154包含2010年一月中的日期,例如創(chuàng)建日期。文檔DlO通過線條與2010 —月的節(jié)點138相連接。
[0028]在圖1所示的樹中,數(shù)據(jù)面元120并不包括年份2010和2011的每個月份或每個季度。相反,數(shù)據(jù)面元120僅包括對12個示例性文檔進(jìn)行歸類所需的子類別。為了方便圖示,該樹以非完全的形式進(jìn)行描繪。如果具有2010年十月中的日期的第十三個文檔被添加至該示例,則附加的季度和月份節(jié)點將被添加至日期面元120。在各個示例中,面元可以由完整或非完全的樹所表示。類似地,在該【具體實施方式】中所描述的其它面元可以省略對示例性文檔進(jìn)行歸類所不需要的子類別。
[0029]圖2圖示了依據(jù)各個實施例的多面元文檔的示例性分類的發(fā)送方面元。發(fā)送方面元220包括“來自”(“from”)根222以及四個面元,這四個面元通過四個發(fā)送方Rob、Bob、Bill和Jack(附圖標(biāo)記分別為224、226、228和230)之一對示例性文檔進(jìn)行歸類。與日期面元120相同,每個節(jié)點可以由序數(shù)進(jìn)行標(biāo)識。文檔Dl-D12(附圖標(biāo)記154-176)利用將文檔連接至與該文檔的發(fā)送方相關(guān)聯(lián)的發(fā)送方節(jié)點的線條所示出。例如,文檔D2162包含發(fā)送方姓名Jack (節(jié)點230)。文檔D2通過線條與節(jié)點230相連接。
[0030]圖3圖示了依據(jù)各個實施例的多面元文檔的示例性分類的接收方面元。接收方面元320包括“去往”(“to”)根322以及四個面元,這四個面元通過接收方Rob、Bob、Bill和Jack(附圖標(biāo)記分別為324、326、328和330)對文檔進(jìn)行歸類。與日期面元120相同,每個節(jié)點可以由序數(shù)進(jìn)行標(biāo)識。文檔Dl-D12(附圖標(biāo)記154-176)利用將文檔連接至與該文檔的接收方相關(guān)聯(lián)的接收方節(jié)點的線條所示出。例如,文檔D8176包含接收方姓名Bill (節(jié)點328)。文檔D8通過線條與節(jié)點328相連接。
[0031]圖1-3圖示了文檔能夠包括在多個面元中。例如,圖1示出了文檔Dl被包括在面元 126 (日期 /2010) >130 ( H 期 /2010/Q1)和 138 (日期 /2010/Q1/ 一月)中。圖 2 示出了文檔DlO被包括在面元230(來自/JACK)中。圖3示出了文檔DlO被包括在面元326 (去往/BOB)中。
[0032]圖5描繪了依據(jù)各個實施例的可以被計算機(jī)系統(tǒng)1100所使用的文檔記錄520。計算機(jī)系統(tǒng)1100參考圖11進(jìn)行描述。針對文檔集合中的每個文檔,系統(tǒng)1100可以具有文檔記錄520。例如,可以針對示例性文檔D1-D12154-176中的每一個創(chuàng)建唯一的文檔記錄520。文檔記錄520可以在新文檔被添加至集合時被創(chuàng)建。在各個實施例中,文檔記錄520包括特定文檔的標(biāo)識符、例如D12,以及與該文檔相關(guān)聯(lián)的各個面元的值。例如,文檔D12包括具有值“Jack”的“來自”面元,具有值“Rob”的“去往”面元,以及具有值“2011/Q3/八月”的“日期”面元。文檔D12可以包括另外的面元。在各個實施例中,文檔記錄520包括與該文檔相關(guān)聯(lián)的面元的相關(guān)信息,其在圖5中被表示為“內(nèi)容”。
[0033]反向索引可以包括用來對文檔集合進(jìn)行歸類的面元的詞表,其在本領(lǐng)域中可以被稱作記錄級反向索引。此外,反向索引可以包括出現(xiàn)在文檔或文檔集合中的各種術(shù)語或短語的詞表,其在本領(lǐng)域中可以被稱作單詞級反向索引。詞表中的術(shù)語可以被稱作“索引術(shù)語”??梢葬槍γ總€索引術(shù)語創(chuàng)建反向列表,即可以針對每個面元、每個術(shù)語或短語或者其二者創(chuàng)建反向列表。索引術(shù)語可以以諸如B樹的數(shù)據(jù)結(jié)構(gòu)進(jìn)行排列。圖1-4是其中索引術(shù)語是面元的樹形結(jié)構(gòu)的示例。反向列表還包括一個或多個發(fā)布,其中每個發(fā)布標(biāo)識集合中的一個或多個文檔。發(fā)布可以包括附加信息。例如,在記錄級反向索引的情況下,發(fā)布可以包括面元中文檔的數(shù)量。在單詞級反向索引的情況下,發(fā)布可以包括文檔中索引術(shù)語的頻率。
[0034]圖6是依據(jù)各個實施例的用于圖4的示例性分類400的示例性記錄級的一維反向索引620。反向索引620將每個面元與示例性文檔集合中的文檔的發(fā)布列表相關(guān)聯(lián)。反向索引620包括單個面元欄,其列出了圖1-3中所圖示面元的每個類別和子類別,即來自、去往和日期。在一個實施例中,反向索引620可以包括另外的面元及其相應(yīng)的類別和子類別,諸如面元404。作為示例,圖6的示例中包括另外的面元“日期/2011/Q4/十一月”。此外,反向索引620包括發(fā)布列表欄。發(fā)布列表中的每個條目標(biāo)識出與特定面元相關(guān)聯(lián)的文檔。例如,“來自/BOB”面元將文檔D6、D7、D8和D9標(biāo)識為與該面元相關(guān)聯(lián)。如果沒有任何與特定面元相關(guān)聯(lián)的文檔,則發(fā)布列表還包括空集指示符H。例如,沒有文檔與“日期/2011/Q4/十一月”面元相關(guān)聯(lián)。
[0035]搜索查詢可以包括一個或多個術(shù)語并且可以包括一個或多個布爾算子。搜索術(shù)語可以是索引術(shù)語或非索引的單詞或短語。搜索查詢中的術(shù)語可以通過將它們鍵入到用戶界面中的搜索框中或搜索行上而被指定。此外,搜索查詢可以通過在用戶界面中選擇索引術(shù)語、例如通過選中與特定面元相關(guān)聯(lián)的框而被指定。
[0036]對搜索查詢進(jìn)行評估的搜索引擎1152(圖11)針對該查詢中所包括的每個索引術(shù)語對反向索引620進(jìn)行一次遍歷。搜索引擎可以從上至下(或者從下至上,或者使用搜索算法)遍歷反向索引620直至找到特定類別或子類別。例如,考慮查詢:“面元:日期/2011/Q3/九月”??梢詮捻敳繉Ψ聪蛩饕?20進(jìn)行遍歷直至找到該面元。該查詢返回文檔D1。
[0037]搜索查詢可以包括兩個或更多面元以及布爾AND算子。具有兩個或更多索引的搜索查詢在該【具體實施方式】和權(quán)利要求中可以被稱作“多面元”搜索查詢。對多面元搜索查詢進(jìn)行評估可以要求對反向索引、諸如索引620進(jìn)行多次遍歷,例如,每次針對一個面元,并且返回多個搜索結(jié)果。此外,對多面元搜索查詢進(jìn)行評估可以要求對所返回的多個搜索結(jié)果執(zhí)行布爾運(yùn)算。例如,考慮搜索查詢:“面元:日期/2010/Q1/二月和面元:來自/BILL”。反向索引620首先被遍歷以獲得與“日期/2010/Q1/二月”面元的條目相關(guān)聯(lián)的文檔{D4、D6、D9}的第一搜索結(jié)果(箭頭624)。接下來對反向索引620進(jìn)行遍歷以獲得與“來自/BILL”面元的條目相關(guān)聯(lián)的文檔{D3、D4、D5}的第二搜索結(jié)果(箭頭622)。對第一和第二搜索結(jié)果應(yīng)用布爾AND算子以獲得兩個搜索結(jié)果的交集并且形成最終搜索結(jié)果{D4}。
[0038]可以預(yù)見到使用反向索引620對多面元搜索查詢進(jìn)行評估所需的處理時間隨著查詢中所包括的索引術(shù)語以及查詢中所包括的布爾運(yùn)算的數(shù)量的增加而增加。通常并不期望用于評估搜索查詢的處理時間過長。
[0039]圖7是依據(jù)各個實施例的用于圖4的示例性分類400的示例性記錄級多維(“MD”)反向索引720。反向索引720將兩個面元與示例性文檔集合中的文檔的發(fā)布列表相關(guān)聯(lián)。MD反向索引720中的每個條目包括列出面元的組合的字段。具體地,該字段列出圖2所示的“來自”面元的各個子類別以及圖1中所示的“日期”面元的類別和子類別。此外,MD反向索引720包括發(fā)布列表字段,其包括標(biāo)識出與面元組合相關(guān)聯(lián)的文檔的文檔標(biāo)識符列表。具體地,該發(fā)布列表字段標(biāo)識出相關(guān)聯(lián)的“來自”和“日期”面元的發(fā)布列表的交集中的文檔。例如,箭頭724標(biāo)識出組合“來自/BILL”和“ H期/2010/Q1/ 二月”的條目。該條目將D4標(biāo)識為與這兩個面元的發(fā)布列表的交集相關(guān)聯(lián)。此外,MD反向索引720中的每個條目可以包括列出定量匯總或者定性匯總的字段(未示出),定量匯總諸如發(fā)布列表中的文檔的字段上的數(shù)字匯總,定性匯總諸如被應(yīng)用于與文檔相關(guān)聯(lián)的元數(shù)據(jù)屬性的算術(shù)或布爾運(yùn)算。
[0040]在各個實施例中,MD反向索引中的每個條目包括將文檔與兩個或更多面元相關(guān)聯(lián)的發(fā)布列表字段。此外,發(fā)布列表中的文檔,如果存在的話,通過成為特定類型的集合的成員而與該條目的兩個或更多相關(guān)聯(lián)面元相關(guān)。例如,對于兩個面元A和B而言:該集合可以是作為與A和B相關(guān)聯(lián)的文檔的交集的集合;該集合可以是作為與A和B相關(guān)聯(lián)的文檔的并集的集合;或者該集合可以是作為與A和B相關(guān)聯(lián)的文檔的對稱差集的集合。因此,在各個實施例中,可以執(zhí)行操作以確定與多面元索引中的特定條目的一個或多個面元的組合中的相應(yīng)面元相關(guān)聯(lián)的文檔。該確定操作可以包括確定文檔與兩個或多個面元中的每個面元相關(guān)聯(lián),即交集。此外,該確定操作可以包括確定文檔與兩個或更多面元中的至少一個面元相關(guān)聯(lián),即并集。另外,該確定操作可以包括確定文檔與兩個或更多面元中的僅一個面元相關(guān)聯(lián),即對稱差集。
[0041]索引720的搜索在列出面元組合的字段上執(zhí)行。由搜索引擎1152使用二維MD反向索引而執(zhí)行的搜索可以在索引頂端(或底部)開始并且進(jìn)行遍歷(或者其它方式的搜索)直至找到與搜索查詢中所指定的“來自”和“日期”面元的索引術(shù)語相匹配的條目。例如,考慮以上反向索引620的示例中所使用的相同的多面元搜索查詢“面元:日期/2010/Ql/二月和面元:來自/BILL”。在圖7中,對MD反向索引720進(jìn)行搜索直至找到與索引術(shù)語“來自/BILL”和“日期/2010/Q1/二月”相匹配的條目(箭頭722)。該搜索返回文檔D4。
[0042]以上關(guān)于圖6的示例說明了示例性多面元搜索查詢需要對反向索引620的兩次搜索,隨后跟有對兩個搜索結(jié)果的布爾運(yùn)算的執(zhí)行。與之相比,以上關(guān)于圖7的示例則說明了相同的示例性多面元搜索查詢需要對MD反向索引720進(jìn)行單次搜索而無需布爾運(yùn)算。無論搜索查詢中包括一個還是兩個索引術(shù)語,預(yù)見到使用MD反向索引720對多面元搜索查詢進(jìn)行評估所需的處理時間都大約為相同數(shù)量的處理時間。此外,預(yù)見到使用MD反向索引720的多面元搜索查詢與使用反向索引620的相同多面元搜索相比會花費較少的處理時間。
[0043]圖8是依據(jù)各個實施例的用于圖4的示例性分類400的示例性記錄級多維(“MD”)反向索引820。反向索引820中的每個條目將兩個面元(“來自”和“去往”)的組合與示例性文檔集合中的文檔的發(fā)布列表相關(guān)聯(lián)。MD反向索引820中的每個條目包括列出這兩個面元的組合的字段。具體地,該字段列出圖2所示的“來自”面元的各個子類別以及圖3所示的“去往”面元的各個子類別。此外,MD反向索引820包括發(fā)布列表字段,其包括標(biāo)識出與面元組合相關(guān)聯(lián)的文檔的文檔標(biāo)識符列表。具體地,該發(fā)布列表字段標(biāo)識出相關(guān)聯(lián)的“來自”和“去往”面元的發(fā)布列表的交集中的文檔。例如,一對面元“來自/ROB”和面元“去往/BILL” (箭頭822)將文檔Dl標(biāo)識為與這兩個面元的發(fā)布列表的交集相關(guān)聯(lián)。此外,MD反向索引820中的每個條目可以包括列出定量匯總或者定性匯總的字段(未示出),定量匯總諸如發(fā)布列表中的文檔的字段上的數(shù)字匯總,定性匯總諸如被應(yīng)用于與文檔相關(guān)聯(lián)的元數(shù)據(jù)屬性的算術(shù)或布爾運(yùn)算。
[0044]索引820的搜索在列出面元組合的字段上執(zhí)行。使用MD反向索引820的多面元搜索查詢可以由搜索引擎1152以與針對MD反向索引720所描述的類似方式來執(zhí)行。例如,考慮具有以下索引術(shù)語的多面元搜索查詢:“面元:去往/ROB和面元:來自/JACK”。作為預(yù)備步驟,該查詢可以被規(guī)范化,以使得索引術(shù)語對應(yīng)于與MD反向索引820的字段中的面元相同的順序。由于搜索查詢首先列出與MD反向索引820的“去往”相對應(yīng)的“去往”面元,所以該搜索查詢可以被如下重新排序:“面元:來自/JACK和面元:去往/R0B”。在圖8中,可以對MD反向索引820進(jìn)行遍歷(或以其它方式搜索)直至找到索引術(shù)語“來自/JACK”和“去往/ROB”。在一個實施例中,遍歷或搜索可以包括使用例如指針、鏈表等的各種方法而跳過一個或多個條目。該搜索返回文檔D2和D12。
[0045]關(guān)于圖8的以上示例說明了一種要求對MD反向索引820進(jìn)行單次搜索且無需布爾運(yùn)算的示例性多面元搜索查詢。無論是考慮到搜索查詢中包括一個還是兩個索引術(shù)語,可以預(yù)見到使用MD反向索引820對多面元搜索查詢進(jìn)行評估所需的處理時間都大約為相同量的處理時間。此外,預(yù)見到使用MD反向索引820的多面元搜索查詢與使用反向索引620的相同多面元搜索相比會花費較少的處理時間。
[0046]圖9是依據(jù)各個實施例的用于圖4的示例性分類400的示例性記錄級多維(“MD”)反向索引920的一部分。反向索引920中的每個條目將三個面元(來自、日期和去往)的組合與示例性文檔集合中的文檔的發(fā)布列表相關(guān)聯(lián)。MD反向索引920包括列出面元組合的字段。具體地,該字段列出圖2所示的“來自”面元的各個子類別、圖1所示的“日期”面元的各個子類別、以及圖3所示的“去往”面元的各個子類別。此外,MD反向索引920包括發(fā)布列表欄,其標(biāo)識出相關(guān)聯(lián)的“來自”、“日期”和“去往”面元的發(fā)布列表的交集中的文檔。例如,來自/BOB、日期/2010/Q1/ 二月和去往/JACK的三元組合的條目(箭頭922)將文檔D6和D9標(biāo)識為與這三個面元的發(fā)布列表的交集相關(guān)聯(lián)。圖9中針對“來自”面元的BOB子類別示出了所有的“日期”和“去往”子類別。然而,圖9中并未示出“來自”面元I的R0B、BILL和JACK的“日期”和“去往”子類別,這是因為雖然MD反向索引920包括這些元素,但是圖中沒有足夠的可用空間。此外,MD反向索引920中的每個條目可以包括列出定量匯總或者定性匯總的字段(未示出),定量匯總諸如發(fā)布列表中的文檔的字段上的數(shù)字匯總,定性匯總諸如被應(yīng)用于與文檔相關(guān)聯(lián)的元數(shù)據(jù)屬性的算術(shù)或布爾運(yùn)算。
[0047]索引920的搜索在列出面元組合的字段上執(zhí)行。使用MD反向索引920的多面元搜索查詢可以由搜索引擎1152以與針對MD反向索引720和820所描述的類似方式來執(zhí)行。例如,考慮具有以下索引術(shù)語的多面元搜索查詢:“面元:來自/BOB和面元:日期/2011/Q4/十二月和面元:去往/BILL”。在圖9中,對MD反向索引920進(jìn)行遍歷(或以其它方式搜索)直至找到與這些索引術(shù)語相匹配的條目(箭頭924)。該搜索返回文檔D8。
[0048]以上關(guān)于圖9的示例說明了一種要求對MD反向索引920進(jìn)行單次搜索且無需布爾運(yùn)算的示例性多面元搜索查詢。無論是考慮到搜索查詢中包括一個還是兩個甚至三個索引術(shù)語,可以預(yù)見到使用MD反向索引920對多面元搜索查詢進(jìn)行評估所需的處理時間都大約為相同量的處理時間。此外,預(yù)見到使用MD反向索引920的多面元搜索查詢與使用反向索引620的相同多面元搜索相比會花費較少的處理時間。
[0049]示例性MD反向索引720、820和920是其中發(fā)布列表標(biāo)識出與MD反向索引中的多個面元中的每個面元的發(fā)布列表的交集相關(guān)聯(lián)的文檔的示例。在備選實施例中,MD反向索引的發(fā)布列表可以標(biāo)識出與MD反向索引中的兩個或更多類別或子類別中的每一個的發(fā)布列表的并集相關(guān)聯(lián)的文檔,即處于任意一個類別或子類別中或者處于多于一個的類別或子類別中的文檔的集合。在又另一個備選實施例中,MD反向索引的發(fā)布列表可以標(biāo)識出與兩個或更多類別或子類別的對稱差集相關(guān)聯(lián)的文檔,即處于類別或子類別之一中但并不處于它們的交集中的文檔集合。
[0050]示例性MD反向索引720、820和920是記錄級反向索引的示例,即索引術(shù)語是面元。在備選實施例中,MD反向索引可以是其中索引術(shù)語是單詞或短語的單詞級反向索引。
[0051]圖10描繪了依據(jù)各個實施例的用于生成MD反向索引的過程1000。到來的文檔由索引構(gòu)建器1150(見圖11)所接收并且一個或多個單維反向索引可以被生成。過程1000以操作1002開始,在操作1002中創(chuàng)建條目。每個條目包括具有兩個或更多面元的組合的字段。在操作1004中,索引構(gòu)建器1150確定哪些文檔與每個條目的兩個或更多面元的組合中的相應(yīng)面元相關(guān)聯(lián)。索引構(gòu)建器在操作1006中針對與每個條目的相應(yīng)面元相關(guān)聯(lián)的文檔創(chuàng)建指示的發(fā)布列表。此外,操作1006可以包括確定與該文檔相關(guān)聯(lián)的定量或定性匯總。該索引構(gòu)建器可以將匯總存儲在條目的匯總字段中。
[0052]圖12描繪了依據(jù)各個實施例的用于執(zhí)行搜索查詢的過程1200。搜索查詢可以包括一個或多個索引術(shù)語。備選地,搜索查詢可以包括一個或多個索引術(shù)語以及一個或多個非索引術(shù)語。在操作1202中,搜索查詢可以由搜索引擎1152所接收。在操作1204中,可以對搜索查詢中的任意索引術(shù)語進(jìn)行規(guī)范化,即重新排序以符合一個或多個MD索引所使用的格式。在操作1206中,可以標(biāo)識一個或多個用于搜索的索引。如果搜索查詢包括單個索引術(shù)語,則可以在操作1206中標(biāo)識出反向索引、諸如反向索引620(圖6)。如果搜索查詢包括兩個或更多的索引術(shù)語,則可以在操作1206中標(biāo)識出MD反向索引、諸如MD反向索引720、820或920(圖7、8或9)。在操作1208中,對所選擇的索引進(jìn)行搜索直至找出匹配。在操作1208中,搜索引擎1152可以向用戶返回搜索結(jié)果。
[0053]過程1200生成可以不包括文檔或者包括一個或多個文檔的搜索結(jié)果。在完成過程1200之后可以對搜索結(jié)果中所找到的任意文檔的內(nèi)容進(jìn)行搜索。作為一個示例,可以針對非索引術(shù)語或短語的出現(xiàn)而對搜索結(jié)果中所找到的文檔進(jìn)行搜索。
[0054]圖11描繪了用于實施各個實施例的示例性計算機(jī)系統(tǒng)1100的高級框圖。本文中所公開的各個實施例的機(jī)制和裝置等同地應(yīng)用于任意適當(dāng)?shù)挠嬎阆到y(tǒng)。計算機(jī)系統(tǒng)1100的主要組件包括一個或多個處理器1102、存儲器1104、終端接口 1112、存儲接口 1114、I/0(輸入/輸出)設(shè)備接口 1116和網(wǎng)絡(luò)接口 1118,所有這些都經(jīng)由存儲器總線1106、1/0總線1108、總線接口單元1109和I/O總線接口單元1110而直接或間接地通信耦合以便進(jìn)行組件間的通信。
[0055]計算機(jī)系統(tǒng)1100可以包含一個或多個通用可編程中央處理單元(CPU)1102A和1102B,它們在本文中被統(tǒng)稱為處理器1102。在一個實施例中,計算機(jī)系統(tǒng)1100可以包含多個處理器;然而,在另一個實施例中,計算機(jī)系統(tǒng)1100備選地可以為單CPU系統(tǒng)。每個處理器1102執(zhí)行存儲在存儲器1104中的指令并且可以包括一個或多個級別的機(jī)載高速緩存。
[0056]在一個實施例中,存儲器1104可以包括用于存儲或編碼數(shù)據(jù)和程序的隨機(jī)訪問半導(dǎo)體存儲器、存儲設(shè)備或存儲介質(zhì)(易失性或非易失性)。在另一個實施例中,存儲器1104表示計算機(jī)系統(tǒng)1100的整個虛擬存儲器,并且還可以包括耦合至計算機(jī)系統(tǒng)1100或經(jīng)由網(wǎng)絡(luò)連接的其它計算機(jī)系統(tǒng)的虛擬存儲器。存儲器1104在概念上是單個單片電路實體,但是在其它實施例中,存儲器1104是更為復(fù)雜的部署形式,諸如高速緩存和其它存儲器設(shè)備的層級。例如,存儲器可以存在于多級高速緩存中,并且這些高速緩存可以進(jìn)一步以功能進(jìn)行劃分,從而使得一個高速緩存保存指令而另一個則保存由一個或多個處理器所使用的非指令數(shù)據(jù)。如在各種所謂非統(tǒng)一存儲器方位(NUMA)計算機(jī)架構(gòu)中的任意架構(gòu)中所已知的,存儲器可以進(jìn)一步分布并且與不同CPU或CPU集合相關(guān)聯(lián)。
[0057]存儲器1104可以存儲以下的全部或部分:索引構(gòu)建器1150、搜索引擎1152、索引庫1154和文檔庫1156。這些程序和數(shù)據(jù)結(jié)構(gòu)被圖示為包括在計算機(jī)系統(tǒng)1100的存儲器1104內(nèi),然而在其它實施例中,它們中的一些或全部可以處于不同計算機(jī)系統(tǒng)上并且例如可以經(jīng)由網(wǎng)絡(luò)而被遠(yuǎn)程訪問。計算機(jī)系統(tǒng)1100可以使用虛擬尋址機(jī)制,其允許計算機(jī)系統(tǒng)1100的程序表現(xiàn)為如同它們具有對大型的單個存儲實體進(jìn)行訪問而不是對多個較小的存儲實體的訪問。因此,雖然索引構(gòu)建器1150、搜索引擎1152、索引庫1154和文檔庫1156被圖示為被包括在存儲器1104內(nèi),但是這些組件并非必然都完全同時被包含在相同的存儲設(shè)備之中。另外,雖然索引構(gòu)建器1150、搜索引擎1152、索引庫1154和文檔庫1156被圖示為單獨的實體,但是在其它實施例中,它們中的一些、它們中的一些的一部分或者它們中的全部都可以被封裝在一起。
[0058]在一個實施例中,索引構(gòu)建器1150和搜索引擎1152可以包括在處理器1102上執(zhí)行的指令或語句或者由在處理器1102上執(zhí)行的指令或語句所解釋的指令或語句以執(zhí)行如以下進(jìn)一步描述的功能。在另一個實施例中,替代基于處理器的系統(tǒng)或者除此之外,索引構(gòu)建器1150和搜索引擎1152經(jīng)由半導(dǎo)體器件、芯片、邏輯門、電路、電路卡和/或其它物理硬件設(shè)備而以硬件實施。在一個實施例中,除指令和語句之外,索引構(gòu)建器1150和搜索引擎1152可以包括數(shù)據(jù)。
[0059]根據(jù)各個實施例,索引構(gòu)建器1150可以包括生成一個或多個MD反向索引的各種處理。根據(jù)各個實施例,搜索引擎1152可以包括對反向索引或MD反向索引進(jìn)行搜索的各種處理。根據(jù)各個實施例,索引庫1154可以包括一個或多個反向索引以及一個或多個MD反向索引。例如,索引庫1154可以包括反向索引620以及MD反向索引720、820、920。此外,文檔庫可以包括兩個或更多文檔。例如,文檔庫1156可以包括文檔D1-D12。
[0060]計算機(jī)系統(tǒng)1100可以包括總線接口單元1109,以對處理器1102、存儲器1104、顯示系統(tǒng)1124和I/O總線接口單元1110之間的通信進(jìn)行處理。I/O總線接口單元1110可以與I/O總線1108相耦合,以便往來于各種I/O單元傳輸數(shù)據(jù)。I/O總線接口單元1110通過I/O總線1108與多個I/O接口單元1112、1114、1116和1118進(jìn)行通信,它們也被稱作I/O處理器(1P)或I/O適配器(1A)。顯示系統(tǒng)1124可以包括顯示控制器、顯示存儲器或其二者。顯示控制器可以向顯示設(shè)備1126提供視頻、音頻或這兩種類型的數(shù)據(jù)。顯示存儲器可以是用于緩沖視頻數(shù)據(jù)的專用存儲器。顯示系統(tǒng)1124可以與顯示設(shè)備1126進(jìn)行耦合,顯示設(shè)備1126諸如獨立顯示屏、計算機(jī)監(jiān)視器、電視或者平板或手持設(shè)備顯示器。在一個實施例中,顯示設(shè)備1126可以包括一個或多個用于呈現(xiàn)音頻的揚(yáng)聲器。備選地,一個或多個用于呈現(xiàn)音頻的揚(yáng)聲器可以與I/O接口單元相耦合。在備選實施例中,顯示系統(tǒng)1124所提供的一個或多個功能可以承載在還包括處理器1102的集成電路上。此外,總線接口單元1109所提供的一個或多個功能可以承載在還包括處理器1102的集成電路上。
[0061]I/O接口單兀支持與各種存儲和I/O設(shè)備的通彳目。例如,終纟而接口單兀1112支持一個或多個用戶I/o設(shè)備1120的接合,后者可以包括用戶輸出設(shè)備(諸如視頻顯示設(shè)備、揚(yáng)聲器和/或電視機(jī))和用戶輸入設(shè)備(諸如鍵盤、鼠標(biāo)、小鍵盤、觸摸板、軌跡球、按鈕、光筆或其它指示設(shè)備)。用戶可以使用用戶界面對用戶輸入設(shè)備進(jìn)行操控以便向用戶I/O設(shè)備1120和計算機(jī)系統(tǒng)1100提供輸入數(shù)據(jù)和命令,并且可以經(jīng)由用戶輸出設(shè)備接收輸出數(shù)據(jù)。例如,用戶界面可以經(jīng)由用戶I/O設(shè)備1120所呈現(xiàn),諸如在顯示設(shè)備上進(jìn)行顯示、經(jīng)由揚(yáng)聲器播放或者經(jīng)由打印機(jī)進(jìn)行打印。
[0062]存儲接口 1114支持一個或多個磁盤驅(qū)動器或直接訪問存儲設(shè)備1122(其通常為旋轉(zhuǎn)的磁盤驅(qū)動器存儲設(shè)備,雖然它們備選地可以是其它存儲設(shè)備,包括被配置為針對主機(jī)計算機(jī)表現(xiàn)為單個大型存儲設(shè)備的磁盤驅(qū)動器陣列、或者諸如閃存的固態(tài)驅(qū)動器)的接合。在另一個實施例中,存儲設(shè)備1122可以經(jīng)由任意類型的二級存儲設(shè)備來實施。存儲器1104的內(nèi)容或者其任意部分可以按照需要被存儲到存儲設(shè)備1122或者從其獲取。I/O設(shè)備接口 1116針對任意的各種其它I/O設(shè)備或者諸如打印機(jī)或傳真機(jī)的其它類型的設(shè)備提供接口。網(wǎng)絡(luò)接口 1118提供從計算機(jī)1100到其它數(shù)字設(shè)備和計算機(jī)系統(tǒng)的一條或多條通信路徑;這些通信路徑例如可以包括一個或多個網(wǎng)絡(luò)。
[0063]雖然圖11所示的計算機(jī)系統(tǒng)1100圖示了在處理器1102、存儲器1104、總線接口1109、顯示系統(tǒng)1124和I/O總線接口單元1110之間提供直接通信路徑的特定總線結(jié)構(gòu),但是在備選實施例中,計算機(jī)系統(tǒng)1100可以包括不同的總線或通信路徑,它們可以以任意的各種形式進(jìn)行部署,諸如層級、星形或網(wǎng)狀配置中的點對點鏈接、多層總線、并行和冗余路徑,或者任意其它適當(dāng)類型的配置。此外,雖然I/o總線接口單元1110和I/O總線1108被示為單個相應(yīng)單元,但是計算機(jī)系統(tǒng)1100實際上可以包含多個I/O總線接口單元1110和/或多個I/o總線1108。雖然示出了將I/O總線1108與延伸至各個I/O設(shè)備的各種通信路徑分隔開來的多個I/o接口單元,但是在其它實施例中,一些或所有I/O設(shè)備直接連接至一個或多個系統(tǒng)i/o總線。
[0064]在各個實施例中,計算機(jī)系統(tǒng)1100是多用戶大型計算機(jī)系統(tǒng)、單用戶系統(tǒng),或者具有很少或沒有直接用戶界面但是從其它計算機(jī)系統(tǒng)(客戶端)接收請求的服務(wù)器計算機(jī)或類似設(shè)備。在其它實施例中,計算機(jī)系統(tǒng)1100可以被實施為臺式計算機(jī)、便攜式計算機(jī)、膝上或筆記本計算機(jī)、平板計算機(jī)、便攜式計算機(jī)、電話、智能電話或者任意其它適當(dāng)類型的電子設(shè)備。
[0065]圖11意在描繪出計算機(jī)系統(tǒng)1100的代表性的主要組件。然而,個體組件可以比圖11所表示的具有更大復(fù)雜度,可以存在于圖11所示的那些不同或者除那些之外的組件,并且這樣的組件的數(shù)量、類型和配置可以有所變化。本文公開的附加復(fù)雜度或附加變化形式的若干特定示例;這些僅是作為示例而并非必然僅為這樣的變化。在各個實施例中,圖11所示的各種程序組件可以以多種不同方式來實施,包括使用各種計算機(jī)應(yīng)用、例程、組件、程序、對象、模塊、數(shù)據(jù)結(jié)構(gòu)等,它們在本文中可以被稱作“軟件”、“計算機(jī)程序”或者簡單地被稱作“程序”。
[0066]在上文中,對各個實施例進(jìn)行了參考。然而,應(yīng)當(dāng)理解的是,本公開并不局限于具體描述的實施例。相反,無論是否涉及不同實施例,所描述特征和要素的任意組合都被預(yù)期為對本公開加以實施和實踐。許多修改和變化對于本領(lǐng)域技術(shù)人員而言將是顯而易見的而并不背離所描述實施例的范圍和精神。此外,雖然本公開的實施例可以實現(xiàn)優(yōu)于其它可能的解決方案或優(yōu)于現(xiàn)有技術(shù)的優(yōu)勢,但是給定實施例是否實現(xiàn)特定優(yōu)勢并不為本公開所限制。因此,所描述的方面、特征、實施例和優(yōu)勢僅是說明性的而并非被認(rèn)為是所附權(quán)利要求的要素或限制,除非在(多個)權(quán)利要求中被明確引用。
[0067]如本領(lǐng)域技術(shù)人員將會意識到的,本公開的各方面可以被體現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本公開的各方面可以采用完全硬件的實施例、完全軟件的實施例(包括固件、駐留軟件、微代碼等)或者在本文中全部都被統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”的將軟件和硬件方面相結(jié)合的實施例的形式。此外,本公開的各方面可以采取體現(xiàn)在具有記錄于其上的計算機(jī)可讀程序代碼的一個或多個計算機(jī)可讀介質(zhì)之中的計算機(jī)程序產(chǎn)品的形式。
[0068]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者它們的任意適當(dāng)組合,但是并不局限于此。計算機(jī)可讀存儲介質(zhì)的更為具體的示例(非窮舉的列表)將包括以下:具有一個或多個連線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊密盤只讀存儲器(CD-ROM)、光學(xué)存儲設(shè)備、磁性存儲設(shè)備或者其任意適當(dāng)組合。在本公開的上下文中,計算機(jī)可讀存儲介質(zhì)可以是能夠包含或存儲程序以便由指令執(zhí)行系統(tǒng)、裝置或設(shè)備所適用或者結(jié)合它們使用的任意有形介質(zhì)。
[0069]計算機(jī)可讀信號介質(zhì)可以包括具有例如在基帶中或作為載波的一部分而記錄于其中的計算機(jī)可讀程序代碼的傳播數(shù)據(jù)信號。這樣的傳播信號可以采用各種形式,包括但并不局限于電磁、光學(xué)或者其任意適當(dāng)組合。計算機(jī)可讀信號介質(zhì)可以是并非計算機(jī)可讀存儲介質(zhì)并且能夠通信、傳播或傳輸程序以便由指令執(zhí)行系統(tǒng)、裝置或設(shè)備所適用或者結(jié)合它們使用的任意計算機(jī)可讀介質(zhì)。
[0070]記錄在計算機(jī)可讀介質(zhì)上的程序代碼可以使用任意適當(dāng)介質(zhì)進(jìn)行傳送,包括但并不局限于無線、有線、光纖線纜、RF等它們的任意適當(dāng)組合。
[0071]用于執(zhí)行本公開各方面的操作的計算機(jī)程序代碼可以以一種或多種編程語言的任意組合進(jìn)行編寫,包括:諸如Java、Smalltalk、C++等的面向?qū)ο缶幊陶Z言;以及諸如“C”編程語言或類似編程語言的常規(guī)過程編程語言。程序代碼可以如本文中所具體描述的那樣執(zhí)行。此外,程序代碼可以完全在觀看者的計算機(jī)上執(zhí)行,作為獨立軟件包部分在觀看者的計算機(jī)上執(zhí)行,部分在觀看者的計算機(jī)上執(zhí)行且部分在遠(yuǎn)程計算機(jī)上執(zhí)行,或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在后一種情況下,遠(yuǎn)程計算機(jī)可以通過任意類型的網(wǎng)絡(luò)連接至觀看這的計算機(jī),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者可以(例如,使用互聯(lián)網(wǎng)服務(wù)提供商而通過互聯(lián)網(wǎng))形成到外部計算機(jī)的連接。
[0072]已經(jīng)根據(jù)本公開的實施例參考方法、裝置(系統(tǒng))和計算機(jī)程序的流程圖、框圖或者其二者對本公開的各方面進(jìn)行了描述。將要理解的是,流程圖圖示或框圖中的每個框以及流程圖圖示或框圖中框的組合可以由計算機(jī)程序指令來實施。這些計算機(jī)程序指令可以被提供至通用計算機(jī)、專用計算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器以生產(chǎn)機(jī)器,而使得經(jīng)由計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令形成用于實施流程圖或框圖的一個或多個框中所指定的功能或動作的器件。
[0073]這些計算機(jī)程序指令還可以存儲在計算機(jī)可讀介質(zhì)中,其能夠指示計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備已特定方式進(jìn)行工作而使得存儲在計算機(jī)可讀介質(zhì)中的指令產(chǎn)生包括實施流程圖或框圖的一個或多個框中所指定的功能或動作的指令的制造品。
[0074]計算機(jī)程序指令還可以被加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上以使得在該計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,而使得在該計算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實施流程圖或框圖的一個或多個框中所指定的功能或動作的處理。
[0075]根據(jù)本公開的實施例可以通過云計算架構(gòu)而被提供至終端用戶。云計算通常是指提供可擴(kuò)展的計算資源作為網(wǎng)絡(luò)上的服務(wù)。更正式地,云計算可以被定義為在計算資源及其基本技術(shù)架構(gòu)(例如,服務(wù)器、存儲、網(wǎng)絡(luò))之間提供抽象概念,支持針對可配置計算資源的共享池的方便的按需網(wǎng)絡(luò)訪問的計算能力,上述可配置計算資源能夠以最少的管理工作或服務(wù)提供商交互快速提供和發(fā)布。因此,云計算允許用戶訪問“云”中的虛擬計算資源(例如,存儲、數(shù)據(jù)、應(yīng)用甚至虛擬化的計算系統(tǒng)),而不考慮用來提供該計算資源的基本物理系統(tǒng)(或者那些系統(tǒng)的位置)。
[0076]通常,云計算資源以按使用付費的基礎(chǔ)被提供至用戶,其中用戶進(jìn)針對實際使用的計算資源而被收費(例如,用戶所使用的存儲空間數(shù)量或者用戶所例示的虛擬化系統(tǒng)的數(shù)量)。用戶能夠互聯(lián)網(wǎng)在任意時間以及從任意地方訪問存在于云中的任意資源。在本公開的上下文中,用戶可以訪問云中可用的應(yīng)用或相關(guān)數(shù)據(jù)。例如,用來創(chuàng)建流計算應(yīng)用的節(jié)點可以是云服務(wù)提供商所運(yùn)營的虛擬機(jī)。這樣做允許用戶從附接到與云相連接的網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))的任意計算系統(tǒng)訪問該信息。
[0077]附圖中的流程圖和框圖圖示了根據(jù)本公開各個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能的實施方式的架構(gòu)、功能和操作。就此而言,流程圖或框圖中的每個框可以表示代碼的模塊、分段或部分,其包括用于實施所指定的(多個)邏輯功能的一個或多個可執(zhí)行指令。還應(yīng)當(dāng)注意的是,在一些備選實施方式中,框中所提到的功能可以以不同于圖中所提到的順序而進(jìn)行。例如,根據(jù)所涉及的功能,連續(xù)示出的兩個框?qū)嶋H上可以基本上同時執(zhí)行,或者這些框有時可以以相反順序來執(zhí)行。還將要注意的是,框圖或流程圖的每個框以及框圖或流程圖中框的組合能夠由執(zhí)行指定功能或動作的專用的基于硬件的系統(tǒng)來實施,或者由專用硬件和計算機(jī)指令的組合來實施。
[0078]雖然上文涉及到示例性實施例,但是可以設(shè)計出本發(fā)明的其它和另外的實施例而并不背離其基本范圍,并且其范圍由隨后的權(quán)利要求所限定。
【權(quán)利要求】
1.一種搜索的方法,包括: 接收查詢,所述查詢包括針對文檔集合的多維反向索引的兩個或更多面元,每個文檔與至少一個面元相關(guān)聯(lián); 其中所述多維反向索引通過以下而生成: 創(chuàng)建一個或多個條目,每個條目包括兩個或更多面元的組合, 確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔,以及針對與每個條目的相應(yīng)面元相關(guān)聯(lián)的所述文檔而創(chuàng)建指示的發(fā)布列表,每個指示標(biāo)識一個文檔; 針對具有所述查詢中所包括的兩個或更多面元的所述組合的條目而搜索所述多維反向索引;以及 返回搜索結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔與所述兩個或更多面元中的每個面元相關(guān)聯(lián)。
3.根據(jù)權(quán)利要求1所述的方法,其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔與所述兩個或更多面元中的至少一個面元相關(guān)聯(lián)。
4.根據(jù)權(quán)利要求1所述的方法,其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔與所述兩個或更多面元中的僅一個面元相關(guān)聯(lián)。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括:基于所述查詢中所包括的所述兩個或更多面元而從針對所述文檔集合的第一和第二多維反向索引中選擇針對所述文檔集合的所述多維反向索引。
6.根據(jù)權(quán)利要求1所述的方法,其中所述多維反向索引中的所述一個或多個條目中的至少一個條目在接收所述查詢之前被生成。
7.一種用于搜索的系統(tǒng),包括: 索引構(gòu)建器,用于通過以下而生成針對文檔集合的多維反向索引,每個文檔與至少一個面元相關(guān)聯(lián): 創(chuàng)建一個或多個條目,每個條目包括兩個或更多面元的組合, 確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔,以及針對與每個條目的相應(yīng)面元相關(guān)聯(lián)的所述文檔而創(chuàng)建指示的發(fā)布列表,每個指示標(biāo)識一個文檔;以及 搜索引擎,用于: 接收包括所述多維反向索引的兩個或更多面元的查詢, 針對具有所述查詢中所包括的兩個或更多面元的所述組合的條目而搜索所述多維反向索弓丨,以及 返回搜索結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔與所述兩個或更多面元中的每個面元相關(guān)聯(lián)。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔與所述兩個或更多面元中的至少一個面元相關(guān)聯(lián)。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其中確定與每個條目的兩個或更多面元的所述組合中的相應(yīng)面元相關(guān)聯(lián)的文檔包括:確定第一文檔僅與所述兩個或更多面元中的一個面元相關(guān)聯(lián)。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述搜索引擎基于所述查詢中所包括的兩個或更多面元而從針對所述文檔集合的第一和第二多維反向索引中選擇針對所述文檔集合的所述多維反向索引。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述索引構(gòu)建器在接收所述查詢之前生成所述多維反向索引中的所述一個或多個條目中的至少一個。
【文檔編號】G06F17/30GK104239395SQ201410280881
【公開日】2014年12月24日 申請日期:2014年6月20日 優(yōu)先權(quán)日:2013年6月21日
【發(fā)明者】R·A·安巴斯塔, B·加尼施, P·S·戈克哈勒, C·賈因 申請人:國際商業(yè)機(jī)器公司