專利名稱:寬松的過濾設(shè)置的制作方法
寬松的過濾設(shè)置背景大多數(shù)現(xiàn)行的搜索引擎使用基于關(guān)鍵字的搜索以在萬維網(wǎng)(web)上定位網(wǎng)頁或在線信息。搜索引擎使用web爬行器來遍歷在線網(wǎng)頁并將網(wǎng)頁的內(nèi)容歸類成倒排索引。倒排索引是一種索引數(shù)據(jù)結(jié)構(gòu),其存儲(chǔ)了關(guān)鍵字到已被web爬行器定位了關(guān)鍵字的在線文檔的映射關(guān)系。倒排索引中的條目包括關(guān)鍵字和含有感興趣的關(guān)鍵字的文檔的列表。當(dāng)用戶向搜索引擎發(fā)出諸如“dentists in Seattle Washington”(華盛頓州西雅圖市內(nèi)的牙醫(yī)) 之類的查詢時(shí),搜索引擎能通過查找倒排索引來快速地檢索出包含這四個(gè)關(guān)鍵字的在線文檔的列表。大多數(shù)基于關(guān)鍵字的搜索引擎按如下假設(shè)操作用戶僅意在尋找含有所有搜索項(xiàng)的文檔。傳統(tǒng)搜索引擎通過定位含有所提交的每一個(gè)關(guān)鍵字的文檔來應(yīng)答提交的查詢。 這一般被稱為“基于“與”的搜索”。然而當(dāng)用戶通過包含不必要的項(xiàng)來過度指定查詢時(shí), 未含有一個(gè)或多個(gè)額外項(xiàng)的相關(guān)文檔不能被定位到。在上述例子中,倒排索引可能僅僅指定包含關(guān)鍵字“dentists”(牙醫(yī))和“Seattle”(西雅圖市)但不包含“in” (內(nèi)的)和 “Washington”(華盛頓州)的文檔。因此,搜索引擎將不返回不包括以上全部四個(gè)關(guān)鍵字的文檔。概述提供此概述以便以簡(jiǎn)化的形式介紹在以下的詳細(xì)描述中進(jìn)一步描述的一些概念。 此概述并不意在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不是意在被用于幫助確定所要求保護(hù)的主題的范圍。本發(fā)明的一個(gè)方面涉及定位滿足搜索引擎查詢中的單詞的子集的web文檔。一旦用戶將查詢提交給搜索引擎,搜索引擎將查詢解析為關(guān)鍵字并確定web爬行器是否在任何在線文檔中找到這些關(guān)鍵字的子集。為了這樣做,搜索引擎可對(duì)照web爬行器找到的項(xiàng)的倒排索引查詢單詞,并檢查在其中找到這些項(xiàng)的文檔。還有,搜索引擎查詢中的一些關(guān)鍵字可被指定為“非寬松”關(guān)鍵字。非寬松關(guān)鍵字,如果被指定的話,必須被包含在被標(biāo)識(shí)為匹配查詢的任何文檔中。搜索引擎在搜索結(jié)果列表中返回標(biāo)識(shí)出的文檔。本發(fā)明的另一個(gè)方面涉及被配置成返回上述搜索結(jié)果列表的服務(wù)器。所述服務(wù)器被配置成從客戶機(jī)計(jì)算設(shè)備接收搜索引擎查詢,將所述查詢解析為關(guān)鍵字,搜索倒排索引以確定是否有任何文檔包含這些關(guān)鍵字的子集。所述服務(wù)器還可被配置成僅定位還包含任何非寬松關(guān)鍵字的文檔。附圖的若干視圖的簡(jiǎn)述下文參考附圖詳細(xì)描述本發(fā)明,其中
圖1是根據(jù)一個(gè)實(shí)施例的示例性計(jì)算設(shè)備的框圖;圖2是根據(jù)一個(gè)實(shí)施例的倒排索引的表格表示的示圖;圖3A是根據(jù)一個(gè)實(shí)施例的在搜索引擎上執(zhí)行寬松搜索(relaxed searching)的聯(lián)網(wǎng)環(huán)境的框圖;圖;3B示出根據(jù)一個(gè)實(shí)施例的在配置成執(zhí)行寬松搜索的聯(lián)網(wǎng)環(huán)境上的框圖和信息
4流;圖4是示出根據(jù)一個(gè)實(shí)施例的在搜索引擎上執(zhí)行寬松搜索的步驟的流程圖;以及圖5是根據(jù)一個(gè)實(shí)施例的來自執(zhí)行寬松搜索的搜索引擎的搜索結(jié)果列表的示圖。詳細(xì)描述此處描述的主題用具體細(xì)節(jié)來呈現(xiàn)以滿足法定要求。然而,此處的描述并不意在限制本專利的范圍。相反,可以理解的是所要求保護(hù)的主題還可以結(jié)合其他當(dāng)前或?qū)淼募夹g(shù)以其他方式實(shí)現(xiàn),以包括與本文檔中所述的步驟不同的步驟或與本文檔中所述的步驟類似的步驟的組合。另外,盡管此處可使用術(shù)語“框”來指示所用方法的不同元素,但該術(shù)語不應(yīng)該被理解為意味著此處所公開的各步驟之中或之間的任何特定順序。一般來說,此處描述的實(shí)施例涉及搜索引擎,該搜索引擎通過標(biāo)識(shí)僅包含用戶提交的關(guān)鍵字的子集的文檔來為搜索引擎查詢創(chuàng)建結(jié)果列表。在一個(gè)實(shí)施例中,一旦用戶提交搜索引擎查詢,搜索引擎在倒排索引中檢查以定位含有該查詢中的每個(gè)單獨(dú)的關(guān)鍵字的文檔。然后,為每個(gè)單詞而被標(biāo)識(shí)的文檔可被比較,以查看該文檔是否包含任何其他關(guān)鍵字。只有包含了關(guān)鍵字的子集的文檔才會(huì)被標(biāo)識(shí)用于結(jié)果列表。關(guān)鍵字的子集相當(dāng)于關(guān)鍵字總數(shù)(N)減去小于N的給定數(shù)字(K),產(chǎn)生N-K個(gè)單詞長(zhǎng)度的子集。例如,如果查詢包含 "Seattle dentists in Washington”,且K等于1,那么文檔將僅需要上述單詞中的任意三個(gè)單詞以被包括在結(jié)果列表上。K可以任何數(shù)字變化,且可要么由搜索引擎的管理者設(shè)定, 要么由搜索引擎使用已知的試探法來設(shè)定。為簡(jiǎn)明起見,N減去K在此處用N-K表示。在替代實(shí)施例中,搜索引擎可被配置成僅搜索包含N個(gè)單詞的給定查詢中更少數(shù)量的單詞(M)的web文檔,M<N。例如,還看上述查詢,在這個(gè)實(shí)施例中搜索引擎可被配置成搜索含有“Seattle",“dentists",“ in"和“Washington,,以中的任意兩個(gè)或三個(gè)單詞的文檔。因此,在這個(gè)實(shí)施例中,該查詢的任M個(gè)單詞可在web文檔上進(jìn)行匹配。如此處所討論的,搜索引擎查詢是指搜索引擎進(jìn)行對(duì)Web的任何關(guān)鍵字。web搜索查詢可用本領(lǐng)域技術(shù)人員所熟知的任何數(shù)量的方式來發(fā)起。例如,用戶可在搜索引擎的網(wǎng)頁上的文本域或者網(wǎng)頁瀏覽器的工具欄的文本域中輸入關(guān)鍵字或短語。對(duì)于本領(lǐng)域的技術(shù)人員而言,顯然用于發(fā)起搜索引擎查詢的眾多方式也都是可能的且不必在此具體討論。盡管此處討論的實(shí)施例涉及經(jīng)由因特網(wǎng)訪問網(wǎng)頁,但是其他實(shí)施例可經(jīng)專用網(wǎng)絡(luò)來訪問電子文檔。在一個(gè)實(shí)施例中,本發(fā)明采用計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)程序產(chǎn)品包括在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上具體化的計(jì)算機(jī)可用指令。計(jì)算機(jī)可讀介質(zhì)包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì),且考慮了可由數(shù)據(jù)庫、交換機(jī)和各種其他網(wǎng)絡(luò)設(shè)備讀取的介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)或機(jī)器可讀介質(zhì)包括以用于存儲(chǔ)信息的各種方法或技術(shù)實(shí)現(xiàn)的介質(zhì)。存儲(chǔ)的信息的例子包括計(jì)算機(jī)可用指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)表示。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、獨(dú)立于諸如緊致盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(DVD),全息介質(zhì)或其他光盤介質(zhì)、磁帶盒、磁帶、 磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備等不同存儲(chǔ)介質(zhì)或結(jié)合這些不同存儲(chǔ)介質(zhì)使用的閃存。這些存儲(chǔ)器組件可瞬時(shí)地、暫時(shí)地或永久地存儲(chǔ)數(shù)據(jù)。
已經(jīng)簡(jiǎn)要地描述了此處描述的實(shí)施例的一般概覽,下面描述示例性操作環(huán)境。首先具體參看圖1,用于實(shí)現(xiàn)一個(gè)實(shí)施例的示例性操作環(huán)境被示出并總地指定為為計(jì)算設(shè)備 100。計(jì)算設(shè)備100僅是合適的計(jì)算環(huán)境的一個(gè)示例,并不意在對(duì)本發(fā)明的使用或功能范圍做任何限定。計(jì)算設(shè)備100也不能被解釋為具有對(duì)與所示的任何一個(gè)組件或其組合有關(guān)的任何依賴性或要求。在一個(gè)實(shí)施例中,計(jì)算設(shè)備100是個(gè)人計(jì)算機(jī)。不過在其他實(shí)施例中, 計(jì)算設(shè)備100可以是蜂窩電話、智能電話、數(shù)字電話、手持設(shè)備、黑莓 、個(gè)人數(shù)字助理(PDA) 或者能執(zhí)行計(jì)算機(jī)指令的其他設(shè)備??稍诎ㄖT如程序模塊之類的由計(jì)算機(jī)或諸如PDA或其他手持設(shè)備之類的其他機(jī)器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)代碼或機(jī)器可用指令的一般上下文中描述各實(shí)施例。一般而言,包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等的程序模塊指的是執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的代碼。此處描述的各實(shí)施例可以在各種系統(tǒng)配置中實(shí)現(xiàn),包括手持設(shè)備、消費(fèi)電子產(chǎn)品、通用計(jì)算機(jī)、更專用計(jì)算設(shè)備等。此處描述的實(shí)施例還可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。繼續(xù)參看圖1,計(jì)算設(shè)備100包括直接或間接耦合下列設(shè)備的總線110 存儲(chǔ)器 112、一個(gè)或多個(gè)處理器114、一個(gè)或多個(gè)呈現(xiàn)組件116、輸入/輸出端口 118、輸入/輸出組件120、以及說明性電源122。總線110可代表一個(gè)或多個(gè)總線(如地址總線、數(shù)據(jù)總線或者其結(jié)合)。盡管為簡(jiǎn)潔起見,圖1的各框用線示出,但實(shí)際上,各組件的劃分并不如此清楚,且比喻性地來說,這些線條更確切而言是灰色的和模糊的。例如,可以將諸如顯示設(shè)備等呈現(xiàn)組件認(rèn)為是I/O組件。還有,處理器帶有存儲(chǔ)器。本領(lǐng)域的技術(shù)人員將理解,這是本領(lǐng)域的本質(zhì),且如之前所提到的,圖1的示圖僅示出能與本發(fā)明的一個(gè)或多個(gè)實(shí)施例結(jié)合使用的示例性計(jì)算設(shè)備。在諸如“工作站”、“服務(wù)器”、“膝上型計(jì)算機(jī)”、“手持式設(shè)備”等分類之間并不做區(qū)分,因?yàn)樗羞@些都被考慮在圖1的范圍內(nèi)且稱為“計(jì)算設(shè)備”。計(jì)算設(shè)備100—般包括各種計(jì)算機(jī)可讀介質(zhì)。作為示例但非限制,計(jì)算機(jī)可讀介質(zhì)可包括隨機(jī)存取存儲(chǔ)器(RAM);只讀存儲(chǔ)器(ROM);電可擦除可編程只讀存儲(chǔ)器 (EEPROM);閃存或其他存儲(chǔ)器技術(shù);⑶-ROM、數(shù)字多功能盤(DVD)或其他光或全息介質(zhì);磁帶盒、磁帶、磁盤存儲(chǔ)器或其他磁存儲(chǔ)設(shè)備;載波或可用于對(duì)所需要的信息編碼且能被計(jì)算設(shè)備100訪問的其他介質(zhì)。存儲(chǔ)器112包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。存儲(chǔ)器可以是可移動(dòng)的、不可移動(dòng)的或其組合。示例性硬件設(shè)備包括固態(tài)存儲(chǔ)器、硬盤驅(qū)動(dòng)器、高速緩存、光盤驅(qū)動(dòng)器等。計(jì)算設(shè)備100包括從諸如存儲(chǔ)器112或I/O組件120之類的各種實(shí)體讀取數(shù)據(jù)的一個(gè)或多個(gè)處理器。呈現(xiàn)組件116將數(shù)據(jù)指示呈現(xiàn)給用戶或其他設(shè)備。示例性呈現(xiàn)組件包括顯示設(shè)備、揚(yáng)聲器、打印組件、振動(dòng)組件等。I/O端口 118允許計(jì)算設(shè)備100邏輯地耦合到包括I/O組件120的其他設(shè)備,其中一些可以是內(nèi)置的。說明性的組件包括話筒、操縱桿、游戲墊、圓盤衛(wèi)星天線、掃描儀、打印機(jī)、無線設(shè)備等。在進(jìn)一步繼續(xù)之前,應(yīng)定義一些關(guān)鍵單詞和短語。正如上文提到的,“倒排索引” 是一種索引數(shù)據(jù)結(jié)構(gòu),它包括web爬行器所標(biāo)識(shí)的關(guān)鍵字到在線文檔的映射。圖2是根據(jù)本發(fā)明的一實(shí)施例的倒排索引的表格表示的示圖。關(guān)鍵字KWl-KWn被web爬行器注意到在文檔Dl-Dn中。如圖2所示,“X"表示web爬行器在其中找到特定關(guān)鍵字的文檔Dl-Dn。因此,Kffl包含在Dl、D2、D4和Dn中。當(dāng)然,圖2中的表格僅示出倒排索引的圖表化表示, 因?yàn)楸绢I(lǐng)域的技術(shù)人員將理解到實(shí)際的倒排索引可能并不被實(shí)際上存儲(chǔ)為表格。當(dāng)應(yīng)用此處描述的實(shí)施例時(shí),搜索引擎使用倒排索引來標(biāo)識(shí)包含提交的搜索查詢中的關(guān)鍵字的文檔。包含查詢中的關(guān)鍵字的子集的文檔被返回給進(jìn)行提交的用戶。例如, 如果查詢包含關(guān)鍵字KW1-KW6且子集被設(shè)定為N-I個(gè)單詞(即只需要在文檔中有6個(gè)單詞中的5個(gè)),那么只有D2將被返回。另外,倒排索引存儲(chǔ)了包含特定關(guān)鍵字的文檔的位置。倒排索引還可被配置成存儲(chǔ)與關(guān)鍵字相關(guān)或與文檔相關(guān)的附加信息。對(duì)于關(guān)鍵字,關(guān)鍵字的實(shí)例的詞性可以被存儲(chǔ)——例如,該關(guān)鍵字是否被用作名詞、動(dòng)詞、形容詞等。另外,替代拼寫也可被存儲(chǔ)用于該關(guān)鍵字。可以為該文檔存儲(chǔ)的附加信息的示例,包括但不限于,文檔標(biāo)識(shí)符、文檔URL、元數(shù)據(jù)、元標(biāo)簽等。本領(lǐng)域技術(shù)人員可以理解各種數(shù)據(jù)都可以被存儲(chǔ)以指定特定關(guān)鍵字與文檔; 因此,這些數(shù)據(jù)不需要在此詳細(xì)討論。此處描述的倒排索引可以是包含對(duì)每個(gè)列出的關(guān)鍵字的文檔的引用的列表的記錄級(jí)別的倒排索引,或者是包含文檔中每個(gè)關(guān)鍵字的位置的單詞級(jí)別的倒排索引。各實(shí)施例還可采用兩種類型的混合。如此處所使用的,關(guān)鍵字并不限于自然語言單詞。附加地,關(guān)鍵字可包括縮略語、 縮寫、數(shù)字、名字和短語。例如,關(guān)鍵字可以是〃 inc. “、“ SMTP"、“ 40"、“ John" 或者"sign of peace"。雖然這里提到的是實(shí)際的單詞,但上述任何一個(gè)均可以被替代使用。術(shù)語“文檔”指的是使用搜索引擎能搜索到的實(shí)際的文檔、網(wǎng)頁、多媒體(比如音頻、視頻、圖像)等。文檔可位于網(wǎng)絡(luò)(如因特網(wǎng))上、位于數(shù)據(jù)庫中或者本地存儲(chǔ)于計(jì)算設(shè)備上(如本地驅(qū)動(dòng)器、虛擬硬盤或其他存儲(chǔ)介質(zhì)上)?!皩捤伤阉鳌敝傅氖撬阉髋c搜索引擎查詢中提交的全部關(guān)鍵字的子集相匹配的文檔。使用上述這個(gè)術(shù)語,與寬松搜索相關(guān)的子集包含N-K個(gè)關(guān)鍵字,其中1<K< N。這種類型的搜索被稱為“寬松的”,因?yàn)樗恍枰阉匾娌樵冎械乃嘘P(guān)鍵字的文檔被返回在結(jié)果列表中。標(biāo)識(shí)出的文檔(即包含了 N-K個(gè)關(guān)鍵字的那些)最終可在搜索結(jié)果列表中被列出并呈現(xiàn)給用戶。圖3Α是根據(jù)本發(fā)明的實(shí)施例的用于在搜索引擎上執(zhí)行寬松搜索的聯(lián)網(wǎng)環(huán)境的框圖??蛻魴C(jī)計(jì)算設(shè)備300、搜索引擎服務(wù)器302、各種信息數(shù)據(jù)庫304均與網(wǎng)絡(luò)305連接。該搜索引擎服務(wù)器300和信息數(shù)據(jù)庫304可包括任何類型的應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器或者可被配置成執(zhí)行下述軟件及管理web文檔的文件服務(wù)器。另外,搜索引擎服務(wù)器300和信息數(shù)據(jù)庫304可以是專用或共享服務(wù)器。搜索引擎服務(wù)器300和信息數(shù)據(jù)庫304的組件可包括但不限于,處理單元、內(nèi)部系統(tǒng)存儲(chǔ)器和用于耦合包括用于存儲(chǔ)信息(如文件和相關(guān)聯(lián)的元數(shù)據(jù))的一個(gè)或多個(gè)數(shù)據(jù)庫在內(nèi)的各種系統(tǒng)組件的合適的系統(tǒng)總線。每個(gè)服務(wù)器一般包括或者能訪問多種計(jì)算機(jī)可讀介質(zhì)。雖然搜索引擎服務(wù)器302被示為單個(gè)機(jī)箱,但是本領(lǐng)域技術(shù)人員可以了解該搜索引擎服務(wù)器302是可擴(kuò)展的。例如,搜索引擎服務(wù)器302可以實(shí)際上包括操作以下描述的軟件的各部分的多個(gè)服務(wù)器。單個(gè)單元的描述意在簡(jiǎn)潔,而不是以任何形式限制實(shí)施例的范圍。在操作中,搜索引擎服務(wù)器302主控搜索引擎,所述搜索引擎被設(shè)計(jì)成從遠(yuǎn)程計(jì)算設(shè)備(如客戶機(jī)計(jì)算設(shè)備300)接收查詢,并定位Web上或?qū)S镁W(wǎng)絡(luò)內(nèi)的信息以滿足查詢。查詢是對(duì)Web上含有特定關(guān)鍵字或短語的文檔的請(qǐng)求。在一些實(shí)施例中,在搜索引擎服務(wù)器302上執(zhí)行的搜索引擎使用持續(xù)更新的倒排索引一由web爬行器創(chuàng)建一來快速定位滿足查詢的網(wǎng)頁。一旦網(wǎng)頁被定位后,它們的URL被傳輸回客戶機(jī)計(jì)算設(shè)備202并顯示為超鏈接。為了訪問被定位的網(wǎng)頁,用戶只需選擇相應(yīng)的超鏈接。本領(lǐng)域技術(shù)人員可以了解存在用于挖掘網(wǎng)絡(luò)上的信息的各種其他技術(shù)。文檔被存儲(chǔ)于信息數(shù)據(jù)庫304上并可經(jīng)由網(wǎng)絡(luò)305使用傳輸協(xié)議和相關(guān)URL來訪問??蛻魴C(jī)計(jì)算設(shè)備300可通過使用傳輸協(xié)議請(qǐng)求URL來取得網(wǎng)頁。結(jié)果,網(wǎng)頁可以被下載到客戶機(jī)計(jì)算設(shè)備300并存儲(chǔ)于存儲(chǔ)器中。然后,被存儲(chǔ)的網(wǎng)頁可以由網(wǎng)頁瀏覽器讀取并呈現(xiàn)給用戶??蛻魴C(jī)計(jì)算設(shè)備300可以是任何類型的計(jì)算設(shè)備,如上文參考圖1所描述的設(shè)備 100。僅作為示例而非限制,客戶機(jī)計(jì)算設(shè)備300可以是個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持式設(shè)備、蜂窩電話、數(shù)字電話、智能電話、PDA等??蛻魴C(jī)計(jì)算設(shè)備300可以配有網(wǎng)頁瀏覽器。網(wǎng)頁瀏覽器是一種軟件應(yīng)用,使得用戶能夠顯示位于Web上的信息并與之進(jìn)行交互。在一實(shí)施例中,網(wǎng)頁瀏覽器使用傳輸協(xié)議與搜索引擎服務(wù)器300和信息數(shù)據(jù)庫304進(jìn)行通信來獲取網(wǎng)頁。文檔可以由網(wǎng)頁瀏覽器通過發(fā)送傳輸協(xié)議和URL來定位。網(wǎng)頁瀏覽器還可以用多種標(biāo)記語言(如超文本標(biāo)記語言(HTML)和可擴(kuò)展標(biāo)記語言(XML))來呈現(xiàn)頁面并執(zhí)行各種腳本語言(如SilverLight 、 JavaScript、Flash、Visual Basic Scripting Edition (VBScript)等)。用戶可使用網(wǎng)頁瀏覽器導(dǎo)航到搜索引擎的網(wǎng)站上。一旦在網(wǎng)站上,用戶可以向搜索引擎提交關(guān)鍵字,客戶機(jī)計(jì)算設(shè)備300繼而將關(guān)鍵字傳輸?shù)剿阉饕娣?wù)器302。當(dāng)然, 向搜索引擎提交查詢是更加復(fù)雜的;然而,查詢到搜索引擎的等待實(shí)例的通信對(duì)于本領(lǐng)域的技術(shù)人員而言是顯而易見的,因此不需要在此討論。在一個(gè)實(shí)施例中,搜索引擎服務(wù)器302接收查詢并將該查詢解析成一個(gè)或多個(gè)關(guān)鍵字。搜索引擎服務(wù)器302在一個(gè)或多個(gè)倒排索引中搜索含有N-K個(gè)關(guān)鍵字的文檔。被定位的文檔(即含有N-K個(gè)關(guān)鍵字的那些)在檢索結(jié)果列表中被列出,并被搜索引擎服務(wù)器 302傳輸?shù)娇蛻魴C(jī)計(jì)算設(shè)備300以顯示給用戶。在一個(gè)實(shí)施例中,倒排索引是由web爬行器瀏覽存儲(chǔ)于信息數(shù)據(jù)庫304中的文檔而準(zhǔn)備的。信息數(shù)據(jù)庫304代表了存儲(chǔ)各種在線文檔的服務(wù)器。例如,信息數(shù)據(jù)庫304可以主存包含數(shù)量眾多的在線文檔的網(wǎng)頁。網(wǎng)絡(luò)305可包括任何計(jì)算機(jī)網(wǎng)絡(luò)或其組合??膳渲贸勺鳛榫W(wǎng)絡(luò)305而操作的計(jì)算機(jī)網(wǎng)絡(luò)的示例包括但不限于,無線網(wǎng)絡(luò)、陸線、電纜線路、光纖線路、局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)、城域網(wǎng)(MAN)等。然而,網(wǎng)絡(luò)305并不限于耦合分開的計(jì)算單元的連接。相反,網(wǎng)絡(luò) 305還可以包括在服務(wù)器或計(jì)算設(shè)備之間傳輸數(shù)據(jù)的子系統(tǒng)。例如,網(wǎng)絡(luò)305還可以包括點(diǎn)對(duì)點(diǎn)連接、因特網(wǎng)、以太網(wǎng)、背板總線、電氣總線、神經(jīng)網(wǎng)絡(luò)或其他內(nèi)部系統(tǒng)。在網(wǎng)絡(luò)305包括LAN聯(lián)網(wǎng)環(huán)境的實(shí)施例中,組件通過網(wǎng)絡(luò)接口或適配器連接到LAN 上。在網(wǎng)絡(luò)305包括WAN聯(lián)網(wǎng)環(huán)境的實(shí)施例中,組件使用調(diào)制解調(diào)器或用于在WAN上建立通信的其他手段來進(jìn)行通信。在網(wǎng)絡(luò)305包括MAN聯(lián)網(wǎng)環(huán)境的實(shí)施例中,組件使用無線接口或光纖連接來連接到MAN。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)或因特網(wǎng)中很常見??梢岳斫獾氖牵镜木W(wǎng)絡(luò)連接是示例性的,且在計(jì)算機(jī)之間建立通信鏈路的其他手段也可被使用。另外,網(wǎng)絡(luò)305上的通信可需要圖示的設(shè)備使用通信協(xié)議。這些協(xié)議的示例包括但不限于,超文本傳輸協(xié)議(HTTP)、傳輸控制協(xié)議(TCP/IP)等。本領(lǐng)域技術(shù)人員可以理解各種協(xié)議均可用于在網(wǎng)絡(luò)305上通信;因此,這些協(xié)議在此無需具體討論。在另一個(gè)實(shí)施例中,搜索引擎查詢中的某些關(guān)鍵字可被指定為不是寬松的,表示所有被檢索出來的文檔都必須含有非寬松的單詞。再次舉之前的例子,查詢“dentists in Seattle Washington”中的‘Seattle”可以被指定為非寬松的。因此,分析倒排索引以尋找含有“kattle”作為N-K個(gè)項(xiàng)中的一個(gè)項(xiàng)的文檔。下面的代碼或者其變體可被用于指定非寬松關(guān)鍵字類。
class NoRelaxTuple public Tuple {
public:
Tuple *m_pConstraint;
StringBuilder*ToString(StringBuilder*buffer); NoRelaxTuple(); NoRelaxTuple();
};下面的代碼或者其變體可被用于指定查詢中的非寬松單詞。
class NoRelaxOperator public IQueryOperator {
public:
void Initialize(QueryParserState*pParser); void StartQuery() {} bool HandleOperator (
Query TokenType token, const UInt9*szParsePosition, size」*pcbConsumed); void EndQueryO {}
};圖;3B示出根據(jù)一個(gè)實(shí)施例的在配置成執(zhí)行寬松搜索的聯(lián)網(wǎng)環(huán)境上的框圖和信息流。如所示,客戶機(jī)計(jì)算設(shè)備300、搜索引擎302和信息數(shù)據(jù)庫304,參看圖3A所描述的,在網(wǎng)絡(luò)305上通信。另外,搜索引擎服務(wù)器302被示為帶有多個(gè)抽象層的單個(gè)服務(wù)器前端 308和后端310。前端308代表與客戶機(jī)計(jì)算設(shè)備300進(jìn)行交互的軟件組件。后端310代表為前端308處理信息以及在后臺(tái)線程上執(zhí)行輔助進(jìn)程(如網(wǎng)絡(luò)爬行)的軟件組件。盡管示于同一個(gè)服務(wù)器上,但前端308和后端310可以替代地在互相通信的分開的服務(wù)器上執(zhí)行。實(shí)際上,前端308和后端310僅僅是對(duì)搜索引擎的一實(shí)施例的不同部分的抽象。在操作中,用戶使用客戶機(jī)計(jì)算設(shè)備300上的網(wǎng)頁瀏覽器306來訪問搜索引擎的網(wǎng)站。用戶可在網(wǎng)站上輸入并提交搜索引擎查詢A,網(wǎng)站繼而將該搜索引擎查詢A傳輸?shù)剿阉饕娣?wù)器302。在一個(gè)實(shí)施例中,前端308包括解析器312,它是將搜索引擎查詢A分成獨(dú)立的關(guān)鍵字B的軟件?;蛘?,解析器312可將搜索引擎查詢312分成多個(gè)關(guān)鍵字的短語。關(guān)鍵字B被傳遞到位于后端310上的一個(gè)或多個(gè)倒排索引314上。在一個(gè)實(shí)施例中,后端310遍歷倒排索引314中的條目以試圖定位關(guān)鍵字。倒排索引314標(biāo)示出含有倒排索引314中所列出的條目的文檔318。如之前所述,每個(gè)條目包括一關(guān)鍵字(不必與關(guān)鍵字B混淆)以及web爬行器316已在其中定位了該關(guān)鍵字的所有文檔318。每個(gè)被標(biāo)識(shí)出的文檔318的各種信息(如文檔標(biāo)識(shí)符、URL、網(wǎng)際協(xié)議(IP)地址等)可與該關(guān)鍵字相關(guān)聯(lián)地被存儲(chǔ)在倒排索引314中。在一個(gè)實(shí)施例中,后端310搜索倒排索引314來找關(guān)鍵字。在該實(shí)施例中,后端 310傳送含有關(guān)鍵字B中的至少一個(gè)關(guān)鍵字的一列文檔D。例如,對(duì)于關(guān)鍵字“dentists in Seattle Washington” 的文檔 D 包括含有〃 dentists"、“ in"、“ Seattle" 和〃 Washington"的所有文檔318。在一個(gè)實(shí)施例中,作為后端310上執(zhí)行的軟件的一部分的寬松聚合器320在文檔D中搜索含有N-K個(gè)關(guān)鍵字B的文檔(稱為文檔E)。文檔E(即含有N-K個(gè)關(guān)鍵字B的文檔)被傳遞到前端308上的結(jié)果產(chǎn)生器322。 該結(jié)果產(chǎn)生器322創(chuàng)建包括文檔E,即含有N-K個(gè)關(guān)鍵字B的那些文檔的搜索結(jié)果列表F。 例如,最頻繁被訪問的文檔的URL可被給予列表上的優(yōu)先級(jí)。另選地,基于客戶機(jī)計(jì)算設(shè)備 300的地理位置的地理上相關(guān)的結(jié)果例如通過反向IP地址或全球定位系統(tǒng)(GPS)設(shè)備確定。本領(lǐng)域技術(shù)人員可以理解其他替代方案也是可能的,且沒必要在此詳細(xì)描述。最后,搜索結(jié)果列表F被傳輸?shù)娇蛻魴C(jī)計(jì)算設(shè)備300并在網(wǎng)頁瀏覽器306中顯示給用戶。后端310還被配置成操作web爬行器316來遍歷文檔318,以及更新倒排索引314。 可增加新的條目,現(xiàn)有條目可被更新,或者陳舊的條目可被刪除。這個(gè)web爬行器316可以在與寬松聚合器320并行的線程上操作。本領(lǐng)域技術(shù)人員很了解web爬行器的細(xì)節(jié);因此, 無需在此詳細(xì)描述。圖4是示出根據(jù)一個(gè)實(shí)施例的在搜索引擎上執(zhí)行寬松搜索的步驟(盡管無需是順序的)的流程圖。最初,用戶從客戶機(jī)計(jì)算設(shè)備向主控搜索引擎的服務(wù)器提交搜索引擎查詢,如402所示。搜索引擎將查詢解析成關(guān)鍵字,如404所示。一旦被解析,在倒排索引中搜索每個(gè)關(guān)鍵字,該倒排索引含有數(shù)量眾多的關(guān)鍵字條目和在其中能找到關(guān)鍵字的相應(yīng)網(wǎng)絡(luò)文檔一如406處所示。如408處所示,已知含有查詢的關(guān)鍵字中的至少一部分一即至少 N-K個(gè)關(guān)鍵字一的網(wǎng)絡(luò)文檔被標(biāo)識(shí)出來。然后,標(biāo)識(shí)出的網(wǎng)絡(luò)文檔被傳輸回客戶機(jī)計(jì)算設(shè)備 (在410處指示)以呈現(xiàn)給用戶。
圖5示出根據(jù)一個(gè)實(shí)施例的來自執(zhí)行寬松搜索的搜索引擎的搜索結(jié)果列表的示圖。具體來說,圖6示出web瀏覽器窗口 500的屏幕截圖,其呈現(xiàn)了搜索引擎的網(wǎng)站。用戶提交了搜索引擎查詢502,帶有關(guān)鍵字"york"、“ wild"、“ kingdom"和〃 USA",這些被分別標(biāo)記為單詞504、506、508、510。搜索引擎查詢502被提交給搜索引擎,搜索引擎返回含有N-K個(gè)關(guān)鍵字的結(jié)果的列表。在這個(gè)實(shí)例中,N等于4(單詞504、單詞506、單詞 508和單詞510)且K被搜索引擎的管理員設(shè)定為1。因此產(chǎn)生的文檔具有4個(gè)關(guān)鍵字504、 506,508和510中的至少3個(gè)。如所示,結(jié)果512、514、516、518和520都含有關(guān)鍵字504、 506、508和510中的至少3個(gè)。盡管此處以特定于結(jié)構(gòu)特征和方法動(dòng)作的語言描述了主題,但可以理解的是在所附的權(quán)利要求中限定的主題并不一定限于上述描述的特定特征或動(dòng)作。相反,上述特定特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。例如,除此處描述的之外的采樣速率或采樣周期也可由權(quán)利要求的范圍來捕捉。
權(quán)利要求
1.一個(gè)或多個(gè)在其上含有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行檢索并傳送由用戶通過搜索引擎提交的查詢的搜索結(jié)果的方法,所述方法包括接收查詢(402);將查詢解析成一個(gè)或多個(gè)關(guān)鍵字(404); 在倒排索引中搜索所述一個(gè)或多個(gè)關(guān)鍵字G06);標(biāo)識(shí)含有比所述一個(gè)或多個(gè)關(guān)鍵字中的全部關(guān)鍵字少的關(guān)鍵字的網(wǎng)絡(luò)文檔G08); 傳送網(wǎng)絡(luò)文檔的列表G10)。
2.如權(quán)利要求1所述的介質(zhì),其特征在于,所述倒排索引包括鏈接到含有所述多個(gè)關(guān)鍵字的多個(gè)網(wǎng)絡(luò)文檔的多個(gè)關(guān)鍵字。
3.如權(quán)利要求1所述的介質(zhì),其特征在于,所述網(wǎng)絡(luò)文檔包括所述一個(gè)或多個(gè)關(guān)鍵字中的全部關(guān)鍵字減去所述一個(gè)或多個(gè)關(guān)鍵字中的特定量的關(guān)鍵字。
4.如權(quán)利要求1所述的介質(zhì),其特征在于,所述倒排索引包括一個(gè)或多個(gè)條目,每一個(gè)條目包括一關(guān)鍵字和含有該關(guān)鍵字的文檔的標(biāo)示。
5.如權(quán)利要求4所述的介質(zhì),其特征在于,所述標(biāo)識(shí)中的每一個(gè)包括以下中的至少一個(gè)每一個(gè)文檔的文檔標(biāo)識(shí)符、統(tǒng)一資源定位器(URL)、網(wǎng)際協(xié)議(IP)地址。
6.如權(quán)利要求4所述的介質(zhì),其特征在于,通過路由組件不用采樣地傳遞數(shù)據(jù)包包括從路由組件的輸出接口傳輸數(shù)據(jù)包到網(wǎng)絡(luò)。
7.一種用于檢索和傳送用戶通過搜索引擎提交的查詢的搜索結(jié)果的方法,所述方法包括接收查詢(402);將查詢解析成一個(gè)或多個(gè)關(guān)鍵字G04); 在倒排索引中搜索所述一個(gè)或多個(gè)關(guān)鍵字G06);對(duì)于所述一個(gè)或多個(gè)關(guān)鍵字中的每一個(gè),標(biāo)識(shí)包括所述一個(gè)或多個(gè)關(guān)鍵字中的所述每一個(gè)的一個(gè)或多個(gè)網(wǎng)絡(luò)文檔的集合G08);確定包含所述一個(gè)或多個(gè)關(guān)鍵字的子集的多個(gè)網(wǎng)絡(luò)文檔的集合,其中所述子集等于所述一個(gè)或多個(gè)關(guān)鍵字的總數(shù)(N)減去特定量的關(guān)鍵字(K) (408);以及傳送經(jīng)過濾的網(wǎng)絡(luò)文檔的集合的列表。
8.如權(quán)利要求7所述的方法,其特征在于,在倒排索引中搜索所述一個(gè)或多個(gè)關(guān)鍵字進(jìn)一步包括在倒排索引中僅搜索含有N-K個(gè)關(guān)鍵字的文檔。
9.如權(quán)利要求7所述的方法,其特征在于,還包括將所述一個(gè)或多個(gè)關(guān)鍵字中的至少一個(gè)指定為非寬松關(guān)鍵字,其中所述非寬松關(guān)鍵字必須被包含在所述網(wǎng)絡(luò)文檔中。
10.如權(quán)利要求7所述的方法,其特征在于,所述網(wǎng)絡(luò)文檔包括所述一個(gè)或多個(gè)關(guān)鍵字中的全部關(guān)鍵字所述一個(gè)或多個(gè)關(guān)鍵字中的特定量的關(guān)鍵字。
11.如權(quán)利要求10所述的方法,其特征在于,所述一個(gè)或多個(gè)關(guān)鍵字中的特定量等于2。
12.一種用于檢索和傳送提交給搜索引擎的查詢的結(jié)果的計(jì)算機(jī)設(shè)備,包括 執(zhí)行計(jì)算機(jī)可讀指令的處理器(104);用所述計(jì)算機(jī)可讀指令配置的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(112);倒排索引,存儲(chǔ)于所述計(jì)算機(jī)可讀介質(zhì)中并由所述處理器執(zhí)行,所述倒排索引被配置成接收查詢中的所有關(guān)鍵字并標(biāo)識(shí)包含每一個(gè)關(guān)鍵字的網(wǎng)絡(luò)文檔(314);以及寬松過濾設(shè)置聚合器,存儲(chǔ)于所述計(jì)算機(jī)可讀介質(zhì)中并由所述處理器執(zhí)行,用于確定所述倒排索引中包含所述一個(gè)或多個(gè)關(guān)鍵字的子集的網(wǎng)絡(luò)文檔的列表,其中所述子集等于關(guān)鍵字的總數(shù)(N)減去一個(gè)關(guān)鍵字(320)。
13.如權(quán)利要求12所述的方法,其特征在于,至少一個(gè)關(guān)鍵字被指定為要被包含在所述網(wǎng)絡(luò)文檔的每一個(gè)中。
14.如權(quán)利要求12所述的方法,其特征在于,所述倒排索引維護(hù)一個(gè)或多個(gè)條目,每一個(gè)條目包括一關(guān)鍵字和包含該關(guān)鍵字的至少一個(gè)文檔。
15.如權(quán)利要求14所述的方法,其特征在于,所述倒排索引與web爬行器通信,以不斷地更新所述一個(gè)或多個(gè)條目。
全文摘要
此處描述了搜索引擎查詢中的關(guān)鍵字的子集。所述搜索引擎查詢被解析成關(guān)鍵字。對(duì)照倒排索引來檢查這些關(guān)鍵字以確定是否有任何網(wǎng)絡(luò)文檔包含關(guān)鍵字的子集。包含關(guān)鍵字的子集的文檔在搜索結(jié)果列表中被列出并傳送回給用戶。
文檔編號(hào)G06F17/21GK102239492SQ200980149052
公開日2011年11月9日 申請(qǐng)日期2009年11月17日 優(yōu)先權(quán)日2008年12月4日
發(fā)明者D·齊, G·高希, N·R·維賈亞, R·馬宗德, T·K·多曾, Y·王 申請(qǐng)人:微軟公司