專利名稱:用于部分輸入的搜索查詢的自動(dòng)完成和自動(dòng)輸入法校正的制作方法
技術(shù)領(lǐng)域:
所公開的實(shí)施例一般涉及用于定位在計(jì)算機(jī)網(wǎng)絡(luò)(例如計(jì)算機(jī)系統(tǒng)的分布式系 統(tǒng))中的文檔的搜索引擎,具體地,涉及用于通過(guò)預(yù)測(cè)用戶的請(qǐng)求而使期望的搜索加速的 系統(tǒng)和方法。
背景技術(shù):
搜索引擎提供了用于定位在大型文檔數(shù)據(jù)庫(kù)中的文檔的強(qiáng)大工具,所述文檔諸如 在萬(wàn)維網(wǎng)(WWW)上的文檔或存儲(chǔ)在內(nèi)聯(lián)網(wǎng)的計(jì)算機(jī)上的文檔。響應(yīng)于由用戶提交的搜索查 詢而定位文檔。搜索查詢可以由一個(gè)或多個(gè)搜索詞語(yǔ)組成。在輸入查詢的一個(gè)方法中,用戶通過(guò)添加連續(xù)的搜索詞語(yǔ)直至輸入了所有搜索詞 語(yǔ)來(lái)輸入查詢。一旦用戶發(fā)信號(hào)已輸入了查詢的所有搜索詞語(yǔ),則將查詢發(fā)送給搜索引擎。 在下面描述的本發(fā)明的實(shí)施例使用輸入查詢的另一個(gè)方法。在這個(gè)新方法中,在用戶指示 完成查詢之前將部分查詢傳送給搜索引擎。搜索引擎生成向用戶展示的預(yù)測(cè)的查詢的列 表。用戶可以從預(yù)測(cè)的查詢的排序列表選擇,或者可以繼續(xù)輸入用戶指定的查詢。
發(fā)明內(nèi)容
根據(jù)在下面描述的一些實(shí)施例,在服務(wù)器處執(zhí)行、用于處理查詢信息的方法包括 從搜索請(qǐng)求者接收部分搜索查詢,該搜索請(qǐng)求者位于遠(yuǎn)離服務(wù)器的位置。方法進(jìn)一步包括 從多個(gè)先前提交的完整查詢獲取與部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合,其中先 前提交的完整查詢由用戶群體提交。預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整 搜索查詢兩者。另外,方法包括根據(jù)排名標(biāo)準(zhǔn)對(duì)預(yù)測(cè)的完整查詢的集合進(jìn)行排序,并且將排 序的集合的至少一個(gè)子集遞送給搜索請(qǐng)求者。根據(jù)一些實(shí)施例,在客戶端處執(zhí)行、用于處理查詢信息的方法包括從搜索請(qǐng)求者 接收部分搜索查詢。方法進(jìn)一步包括從多個(gè)先前提交的完整查詢獲取與部分搜索查詢相對(duì) 應(yīng)的預(yù)測(cè)的完整查詢的集合,其中先前提交的完整查詢由用戶群體提交。預(yù)測(cè)的完整查詢 的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且根據(jù)排名標(biāo)準(zhǔn)被排序。另外,方法 包括向搜索請(qǐng)求者顯示排序的集合的至少一個(gè)子集。根據(jù)一些實(shí)施例,用于構(gòu)建用于處理查詢信息的數(shù)據(jù)結(jié)構(gòu)的方法包括獲取先前提 交的完整第一語(yǔ)言查詢的集合,其中完整第一語(yǔ)言查詢由用戶群體先前提交。方法進(jìn)一步 包括獲取先前提交的完整第二語(yǔ)言查詢的集合,其中完整第二語(yǔ)言查詢由用戶群體先前提 交。另外,方法包括將完整第一語(yǔ)言查詢的集合轉(zhuǎn)換為以使用第二語(yǔ)言的字符的表示形式 的完整第一語(yǔ)言查詢的集合,并且將完整第二語(yǔ)言查詢的集合和轉(zhuǎn)換的完整第一語(yǔ)言查詢 的集合存儲(chǔ)在一個(gè)或多個(gè)查詢完成數(shù)據(jù)表中。一個(gè)或多個(gè)查詢完成數(shù)據(jù)表形成能夠被用來(lái) 預(yù)測(cè)與部分第一語(yǔ)言查詢或部分第二語(yǔ)言查詢相對(duì)應(yīng)的完整第一語(yǔ)言查詢和完整第二語(yǔ) 言查詢兩者的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,用于處理查詢信息的系統(tǒng)包括用于執(zhí)行程序的一個(gè)或多個(gè)中央處理單元,以及用來(lái)存儲(chǔ)數(shù)據(jù)以及存儲(chǔ)由一個(gè)或多個(gè)中央處理單元執(zhí)行的程序的存儲(chǔ)器。 程序包括用于從搜索請(qǐng)求者接收部分搜索查詢的指令,搜索請(qǐng)求者位于遠(yuǎn)離服務(wù)器的位 置。程序進(jìn)一步包括用于從多個(gè)先前提交的完整查詢獲取與部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的 完整查詢的集合的指令,其中先前提交的完整查詢由用戶群體提交。預(yù)測(cè)的完整查詢的集 合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者。另外,程序進(jìn)一步包括用于根據(jù)排名標(biāo)準(zhǔn) 對(duì)預(yù)測(cè)的完整查詢的集合進(jìn)行排序,并且將排序的集合的至少一個(gè)子集遞送給搜索請(qǐng)求者 的指令。在一些實(shí)施例中,客戶端系統(tǒng)包括用于執(zhí)行程序的一個(gè)或多個(gè)中央處理單元,以 及用來(lái)存儲(chǔ)數(shù)據(jù)以及存儲(chǔ)由一個(gè)或多個(gè)中央處理單元執(zhí)行的程序的存儲(chǔ)器,程序包括用于 從搜索請(qǐng)求者接收部分搜索查詢的指令。程序進(jìn)一步包括用于從多個(gè)先前提交的完整查詢 獲取與部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合的指令,其中先前提交的完整查詢由 用戶群體提交。預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且 根據(jù)排名標(biāo)準(zhǔn)被排序。另外,程序進(jìn)一步包括用于向搜索請(qǐng)求者顯示排序的集合的至少一 個(gè)子集的指令。在一些實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)用于由各個(gè)服務(wù)器系統(tǒng)的一個(gè)或多個(gè) 處理器執(zhí)行的一個(gè)或多個(gè)程序。一個(gè)或多個(gè)程序包括用于從搜索請(qǐng)求者接收部分搜索查詢 的指令,搜索請(qǐng)求者位于遠(yuǎn)離服務(wù)器的位置。一個(gè)或多個(gè)程序進(jìn)一步包括用于從多個(gè)先前 提交的完整查詢獲取與部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合的指令,先前提交的 完整查詢由用戶群體提交。預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢 兩者。另外,一個(gè)或多個(gè)程序包括用于根據(jù)排名標(biāo)準(zhǔn)對(duì)預(yù)測(cè)的完整查詢的集合進(jìn)行排序,并 且將排序的集合的至少一個(gè)子集遞送給搜索請(qǐng)求者的指令。在一些實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)用于由各個(gè)客戶端設(shè)備或系統(tǒng)的一個(gè) 或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)程序。一個(gè)或多個(gè)程序包括用于從搜索請(qǐng)求者接收部分搜 索查詢的指令。一個(gè)或多個(gè)程序進(jìn)一步包括用于從多個(gè)先前提交的完整查詢獲取與部分搜 索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合的指令,先前提交的完整查詢由用戶群體提交。預(yù) 測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且根據(jù)排名標(biāo)準(zhǔn)被排 序。另外,一個(gè)或多個(gè)程序包括用于向搜索請(qǐng)求者顯示排序的集合的子集的指令。由于統(tǒng)一的解決方案在自動(dòng)提供輸入法校正時(shí)支持不完整的朝鮮語(yǔ)字符輸入,故 其具有對(duì)朝鮮語(yǔ)查詢預(yù)測(cè)的特定應(yīng)用。
作為結(jié)合附圖的本發(fā)明的各個(gè)方面的下列詳細(xì)描述的結(jié)果,將更清楚地理解本發(fā)明的前述實(shí)施例以及額外的實(shí)施例。在附圖的全部多個(gè)視圖中相同的參考數(shù)字指代對(duì)應(yīng)的 部分。圖1是根據(jù)一些實(shí)施例的搜索系統(tǒng)的框圖。圖2是描述了根據(jù)一些實(shí)施例的與創(chuàng)建并使用數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的信息流的概念 圖。圖3A是根據(jù)一些實(shí)施例的部分查詢的處理的方法的流程圖。圖3B是根據(jù)一些實(shí)施例的由在客戶端系統(tǒng)或設(shè)備處的搜索助手執(zhí)行的過(guò)程的流程圖。圖4A和4B描述了用于在朝鮮語(yǔ)字符和朝鮮語(yǔ)字符的羅馬化表示形式之間的轉(zhuǎn)換 的字符映射表。圖5是根據(jù)一些實(shí)施例的用于將一串朝鮮語(yǔ)字符轉(zhuǎn)換為羅馬化表示形式的過(guò)程 的流程圖。圖6描述了根據(jù)一些實(shí)施例的與輸入字符串相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的示例。圖7描述了根據(jù)一些實(shí)施例的用于處理歷史查詢的過(guò)程。圖8描述了根據(jù)一些實(shí)施例的與在歷史搜索查詢的集合中的完整搜索查詢的兩 個(gè)示例相對(duì)應(yīng)的部分搜索查詢。圖9是根據(jù)一些實(shí)施例的用于識(shí)別與所接收的部分查詢相對(duì)應(yīng)的查詢完成表的 過(guò)程的概念表示。圖10描述了根據(jù)一些實(shí)施例的兩個(gè)示例查詢完成表的部分。圖11是根據(jù)一些實(shí)施例的客戶端系統(tǒng)的框圖。圖12是根據(jù)一些實(shí)施例的服務(wù)器系統(tǒng)的框圖。圖13描述了根據(jù)一些實(shí)施例的列出與用戶提供的部分查詢相對(duì)應(yīng)的英語(yǔ)和朝鮮 語(yǔ)預(yù)測(cè)的完整查詢的web瀏覽器、在web瀏覽器中顯示的網(wǎng)頁(yè)或其它用戶界面的示意截屏。
具體實(shí)施例方式圖1圖示了適于本發(fā)明的實(shí)施例的實(shí)踐的系統(tǒng)100。在于2004年11月11日提交 的“Method and System for Autocompletion Using RankedResults(用于使用排名結(jié)果的自動(dòng)完成的方法和系統(tǒng)),,的共同未決、普通轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào)No. 10/987,295, 以及于 2004 年 11 月 12 日提交的 “Method and System for Autocompletion for LanguagesHaving Ideographs and Phonetic Characters (用于具有象形和語(yǔ)言字符的語(yǔ)言的自動(dòng)完成的方法和系統(tǒng))”的共同未決、普通轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào) No. 10/987,769中提供了與分布式系統(tǒng)和其各種功能組件有關(guān)的額外詳情,在此通過(guò)引用 將所述申請(qǐng)的內(nèi)容整體合并。系統(tǒng)100可以包括位于遠(yuǎn)離搜索引擎108的位置的一個(gè)或多 個(gè)客戶端系統(tǒng)或設(shè)備102。有時(shí)被稱為客戶端或客戶端設(shè)備的各個(gè)客戶端系統(tǒng)102可以是 臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、信息站、蜂窩電話、個(gè)人數(shù)字助理等。通信網(wǎng)絡(luò)106將客戶端系 統(tǒng)或設(shè)備102連接到搜索引擎108。當(dāng)用戶(在此也被稱為搜索請(qǐng)求者)在客戶端系統(tǒng)102 處輸入查詢時(shí),在該用戶完成輸入完整查詢之前搜索助手104將該用戶的部分查詢的至少 部分傳送到搜索引擎108。搜索引擎108使用部分查詢的傳送部分來(lái)預(yù)測(cè)用戶的最終完整 查詢。這些預(yù)測(cè)被傳送回該用戶。如果預(yù)測(cè)中的一個(gè)是該用戶的預(yù)期查詢,則該用戶可以 在不必完成查詢的輸入的情況下選擇預(yù)測(cè)的查詢。如在此進(jìn)一步描述的,搜索系統(tǒng)100和其功能組件已被調(diào)整,以便以統(tǒng)一的方式 處理多種語(yǔ)言的部分查詢。搜索系統(tǒng)100已被調(diào)整,以便在不考慮由搜索助手104傳送到 搜索引擎108的部分查詢的語(yǔ)言編碼的情況下,基于在客戶端系統(tǒng)102處的用戶的實(shí)際輸 入來(lái)提供預(yù)測(cè)的查詢。例如在用戶使用在客戶端系統(tǒng)102處的不正確輸入法編輯器設(shè)置輸 入了部分查詢的情況下這尤其有用。搜索引擎108包括查詢服務(wù)器110,其具有接收并處理部分查詢以及將部分查詢轉(zhuǎn)送到預(yù)測(cè)服務(wù)器112的模塊120。預(yù)測(cè)服務(wù)器112負(fù)責(zé)生成與所接收的部分查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的列表。預(yù)測(cè)服務(wù)器112依賴于由排序集合構(gòu)建器142在預(yù)處理階段構(gòu) 造的數(shù)據(jù)結(jié)構(gòu)。排序集合構(gòu)建器142使用不同語(yǔ)言的查詢?nèi)罩?24、126來(lái)構(gòu)造數(shù)據(jù)結(jié)構(gòu)。 圖2圖示了由排序集合構(gòu)建器142執(zhí)行的預(yù)處理的一個(gè)實(shí)施例。圖3A圖示了由預(yù)測(cè)服務(wù) 器112執(zhí)行的處理的一個(gè)實(shí)施例。另外,在一些實(shí)施例中,查詢服務(wù)器110接收完整搜索查 詢并且將完整搜索查詢轉(zhuǎn)送到查詢處理模塊114。 參見圖2,說(shuō)明性地展示了兩個(gè)查詢?nèi)罩镜谝徽Z(yǔ)言的查詢?nèi)罩?01和第二語(yǔ)言的 查詢?nèi)罩?02。查詢?nèi)罩?01、202包含由搜索引擎在一段時(shí)間內(nèi)從用戶群體接收的各自語(yǔ) 言的先前提交的查詢的日志??蛇x地,提交在查詢?nèi)罩?01中的查詢的用戶群體可以與提 交在查詢?nèi)罩?02中的查詢的用戶群體不同,在這種情況下前述“用戶群體”包括兩個(gè)或多 個(gè)用戶群體。在查詢?nèi)罩?01、202中的每一個(gè)查詢條目可以包括元信息,諸如指示查詢被 提交的次數(shù)的頻率信息。查詢?nèi)罩?01、202中的每一個(gè)可以由一個(gè)或多個(gè)特定語(yǔ)言過(guò)濾器 204,205過(guò)濾,例如以排除與詞語(yǔ)的一個(gè)或多個(gè)預(yù)定集合相匹配的查詢,所述預(yù)定集合諸如 可能被認(rèn)為是令人反感的、文化敏感的等單詞。在第二語(yǔ)言的查詢?nèi)罩?02中的查詢以其 現(xiàn)存形式被利用。然而,在250處將在第一語(yǔ)言的查詢?nèi)罩?01中的查詢轉(zhuǎn)換為第二語(yǔ)言 的表示形式。第二語(yǔ)言的表示形式與由用戶在使用設(shè)置為第二語(yǔ)言的輸入法時(shí)試圖輸入第 一語(yǔ)言的查詢而生成的第二語(yǔ)言的字符相對(duì)應(yīng)。例如,如在下面進(jìn)一步描述的,一種語(yǔ)言諸 如朝鮮語(yǔ)的查詢可以由在字母數(shù)字鍵盤上的鍵擊來(lái)表示,所述鍵擊與使用被不正確地設(shè)置 為英語(yǔ)的輸入法編輯器來(lái)輸入朝鮮語(yǔ)查詢相對(duì)應(yīng)。然而,在其它實(shí)施例中,第一語(yǔ)言不必是 朝鮮語(yǔ),而替代地可以是日語(yǔ)、中文或大量其它語(yǔ)言中的任何語(yǔ)言。類似地,第二語(yǔ)言不必 是英語(yǔ),而替代地可以是法語(yǔ)、德語(yǔ)、西班牙語(yǔ)、俄語(yǔ)或大量其它語(yǔ)言中的任何語(yǔ)言。過(guò)濾的 查詢?nèi)罩?02和過(guò)濾的查詢?nèi)罩?01的轉(zhuǎn)換的輸出由排序集合構(gòu)建器208組合在一起并同 時(shí)利用。排序集合構(gòu)建器208創(chuàng)建一個(gè)或多個(gè)組合數(shù)據(jù)結(jié)構(gòu),組合數(shù)據(jù)結(jié)構(gòu)能夠被用來(lái)處 理兩種語(yǔ)言的部分查詢。 排序集合構(gòu)建器208構(gòu)造一個(gè)或多個(gè)查詢完成表212。如在下面進(jìn)一步說(shuō)明的,一 個(gè)或多個(gè)查詢完成表212被用于生成用于第一和第二語(yǔ)言兩者的預(yù)測(cè)。在查詢完成表212 中的每一個(gè)條目存儲(chǔ)查詢字符串和額外信息。額外信息包括可以基于在查詢?nèi)罩局械牟樵?的頻率的排名分值、查詢由用戶群體中的用戶提交時(shí)的日期/時(shí)間值、和/或其它因素。關(guān) 于查詢的額外信息可選地包括指示完整搜索查詢的語(yǔ)言的值。在各個(gè)查詢完成表212中 的每一個(gè)條目表示與部分查詢相關(guān)聯(lián)的預(yù)測(cè)的完整查詢。如在下面參考圖9所描述的,在 一些實(shí)施例中,被接收的部分查詢被分成兩部分前綴部分和后綴部分。此外,在一些實(shí)施 例中,與同一前綴相關(guān)聯(lián)的一組預(yù)測(cè)的完整查詢被存儲(chǔ)在按頻率或分值排序的查詢完成表 212中??蛇x地,查詢完成表212由對(duì)應(yīng)的部分搜索查詢的查詢指紋進(jìn)行索引,其中每一個(gè) 部分搜索查詢的查詢指紋通過(guò)將哈希函數(shù)(或其它指紋函數(shù))應(yīng)用于部分搜索查詢或部分 搜索查詢的前綴來(lái)生成??蛇x地,查詢指紋被存儲(chǔ)在指紋到表的映射表210中用于快速查 找。 在一些實(shí)施例中,將第一語(yǔ)言(例如朝鮮語(yǔ)、日語(yǔ)、中文等)的預(yù)測(cè)的完整查詢以 使用第二語(yǔ)言(例如英語(yǔ)、西班牙語(yǔ)、法語(yǔ)、德語(yǔ)、俄語(yǔ)等)的字符的轉(zhuǎn)換的表示形式(例如 羅馬化表示形式)存儲(chǔ)在一個(gè)或多個(gè)查詢完成表212中。因此,在這些實(shí)施例中,排序集合構(gòu)建器208將完整第二語(yǔ)言(例如英語(yǔ))查詢的集合和以其轉(zhuǎn)換的表示形式的完整第一語(yǔ) 言(例如朝鮮語(yǔ))查詢的集合存儲(chǔ)在一個(gè)或多個(gè)查詢完成表212中。然而,將在查詢完成 表212中的預(yù)測(cè)的完整查詢以在查詢?nèi)罩?01中的原始查詢的語(yǔ)言向用戶表示并顯示。然 而,在其它實(shí)施例中,盡管第一語(yǔ)言的查詢被存儲(chǔ)在通過(guò)將哈希函數(shù)(或其它指紋函數(shù))應(yīng) 用于對(duì)應(yīng)的部分搜索查詢的轉(zhuǎn)換的表示形式來(lái)識(shí)別的查詢完成表中,但是預(yù)測(cè)的完整查詢 以其原始語(yǔ)言被存儲(chǔ)在一個(gè)或多個(gè)查詢完成表212中。參見圖3A,在用戶輸入搜索查詢時(shí),客戶端系統(tǒng)102監(jiān)視用戶的輸入(308)。在用 戶(有時(shí)被稱為請(qǐng)求者)發(fā)信號(hào)完成搜索查詢之前,將用戶的查詢的至少部分從客戶端系 統(tǒng)發(fā)送到搜索引擎304(310)。查詢的部分可以是幾個(gè)字符、一個(gè)搜索詞語(yǔ)或多于一個(gè)搜索 詞語(yǔ)。注意到,可以以第一語(yǔ)言或第二語(yǔ)言輸入部分查詢。搜索引擎304接收部分搜索查詢用于處理(312)并且前進(jìn)到對(duì)關(guān)于用戶的預(yù)期的 完整查詢進(jìn)行預(yù)測(cè)(313)。首先,搜索引擎304確定部分查詢是以第一語(yǔ)言還是以第二語(yǔ)言 編碼(314)。如果部分查詢以第一語(yǔ)言編碼,則搜索引擎304在前進(jìn)之前將部分查詢轉(zhuǎn)換為 第二語(yǔ)言的上述表示形式(316)。如果部分查詢以第二語(yǔ)言編碼,則搜索引擎304可以直 接前進(jìn)到處理部分查詢。搜索引擎304然后應(yīng)用哈希函數(shù)(或其它指紋函數(shù))(318)來(lái)創(chuàng) 建指紋320。搜索引擎304使用指紋320和指紋到表的映射表210來(lái)定位與部分查詢相對(duì) 應(yīng)的查詢完成表212來(lái)執(zhí)行查找操作(322)。查找操作包括對(duì)指紋到表的映射表210搜索 與部分查詢的指紋320相匹配的指紋。當(dāng)找到匹配時(shí),指紋到表的映射表210的對(duì)應(yīng)條目 識(shí)別查詢完成表(或替選地,在具有關(guān)于多個(gè)部分查詢的條目的查詢完成表中的條目的集 合)。如在下面更詳細(xì)地描述的,查詢完成表212可以包括與部分查詢相匹配或相對(duì)應(yīng)的多 個(gè)條目,以及指紋到表的映射表210被用來(lái)定位查詢完成表或這些條目的第一個(gè)(或最后 一個(gè))。查找操作(322)產(chǎn)生與所接收的部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合。在查詢完成表中的每一個(gè)條目包括預(yù)測(cè)的完整查詢和諸如關(guān)于預(yù)測(cè)的完整查詢 的頻率或分值的其它信息。搜索引擎304使用信息來(lái)構(gòu)造完整查詢預(yù)測(cè)的排序集合(326)。 在一些實(shí)施例中,將集合按頻率或分值排序。搜索引擎304然后將預(yù)測(cè)的完整查詢的至少 一個(gè)子集(328)返回給接收排序的預(yù)測(cè)的完整查詢(329)的客戶端??蛻舳饲斑M(jìn)到顯示排 序的預(yù)測(cè)的完整查詢的至少一個(gè)子集(330)。注意到,由于部分查詢可以與在查詢完成表212中的任一語(yǔ)言的查詢條目潛在匹 配,故完整查詢預(yù)測(cè)的排序集合可以以任一語(yǔ)言。搜索引擎304可以被配置為返回混合語(yǔ) 言預(yù)測(cè)的完整查詢或者可以被配置為選擇更可能預(yù)測(cè)部分查詢的那種語(yǔ)言。在搜索引擎 304生成以除在部分查詢中編碼的語(yǔ)言外的語(yǔ)言形式的預(yù)測(cè)的完整查詢的情況下,預(yù)測(cè)的 完整查詢表示自動(dòng)輸入法校正建議。如在上面參考圖2所注意的,在構(gòu)建查詢完成表時(shí),可以對(duì)來(lái)自用戶群體的歷史查詢?nèi)罩镜牟樵冞M(jìn)行過(guò)濾。然而,額外的過(guò)濾可以由各種用戶組(例如,請(qǐng)求了這樣的過(guò)濾 的用戶)請(qǐng)求或者代表各種用戶組而被應(yīng)用。因此,在一些實(shí)施例中,在對(duì)預(yù)測(cè)的完整查詢 進(jìn)行排序(326)之前或者在將預(yù)測(cè)的完整查詢遞送給客戶端(328)之前,對(duì)預(yù)測(cè)的完整查 詢的集合進(jìn)行過(guò)濾以移除與在一個(gè)或多個(gè)預(yù)定詞語(yǔ)集合中的一個(gè)或多個(gè)詞語(yǔ)相匹配的查 詢,如果存在這樣的查詢的話。例如,一個(gè)或多個(gè)預(yù)定詞語(yǔ)集合可以包括被認(rèn)為是令人反感 的或文化敏感的等英語(yǔ)詞語(yǔ)和朝鮮語(yǔ)詞語(yǔ)。執(zhí)行該方法的系統(tǒng)可以包括存儲(chǔ)在存儲(chǔ)器中的識(shí)別一個(gè)或多個(gè)預(yù)定詞語(yǔ)集合的一個(gè)或多個(gè)表(或其它數(shù)據(jù)結(jié)構(gòu))。在一些其它實(shí)施例中,遞送給客戶端(328)的預(yù)測(cè)的完整查詢的集合在客戶端處被過(guò)濾以移除與在一個(gè)或多 個(gè)預(yù)定詞語(yǔ)集合中的一個(gè)或多個(gè)詞語(yǔ)相匹配的查詢,如果存在這樣的查詢的話??蛇x地,多 個(gè)不同的過(guò)濾器可以被用于多個(gè)不同的用戶組。在一些實(shí)施例中,使用運(yùn)行期間過(guò)濾(響 應(yīng)于部分搜索查詢而執(zhí)行)替代在查詢完成表的構(gòu)建期間過(guò)濾。圖3B圖示了可以在客戶端系統(tǒng)102的搜索助手104中實(shí)現(xiàn)的實(shí)施例。搜索助手 104監(jiān)視用戶將搜索查詢輸入到客戶端系統(tǒng)102上的文本輸入框中(352)。用戶的輸入可 以是一個(gè)或多個(gè)字符或者一個(gè)或多個(gè)單詞(例如短語(yǔ)的第一個(gè)單詞或前兩個(gè)單詞、或者第 一個(gè)單詞和開頭字母、復(fù)合詞語(yǔ)的短語(yǔ)的新單詞的字符或標(biāo)志)。搜索助手104可以識(shí)別兩 種不同類型的查詢。第一種,先于在用戶指示完成輸入字符串時(shí),搜索助手104在輸入被識(shí) 別時(shí)接收或識(shí)別部分搜索查詢(如下所述)。第二種,搜索助手104在用戶選擇了展示的預(yù) 測(cè)或指示完成輸入字符串時(shí)接收或識(shí)別用戶輸入。當(dāng)用戶輸入或選擇被識(shí)別為完整的用戶輸入時(shí),該完整的用戶輸入被傳送到服務(wù) 器用于處理(354)。服務(wù)器返回搜索結(jié)果的集合,該集合由搜索助手104或由諸如瀏覽器應(yīng) 用的客戶端應(yīng)用接收(356)。在一些實(shí)施例中,瀏覽器應(yīng)用將搜索結(jié)果至少作為網(wǎng)頁(yè)的一部 分顯示。在一些其它實(shí)施例中,搜索助手104顯示搜索結(jié)果。替選地,完整的用戶輸入的傳 送(354)和對(duì)搜索結(jié)果的接收(356)可以由除搜索助手104外的機(jī)制來(lái)執(zhí)行。例如,這些 操作可以由使用標(biāo)準(zhǔn)請(qǐng)求和響應(yīng)協(xié)議的瀏覽器應(yīng)用來(lái)執(zhí)行。以多種方式,諸如當(dāng)用戶在搜索查詢的輸入期間輸入了回車或等價(jià)字符、選擇了 在向用戶展示的圖形用戶界面(GUI)中的“查找”或“搜索”按鈕時(shí),或者通過(guò)在搜索查詢 的輸入期間選擇向用戶展示的預(yù)測(cè)的查詢的集合中的一個(gè),搜索助手104(或?yàn)g覽器或其 它應(yīng)用)可以將用戶輸入識(shí)別為完整的用戶輸入。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)發(fā)信號(hào)搜索查 詢的最終輸入的多種方式。在用戶發(fā)信號(hào)完整的用戶輸入之前,部分搜索查詢可以被識(shí)別。例如,部分搜索查 詢通過(guò)檢測(cè)對(duì)在文本輸入框中的字符的輸入或刪除來(lái)識(shí)別。一旦部分搜索查詢被識(shí)別,該 部分搜索查詢即被傳送給服務(wù)器(358)。響應(yīng)于該部分搜索查詢,服務(wù)器返回包括預(yù)測(cè)的完 整搜索查詢的預(yù)測(cè)。搜索助手104接收(360)并展示(例如顯示、表達(dá)等)預(yù)測(cè)(362)。在向用戶展示了預(yù)測(cè)的完整查詢(362)后,如果用戶確定預(yù)測(cè)中的一個(gè)與預(yù)期輸 入相匹配,則用戶可以選擇預(yù)測(cè)的完整搜索查詢中的一個(gè)。在一些情況中,預(yù)測(cè)可以向用戶 提供未被考慮的額外信息。例如,用戶可以心里以一個(gè)查詢作為搜索策略的一部分,但是看 見預(yù)測(cè)的完整查詢促使用戶改變了輸入策略。一旦展示了集合(362),再次監(jiān)視用戶的輸入 (352)。如果用戶選擇了預(yù)測(cè)中的一個(gè),則將用戶輸入作為完整查詢(在此也被稱為完整的 用戶輸入)傳送給服務(wù)器(354)。在傳送請(qǐng)求后,再次監(jiān)視用戶的輸入活動(dòng)(352)。在一些實(shí)施例中,搜索助手104可以從服務(wù)器預(yù)載額外的預(yù)測(cè)結(jié)果(額外的預(yù)測(cè) 結(jié)果中的每一個(gè)是預(yù)測(cè)的完整查詢的集合)(364)。預(yù)載的預(yù)測(cè)結(jié)果可以被用來(lái)提高對(duì)用戶 輸入作出響應(yīng)的速度。例如,在用戶輸入<ban>時(shí),搜索助手104可以預(yù)載除關(guān)于<ban>的 預(yù)測(cè)結(jié)果外的關(guān)于〈bana〉、……、以及<bank>的預(yù)測(cè)結(jié)果。如果用戶再輸入一個(gè)字符,例 如<k>,來(lái)生成(部分搜索查詢)輸入<bank>,則可以在未將部分搜索查詢傳送到服務(wù)器或 接收預(yù)測(cè)的情況下顯示關(guān)于<bank>的預(yù)測(cè)結(jié)果。
在一些實(shí)施例中,在客戶端處本地地緩存預(yù)測(cè)結(jié)果的一個(gè)或多個(gè)集合。在搜索請(qǐng) 求者修改當(dāng)前查詢以反映以前的部分輸入(例如通過(guò)退格以移除一些字符)時(shí),替代將部 分輸入發(fā)送給服務(wù)器,從客戶端緩存檢索與以前的部分輸入相關(guān)聯(lián)的預(yù)測(cè)結(jié)果的集合并且 再次向用戶展示該集合。在一些實(shí)施例中,在接收關(guān)于最終輸入的搜索結(jié)果或文檔(356)后,或者在顯示 預(yù)測(cè)的完整搜索查詢(362)后,并且可選地預(yù)載了預(yù)測(cè)結(jié)果(364),搜索助手104繼續(xù)監(jiān)視 用戶輸入(352)直至用戶例如通過(guò)關(guān)閉包含搜索助手104的網(wǎng)頁(yè)來(lái)終止搜索助手104。在 一些其它實(shí)施例中,搜索助手104僅在文本輸入框1320(在下面參考圖13所論述的)被激 活時(shí)繼續(xù)監(jiān)視用戶輸入(352),以及在文本輸入框1320被失活時(shí)暫停監(jiān)視。在一些實(shí)施例 中,當(dāng)在用戶界面中的文本輸入框在瀏覽器應(yīng)用的當(dāng)前活動(dòng)窗口或工具欄中顯示時(shí),該文 本輸入框被激活,以及當(dāng)文本輸入框不被顯示或者文本輸入框不在瀏覽器應(yīng)用的活動(dòng)窗口 或工具欄中時(shí),該文本輸入框被失活。所描述的系統(tǒng)和技術(shù)具有關(guān)于解決以諸如朝鮮語(yǔ)、日語(yǔ)、中文以及許多其它語(yǔ)言 的語(yǔ)言形式的部分查詢的特定應(yīng)用?;虮环Q為謗文的書面朝鮮語(yǔ)利用被組織成音節(jié)塊的字 符的音標(biāo)字母。每一個(gè)音節(jié)塊由一個(gè)首部輔音、一個(gè)中部元音以及可選的尾部輔音組成。 存在19種可能的首部輔音,21種可能的元音以及27種可能的尾部輔音。在圖4A和4B中 示出了音節(jié)塊的可能的首部、中部以及尾部元素的列表??梢砸圆煌姆绞綄?duì)朝鮮語(yǔ)文本 進(jìn)行編碼,但是其常規(guī)以Unicode傳輸格式來(lái)表示,該Unicode傳輸格式使用不同的字符碼 來(lái)表示每一個(gè)音節(jié)塊組合即從ACOO到D7AF的11,172個(gè)預(yù)定的朝鮮語(yǔ)字符。常規(guī)使用 西方字母數(shù)字鍵盤布置來(lái)輸入朝鮮語(yǔ)文本,其中朝鮮語(yǔ)輔音和元音被映射到鍵盤上的字母 鍵。由于首部輔音需要一次鍵擊、中部元音和尾部輔音每一個(gè)需要一次或兩次鍵擊并且尾 部輔音是可選的,故單個(gè)朝鮮語(yǔ)音節(jié)塊字符需要在鍵盤上的兩次到五次之間的鍵擊。因此,在將部分查詢傳送到搜索引擎304時(shí)用戶輸入朝鮮語(yǔ)查詢可能正在輸入不 完整的朝鮮語(yǔ)字符的中途。此外,用戶可能正使用不正確的輸入法設(shè)置來(lái)試圖輸入朝鮮語(yǔ) 或英語(yǔ)查詢。所描述的系統(tǒng)和技術(shù)提供了用于以下的統(tǒng)一的解決方案通過(guò)將部分朝鮮語(yǔ)查詢 轉(zhuǎn)換為羅馬化表示形式來(lái)提供朝鮮語(yǔ)和英語(yǔ)的預(yù)測(cè)的完整查詢。這些朝鮮語(yǔ)查詢的羅馬化 表示形式與通過(guò)用戶使用英語(yǔ)輸入法來(lái)試圖輸入朝鮮語(yǔ)查詢而生成的在羅馬化字母表中 的字符相對(duì)應(yīng)。例如,朝鮮語(yǔ)查詢?nèi)罩究梢园ㄖT如下列的朝鮮語(yǔ)單詞· “ Sbl·^ “ (mobile)(移動(dòng)) "平言“(google)(谷歌)這些朝鮮語(yǔ)查詢的羅馬化表示形式將是以下 “ etl^ “ (mobile)(移動(dòng))=>"ahqkdlf"·丨丨寧躉”(google)(谷歌)=>"rnrmf"換句話說(shuō),用戶在被設(shè)置為朝鮮語(yǔ)輸入法的鍵盤上鍵入"ahqkdlf"將輸入朝鮮 語(yǔ)的單詞‘‘mobile”。圖4A、4B和5圖示了在查詢中的朝鮮語(yǔ)字符串到羅馬化表示形式的轉(zhuǎn)換。為了實(shí) 現(xiàn)該轉(zhuǎn)換,為形成每一個(gè)音節(jié)塊字符的組分的每一個(gè)輔音或元音計(jì)算索引。對(duì)于以Unicode 表示的朝鮮語(yǔ)字符,所述字符被安排為
Unicode =(首部輔音*21*28) + (中部元音*28) +可選的尾部+OxACOO該計(jì)算可以由數(shù)個(gè)調(diào)節(jié)和分割來(lái)完成。一旦為每一個(gè)朝鮮語(yǔ)字符確定了索引,可 以緩存與輔音和元音索引相對(duì)應(yīng)的英語(yǔ)字母。圖4A和4B示出了不同的朝鮮語(yǔ)輔音和元音 可以如何被映射到給定Unicode編碼的對(duì)應(yīng)的羅馬化字符。圖5圖示了轉(zhuǎn)換可以如何被處 理。參見圖5,檢索在字符串(例如,完整或部分搜索查詢)中的下一個(gè)字符(502)。初始, 在字符串中的第一個(gè)字符表示最初的“下一個(gè)字符”。確定字符是否被編碼在朝鮮語(yǔ)字符的 音節(jié)塊表示形式的范圍內(nèi)(504)。如果是(504-是),則如上所述從該字符導(dǎo)出首部和中部 和尾部值(506)。然后根據(jù)圖4A和4B將所述值映射到羅馬化字符(508)。然后將羅馬化 字符附加到結(jié)果字符串(509)。另一方面,如果該字符不是作為音節(jié)塊字符(504-否)而是 作為單個(gè)輔音或元音(510-是)來(lái)編碼,則輔音或元音(被編碼為字母碼)再次根據(jù)在圖 4A和4B中闡明的映射被直接轉(zhuǎn)換為羅馬化表示形式(512),以及然后被附加到結(jié)果字符串 的末尾(514)。如果該字符不以朝鮮語(yǔ)編碼(510-否),由于假設(shè)該字符已經(jīng)以羅馬化表示 形式,則可以將該字符直接附加到結(jié)果字符串(516)。過(guò)程迭代(518)直至到達(dá)字符串的末 尾。如上所述,將朝鮮語(yǔ)查詢?cè)陬A(yù)處理階段轉(zhuǎn)換為羅馬化表示形式并且根據(jù)朝鮮語(yǔ)查 詢的羅馬化表示形式將其組織在數(shù)據(jù)結(jié)構(gòu)中。通過(guò)將朝鮮語(yǔ)查詢轉(zhuǎn)換為羅馬化表示形式, 朝鮮語(yǔ)和英語(yǔ)預(yù)測(cè)的完整查詢均可以被一起存儲(chǔ)在用于預(yù)測(cè)服務(wù)器的統(tǒng)一數(shù)據(jù)結(jié)構(gòu)中。由 于英語(yǔ)查詢和朝鮮語(yǔ)查詢均使用羅馬化字母表來(lái)表示,所以相同的預(yù)測(cè)邏輯可以被利用來(lái) 生成英語(yǔ)預(yù)測(cè)和朝鮮語(yǔ)預(yù)測(cè)。在用戶將朝鮮語(yǔ)的部分查詢輸入到系統(tǒng)中時(shí),朝鮮語(yǔ)部分查詢被轉(zhuǎn)換為其羅馬化 表示形式。然后如同任何英語(yǔ)部分查詢,對(duì)照關(guān)于部分查詢的數(shù)據(jù)結(jié)構(gòu)核查該羅馬化表示 形式。由于朝鮮語(yǔ)字符由具有與在鍵盤上的原始鍵擊相同的順序的羅馬化字母表示,所以 不完整的朝鮮語(yǔ)查詢被正確地處理。基于該部分查詢來(lái)生成預(yù)測(cè)(即完整查詢)的列表。 顯而易見地,預(yù)測(cè)的完整查詢可以以朝鮮語(yǔ)或英語(yǔ)。因此,在一些情況下,與部分查詢相對(duì) 應(yīng)的預(yù)測(cè)的完整查詢包括朝鮮語(yǔ)和英語(yǔ)完整查詢兩者。在用戶使用朝鮮語(yǔ)輸入法來(lái)不正確 地輸入了英語(yǔ)部分查詢的情況下,系統(tǒng)將認(rèn)為羅馬化表示形式潛在地為英語(yǔ)查詢。例如,用 戶可能輸入下列查詢或下列的部分查詢
<image>image see original document page 13</image>由于該查詢未形成任何正確的音節(jié)塊,所以該查詢不會(huì)生成任何朝鮮語(yǔ)預(yù)測(cè)。然 而,關(guān)于該查詢的羅馬化表示形式為“mobile”,其將與包括英語(yǔ)單詞“mobile”的預(yù)測(cè)的完 整查詢相匹配,盡管用于部分查詢的語(yǔ)言編碼不正確。在用戶將英語(yǔ)的部分查詢輸入到系統(tǒng)中時(shí),系統(tǒng)將常規(guī)地處理該部分查詢。將對(duì) 照數(shù)據(jù)結(jié)構(gòu)核查該英語(yǔ)查詢并且生成預(yù)測(cè)的列表。此外,由于數(shù)據(jù)結(jié)構(gòu)包括以羅馬化表示 形式的朝鮮語(yǔ)查詢,所以系統(tǒng)將自動(dòng)識(shí)別由輸入法錯(cuò)誤產(chǎn)生的朝鮮語(yǔ)預(yù)測(cè)。圖6示出了與部分查詢“ho ” 602相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合604的示例。 在該示例中,在完整查詢的集合604中的第一位置包括具有最高頻率值的查詢(例如 “hotmail”),在該集合中的第二位置由具有下一最高頻率值的查詢(例如“hot dogs”)占 據(jù),等等。在該示例中,在給定的部分查詢和完整查詢之間的對(duì)應(yīng)性由部分查詢?cè)谕暾樵兊拈_頭部分的存在來(lái)確定(例如,字符“ho”在完整查詢“i^tmail”和“hotels in San Francisco”的開頭部分找到)。在其它實(shí)施例中,在給定的部分查詢和完整查詢之間的對(duì)應(yīng) 性由部分查詢?cè)谖挥谕暾樵冎械娜魏挝恢玫乃阉髟~語(yǔ)的開頭部分的存在來(lái)確定,如由完 整查詢的集合606所圖示(例如,字符“ho”在“i^tmail”的開頭部分以及在“cheap hotels in Cape Town”中的第二搜索詞語(yǔ)的開頭部分找到)。為了創(chuàng)建查詢完成表212的集合,從歷史查詢?nèi)罩?01、202選擇查詢(圖7,702)。 在一些實(shí)施例中,只有具有期望的元信息的查詢(例如,語(yǔ)言為英語(yǔ)的查詢)被處理。從 所選擇的查詢識(shí)別第一個(gè)部分查詢(704)。在一個(gè)實(shí)施例中,第一個(gè)部分查詢是所選擇的 查詢的第一個(gè)字符(即,對(duì)于查詢字符串“hot dog ingredients”來(lái)說(shuō)為“h”)。在一些 實(shí)施例中,在識(shí)別部分查詢之前應(yīng)用預(yù)處理(例如,將大寫字母轉(zhuǎn)換為小寫字母)。在表中 生成指示部分查詢、與部分查詢相對(duì)應(yīng)的完整查詢和其頻率的條目。在其它實(shí)施例中,被 用于排名的其它信息(例如,基于完整查詢由用戶群體提交時(shí)的日期/時(shí)間值和/或其它 因素來(lái)計(jì)算的排名分值)被存儲(chǔ)。如果所識(shí)別的部分查詢未表示整個(gè)查詢,則查詢處理未 完成(708-否)。因此,識(shí)別下一個(gè)部分查詢(710)。在一些實(shí)施例中,下一個(gè)部分查詢通 過(guò)將下一個(gè)額外的字符添加到先前識(shí)別的部分查詢來(lái)識(shí)別(即,對(duì)于查詢字符串“hot dog ingredients”來(lái)說(shuō)為“ho”)。繼續(xù)識(shí)別(710)和對(duì)查詢完成表的更新(706)的過(guò)程直至整 個(gè)查詢被處理(708-是)。如果尚未處理完所有的查詢(712-否),則從歷史查詢?nèi)罩具x擇 下一個(gè)查詢(702)并且對(duì)該查詢進(jìn)行處理直至所有的查詢被處理(712-是)。在一些實(shí)施 例中,當(dāng)將記錄項(xiàng)添加到查詢完成表時(shí),記錄項(xiàng)被插入使得在表中的記錄項(xiàng)根據(jù)排名或分 值被排序。在另一個(gè)實(shí)施例中,所有查詢完成表在表構(gòu)建過(guò)程的末尾被排序使得在每一個(gè) 查詢完成表中的記錄項(xiàng)根據(jù)在查詢完成表中的記錄項(xiàng)的排名或分值被排序。另外,一個(gè)或 多個(gè)查詢完成表可以被刪簡(jiǎn),使得表包含不超過(guò)預(yù)定數(shù)量的條目。如上所述,在一些實(shí)施例中,在將完整查詢插入查詢完成表中之前從歷史查詢?nèi)?志201、202過(guò)濾完整查詢(714)以排除與詞語(yǔ)的一個(gè)或多個(gè)預(yù)定集合相匹配的查詢,所述 預(yù)定集合諸如可能被認(rèn)為是令人反感的、文化敏感的等單詞??蛇x地,提交在查詢?nèi)罩?01 中的查詢的用戶群體可以與提交在查詢?nèi)罩?02中的查詢的用戶群體不同,在這種情況下 前述“用戶群體”包括兩個(gè)或多個(gè)用戶群體。如果查詢被過(guò)濾并且因此從為用于插入到查 詢完成表中的候選的查詢的集合被移除,則從歷史查詢?nèi)罩?01、202選擇下一個(gè)查詢(如 果存在的話)(702)。參見圖8,在表802中的804至812處圖示了查詢字符串“hot dogingredients” 的前五個(gè)字符的示例處理。在814至820處圖示了查詢字符串“hotmail”的前四個(gè)字符的 示例處理。在一些實(shí)施例中,關(guān)于給定的部分查詢的查詢完成表通過(guò)下述來(lái)創(chuàng)建從表識(shí)別 與給定的部分查詢相對(duì)應(yīng)的n個(gè)最經(jīng)常被提交的查詢并且將其以排名次序放置使得具有 最高排名(例如最高排名分值或頻率)的查詢位于列表的頂部。例如,關(guān)于部分查詢“hot” 的查詢完成表將包括完整查詢字符串808和818兩者。在排名基于頻率時(shí),由于在818中的 查詢字符串的頻率(即300,000)大于在808中的查詢字符串的頻率(即100,000),所以對(duì) 于“hotmail”的查詢字符串將出現(xiàn)在對(duì)于“hot dog ingredients”的查詢字符串的上方。 因此,在將預(yù)測(cè)的排序的集合返回給用戶時(shí),首先展示具有被選擇的更高可能性的查詢。如
14上所述,其它值可以被用于對(duì)預(yù)測(cè)的完整查詢進(jìn)行排名。在一些實(shí)施例中,來(lái)自用戶的簡(jiǎn)檔 的個(gè)性化信息可以被用于對(duì)預(yù)測(cè)的完整查詢進(jìn)行排名。參見圖9和10,在一些實(shí)施例中,通過(guò)將歷史查詢字符串分成諸如四(4)個(gè)字符的 預(yù)定大小C的“組塊(chunk) ”來(lái)減少查詢完成表212的數(shù)量。關(guān)于長(zhǎng)度小于C的部分查詢 的查詢完成表212保留不變。對(duì)于長(zhǎng)度為至少C的部分查詢,將部分查詢分成兩個(gè)部分前 綴部分和后綴部分。后綴部分的長(zhǎng)度S等于部分查詢的長(zhǎng)度(L)以C取模S = L modulo C。其中L為部分查詢的長(zhǎng)度。前綴部分的長(zhǎng)度P為部分查詢的長(zhǎng)度減去后綴的長(zhǎng) 度P = L-S。因此,例如,具有十(10)個(gè)字符的長(zhǎng)度的部分查詢(例如“hot potato")在 組塊大小C為四(4)時(shí)將具有后綴長(zhǎng)度S = 2以及前綴長(zhǎng)度P = 8。在執(zhí)行在圖7的步驟706中所示出的過(guò)程時(shí),在圖9中概念地圖示了識(shí)別或創(chuàng)建 與部分查詢相對(duì)應(yīng)的查詢完成表。圖9示意性地圖示了用于生成查詢完成表以及用于在處 理用戶輸入的部分查詢時(shí)進(jìn)行查找兩者的過(guò)程。在部分查詢的長(zhǎng)度小于一個(gè)“組塊”C的大 小時(shí),例如通過(guò)使用哈希函數(shù)(或其它指紋函數(shù))318將部分查詢映射到查詢指紋320 (圖 3A)。通過(guò)指紋到表的映射表210將指紋320映射到查詢完成表212。在部分查詢的長(zhǎng)度為至少一個(gè)組塊C的大小時(shí),將部分查詢902分解成前綴904 和后綴906,其長(zhǎng)度如上所解釋的由組塊大小規(guī)制。例如通過(guò)將哈希函數(shù)318應(yīng)用于前綴 904來(lái)為前綴904生成指紋908,并且然后通過(guò)指紋到表的映射表210將該指紋908映射到 “組塊化的”查詢完成表212。在一些實(shí)施例中,每一個(gè)組塊化的查詢完成表212是在更大 的查詢完成表中的條目的集合,而在其它實(shí)施例中,每一個(gè)組塊化的查詢完成表是分立的 數(shù)據(jù)結(jié)構(gòu)。各個(gè)查詢完成表的每一個(gè)條目911包括為完整查詢的文本的查詢字符串,并且 還可以可選地包括用于對(duì)在查詢完成表212中的條目進(jìn)行排序的分值916。組塊化的查詢 完成表的每一個(gè)條目包括對(duì)應(yīng)的部分查詢的后綴914。在各個(gè)條目911中的后綴914具有 可以為從零至C-1的任何值的長(zhǎng)度S,并且包括部分查詢的未被包括在前綴904中的零或多 個(gè)字符。在一些實(shí)施例中,在生成用于歷史查詢的查詢完成表?xiàng)l目911時(shí),在每一個(gè)組塊化 的查詢完成表212中僅僅生成一個(gè)與該歷史查詢相對(duì)應(yīng)的條目。特別地,該一個(gè)條目911 包含關(guān)于該歷史查詢的最長(zhǎng)的可能的后綴,直至C-1個(gè)字符長(zhǎng)。在其它實(shí)施例中,在每一個(gè) 組塊化的查詢完成表212中生成關(guān)于特定歷史查詢的直至C個(gè)條目,每一個(gè)條目用于每一 個(gè)不同的后綴??蛇x地,在各個(gè)查詢完成表212中的每一個(gè)條目包括指示與完整查詢913相關(guān)聯(lián) 的語(yǔ)言的語(yǔ)言值或指示符912。然而,在所有的查詢字符串913以其原始語(yǔ)言被存儲(chǔ)在查詢 完成表212中的實(shí)施例中可以省略語(yǔ)言值912??蛇x地,在各個(gè)查詢完成表212中的每一個(gè)條目包括用于將表?xiàng)l目與部分查詢前 綴的指紋進(jìn)行匹配的查詢指紋918。然而,在一些實(shí)施例(例如,具有關(guān)于每一個(gè)不同的部 分查詢前綴的單獨(dú)的查詢完成表212的實(shí)施例)中,可以從查詢完成表212的條目省略指 紋 918。圖10示出了包含與歷史查詢“hot potato”相對(duì)應(yīng)的條目911的一組查詢完成表。 該示例假設(shè)組塊大小C等于四。在其它實(shí)施例中,組塊大小可以是2、3、5、6、7、8或任何其 它適當(dāng)?shù)闹?。組塊大小C可以基于經(jīng)驗(yàn)信息來(lái)選擇。在圖10中示出的前三個(gè)查詢完成表
15212-1至212-3分別關(guān)于部分查詢“h”、“ho”和“hot”。下兩個(gè)查詢完成表212-4和212-5 分別與具有7和10的部分查詢長(zhǎng)度的部分查詢“hot pot”(以“hot”為其前綴部分,并且 “pot”為其后綴部分)和“hot potato"(以“hot pota”為其前綴部分,并且“to”為其后 綴部分)相對(duì)應(yīng)。以另一種方式敘述,查詢完成表212-4與以“hot”開始并且具有在4和 7之間的長(zhǎng)度的所有部分查詢相對(duì)應(yīng);而查詢完成表212-5與以“hotpota”開始并且具有 在8和11之間的長(zhǎng)度的所有部分查詢相對(duì)應(yīng)。返回參見圖7,對(duì)于由操作710部分地形成的循環(huán)的每一次迭代,部分查詢的長(zhǎng)度 最初增加了一個(gè)字符的步長(zhǎng),直至達(dá)到C-1的長(zhǎng)度,并且然后部分查詢的長(zhǎng)度增加了 C個(gè)字 符的步長(zhǎng),直至達(dá)到歷史查詢的全長(zhǎng)。結(jié)果,在c = 4時(shí),歷史查詢“hot potato”產(chǎn)生在分別 與具有1、2、3、4-7以及8-10個(gè)字符的長(zhǎng)度的部分搜索查詢相對(duì)應(yīng)的五個(gè)這樣的表(212-1 至212-5)中的查詢完成表?xiàng)l目(在圖10中示出)。根據(jù)在條目911中的查詢字符串913的排名值(由分值916表示)對(duì)每一個(gè)組塊 化的查詢完成表的條目911進(jìn)行排序。對(duì)于具有小于C個(gè)字符的部分查詢,在查詢完成表 212中的查詢的數(shù)量是第一值(例如,10,20或在4和20之間的任何適當(dāng)?shù)闹?,其可以表 示作為預(yù)測(cè)返回的查詢的數(shù)量。在一些實(shí)施例中,在每一個(gè)組塊化的查詢完成表910中的 條目911的最大數(shù)量(例如在1000和10,000之間的數(shù)量)顯著地大于第一值。每一個(gè)組 塊化的查詢完成表212可以替代數(shù)十或數(shù)百個(gè)普通的查詢完成表。因此,每一個(gè)組塊化的 查詢完成表212的大小被設(shè)置,以便包含與具有與組塊化的查詢完成表相對(duì)應(yīng)的前綴部分 的所有或幾乎所有的核準(zhǔn)的歷史查詢相對(duì)應(yīng)的多(P)個(gè)條目,而不會(huì)達(dá)到在生成關(guān)于用戶 指定的部分查詢的預(yù)測(cè)的完整查詢的列表時(shí)產(chǎn)生過(guò)度時(shí)延的那樣的長(zhǎng)度。在從歷史查詢的集合生成了查詢完成表212和指紋到表的映射表210之后,這些 相同的數(shù)據(jù)結(jié)構(gòu)(或其副本)被用于識(shí)別與用戶輸入的部分查詢相對(duì)應(yīng)的查詢的預(yù)測(cè)的集 合。如在圖9中所示,如由部分查詢的長(zhǎng)度所確定的,首先通過(guò)將哈希函數(shù)(或其它指紋函 數(shù))318應(yīng)用于整個(gè)部分查詢902或部分查詢的前綴部分904,將用戶輸入的部分查詢映射 到查詢指紋320。然后通過(guò)在指紋到表的映射表210中執(zhí)行對(duì)查詢指紋的查找,將查詢指紋 320映射到查詢完成表212。最后,從所識(shí)別的查詢完成表提取直至N個(gè)預(yù)測(cè)的查詢的排序 的集合。在部分查詢的長(zhǎng)度小于組塊大小時(shí),預(yù)測(cè)的查詢的排序的集合是在所識(shí)別的查詢 完成表中的前N個(gè)查詢。在部分查詢的長(zhǎng)度等于或長(zhǎng)于組塊大小時(shí),在所識(shí)別的查詢完成 表中搜索與部分查詢的后綴相匹配的前N個(gè)項(xiàng)。由于在查詢完成表212中的條目以降低的 排名來(lái)排序,所以搜索匹配的條目的過(guò)程從頂部開始并且繼續(xù)直到獲取了待返回的期望數(shù) 量(N)(例如10)的預(yù)測(cè),或者直到到達(dá)了查詢完成表212的末尾。在部分查詢的后綴906 與在條目911中的后綴914的對(duì)應(yīng)部分相同時(shí),存在“匹配”。例如,參見圖10,一個(gè)字母后 綴
分別與具有后綴<pot>和<pla>的條目911-3和911-4相匹配。具有長(zhǎng)度零的空后 綴(也被稱為空字符串)與在查詢完成表中的所有條目相匹配,并且因此在部分查詢的后 綴部分為空字符串時(shí),將在表中的前N個(gè)項(xiàng)作為預(yù)測(cè)的查詢返回。參見圖11,實(shí)現(xiàn)上述方法的客戶端系統(tǒng)102的實(shí)施例包括一個(gè)或多個(gè)處理單元 (CPU) 1102、一個(gè)或多個(gè)網(wǎng)絡(luò)或其它通信接口 1104、存儲(chǔ)器1106以及用于互連這些組件的 一個(gè)或多個(gè)通信總線1108。在一些實(shí)施例中,在客戶端系統(tǒng)102中包括更少和/或額外的 組件、模塊或功能。通信總線1108可以包括互連并控制系統(tǒng)組件間的通信的電路(有時(shí)被稱為芯片集)??蛻舳?02可以可選地包括用戶接口 1110。在一些實(shí)施例中,用戶接口 1110包括顯示設(shè)備1112和/或鍵盤1114,而用戶接口設(shè)備的其它配置也可以被使用。存 儲(chǔ)器1106可以包括高速隨機(jī)存取存儲(chǔ)器并且還可以包括非易失性存儲(chǔ)器,諸如一個(gè)或多 個(gè)磁或光存儲(chǔ)盤、閃存設(shè)備或其它非易失性固態(tài)存儲(chǔ)設(shè)備。高速隨機(jī)存取存儲(chǔ)器可以包括 諸如DRAM、SRAM、DDR RAM或其它隨機(jī)存取固態(tài)存儲(chǔ)設(shè)備的存儲(chǔ)設(shè)備。存儲(chǔ)器1106可以可 選地包括位于遠(yuǎn)離CPU 1102的位置的海量存儲(chǔ)器。存儲(chǔ)器1106或替選地在存儲(chǔ)器1106 內(nèi)的非易失性存儲(chǔ)設(shè)備包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)器1106存儲(chǔ)以下要素或這些要素 的子集,并且還可以包括額外的要素·操作系統(tǒng)1116,其包括用于處理各種基本系統(tǒng)服務(wù)和用于執(zhí)行依賴硬件的任務(wù) 的程序;·網(wǎng)絡(luò)通信模塊(或指令)1118,其被用于經(jīng)由一個(gè)或多個(gè)通信網(wǎng)絡(luò)接口 1104和 諸如因特網(wǎng)、其它廣域網(wǎng)、局域網(wǎng)、城域網(wǎng)等的一個(gè)或多個(gè)通信網(wǎng)絡(luò)將客戶端系統(tǒng)102連接 到其它計(jì)算機(jī); 客戶端應(yīng)用1120 (例如因特網(wǎng)瀏覽器應(yīng)用);客戶端應(yīng)用可以包括用于以下的指 令與用戶進(jìn)行交互以接收搜索查詢;將搜索查詢提交給服務(wù)器或在線服務(wù);以及顯示或 展示搜索結(jié)果;·網(wǎng)頁(yè)1122,其包括待在客戶端102上顯示或展示的網(wǎng)頁(yè)內(nèi)容1124 ;與客戶端應(yīng) 用1120協(xié)同的網(wǎng)頁(yè)實(shí)現(xiàn)用于展示網(wǎng)頁(yè)內(nèi)容1124以及用于與客戶端102的用戶進(jìn)行交互的 圖形用戶界面;·數(shù)據(jù)1136,其包括預(yù)測(cè)的完整搜索查詢;以及·搜索助手104。至少,搜索助手104將部分搜索查詢信息傳送給服務(wù)器。搜索助手還可以使包括 預(yù)測(cè)的完整查詢的預(yù)測(cè)數(shù)據(jù)能夠被顯示,以及用戶能夠選擇所顯示的預(yù)測(cè)的完整搜索查 詢。在一些實(shí)施例中,搜索助手104包括以下要素或這樣的要素的子集輸入和選擇監(jiān)視模 塊(或指令)1128,其用于監(jiān)視對(duì)搜索查詢的輸入以及選擇部分搜索查詢用于傳送給服務(wù) 器;部分/完整輸入傳送模塊(或指令)1130,其用于將部分搜索查詢和(可選)完整搜索 查詢傳送給服務(wù)器;預(yù)測(cè)數(shù)據(jù)接收模塊(或指令)1132,其用于接收預(yù)測(cè)的完整查詢;以及 預(yù)測(cè)數(shù)據(jù)顯示模塊(或指令)1134,其用于顯示預(yù)測(cè)的完整查詢的至少一個(gè)子集和任何額 外的信息。對(duì)最終(即完整)查詢的傳送、接收關(guān)于完整查詢的搜索結(jié)果以及顯示這樣的 結(jié)果可以由客戶端應(yīng)用/瀏覽器1120、搜索助手104或其組合來(lái)處理。搜索助手104可以 以多種方式來(lái)實(shí)現(xiàn)。在一些實(shí)施例中,用于輸入查詢以及用于展示對(duì)查詢的響應(yīng)的網(wǎng)頁(yè)1122還包括 例如Macromedia Flash對(duì)象或Microsoft Silverlight對(duì)象(兩者均與各自的瀏覽器插 件共同工作)的JavaScript或其它嵌入式代碼或者指令,所述代碼或指令用于幫助將部分 搜索查詢傳送給服務(wù)器、用于接收并顯示預(yù)測(cè)的搜索查詢以及用于對(duì)預(yù)測(cè)的搜索查詢中的 任何查詢的用戶選擇作出響應(yīng)。特別地,在一些實(shí)施例中,搜索助手104例如作為可執(zhí)行的 功能被嵌入在網(wǎng)頁(yè)1122中、使用由客戶端102可執(zhí)行的JavaScript (Sun Microsystems的 商標(biāo))或其它指令來(lái)實(shí)現(xiàn)。替選地,搜索助手104作為客戶端應(yīng)用1120的一部分或作為由 客戶端102與客戶端應(yīng)用1120協(xié)同來(lái)執(zhí)行的客戶端應(yīng)用1120的擴(kuò)展、插件或工具欄來(lái)實(shí)現(xiàn)。在又其它實(shí)施例中,搜索助手104作為與客戶端應(yīng)用1120分離的程序來(lái)實(shí)現(xiàn)。在一些實(shí)施例中,用于處理查詢信息的系統(tǒng)包括用于執(zhí)行程序的一個(gè)或多個(gè)中央 處理單元以及用于存儲(chǔ)數(shù)據(jù)和用于存儲(chǔ)待由一個(gè)或多個(gè)中央處理單元執(zhí)行的程序的存儲(chǔ) 器。存儲(chǔ)器存儲(chǔ)根據(jù)排名函數(shù)排序的由用戶群體先前提交的完整查詢的集合,該集合與部 分搜索查詢相對(duì)應(yīng)并且包括英語(yǔ)和朝鮮語(yǔ)完整搜索查詢兩者。存儲(chǔ)器進(jìn)一步存儲(chǔ)接收模 塊,其用于從搜索請(qǐng)求者接收部分搜索查詢;預(yù)測(cè)模塊,其用于將預(yù)測(cè)的完整查詢的集合與 部分搜索查詢相關(guān)聯(lián);以及傳送模塊,其用于將集合的至少部分傳送給搜索請(qǐng)求者。圖12描述了實(shí)現(xiàn)上述方法的服務(wù)器系統(tǒng)1200的示例。服務(wù)器系統(tǒng)1200與圖1 中的搜索引擎108和圖3A中的搜索引擎304相對(duì)應(yīng)。服務(wù)器系統(tǒng)1200包括一個(gè)或多個(gè)處 理單元(CPU) 1202、一個(gè)或多個(gè)網(wǎng)絡(luò)或其它通信接口 1204、存儲(chǔ)器1206以及用于互連這些 組件的一個(gè)或多個(gè)通信總線1208。通信總線1208可以包括互連并控制系統(tǒng)組件間的通信 的電路(有時(shí)被稱為芯片集)。應(yīng)當(dāng)理解,在一些其它實(shí)施例中,服務(wù)器系統(tǒng)1200可以使 用多個(gè)服務(wù)器來(lái)實(shí)現(xiàn)以便提高其吞吐量和可靠性。例如,查詢?nèi)罩?24和126可以在與在 服務(wù)器系統(tǒng)1200中的服務(wù)器中的其它服務(wù)器相通信并且與之協(xié)同工作的不同的服務(wù)器上 來(lái)實(shí)現(xiàn)。作為另一個(gè)示例,排序集合構(gòu)建器208可以在分立的服務(wù)器或計(jì)算設(shè)備中來(lái)實(shí)現(xiàn)。 因此,與作為在此所描述的實(shí)施例的結(jié)構(gòu)性示意相比,圖12更意在作為對(duì)可以在一組服務(wù) 器中展示的各種特征的功能性描述。被用來(lái)實(shí)現(xiàn)服務(wù)器系統(tǒng)1200的服務(wù)器的實(shí)際數(shù)量以 及如何在這些服務(wù)器之間分配特征將因?qū)嵤┓绞蕉?,并且部分地取決于系統(tǒng)在高峰使用 期間以及在平均使用期間必須處理的數(shù)據(jù)業(yè)務(wù)量。存儲(chǔ)器1206可以包括高速隨機(jī)存取存儲(chǔ)器并且還可以包括非易失性存儲(chǔ)器,諸 如一個(gè)或多個(gè)磁或光存儲(chǔ)盤、閃存設(shè)備或其它非易失性固態(tài)存儲(chǔ)設(shè)備。高速隨機(jī)存取存儲(chǔ) 器可以包括諸如DRAM、SRAM、DDR RAM或其它隨機(jī)存取固態(tài)存儲(chǔ)設(shè)備的存儲(chǔ)設(shè)備。存儲(chǔ)器 1206可以可選地包括位于遠(yuǎn)離CPU 1202的位置的海量存儲(chǔ)器。存儲(chǔ)器1206或替選地在存 儲(chǔ)器1206內(nèi)的非易失性存儲(chǔ)設(shè)備包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)器1206存儲(chǔ)以下要素或 這些要素的子集,并且還可以包括額外的要素·操作系統(tǒng)1216,其包括用于處理各種基本系統(tǒng)服務(wù)和用于執(zhí)行依賴硬件的任務(wù) 的程序;·網(wǎng)絡(luò)通信模塊(或指令)1218,其被用于經(jīng)由一個(gè)或多個(gè)通信網(wǎng)絡(luò)接口 1204和 諸如因特網(wǎng)、其它廣域網(wǎng)、局域網(wǎng)、城域網(wǎng)等的一個(gè)或多個(gè)通信網(wǎng)絡(luò)將服務(wù)器系統(tǒng)1200連 接到其它計(jì)算機(jī); 查詢服務(wù)器110,其用于從客戶端接收部分搜索查詢和完整搜索查詢以及遞送響 應(yīng);以及 預(yù)測(cè)服務(wù)器112,其用于從查詢服務(wù)器110接收部分搜索查詢以及用于產(chǎn)生并遞 送響應(yīng)。查詢服務(wù)器110可以包括以下要素或這些要素的子集,并且還可以包括額外的要 素·客戶端通信模塊(或指令)116,其被用于與客戶端通信查詢和響應(yīng);·部分查詢接收、處理和響應(yīng)模塊(或指令)120 ;以及· 一個(gè)或多個(gè)查詢?nèi)罩?24和126,其包含與由用戶群體提交的查詢有關(guān)的信息。
查詢處理模塊(或指令)114從查詢服務(wù)器110接收完整搜索查詢以及產(chǎn)生并遞 送響應(yīng)。在一些實(shí)施例中,查詢處理模塊(或指令)包括包含信息的數(shù)據(jù)庫(kù),該信息包括查 詢結(jié)果和例如與查詢結(jié)果相關(guān)聯(lián)的廣告的可選地額外的信息。預(yù)測(cè)服務(wù)器112可以包括以下要素、這些要素的子集,并且還可以包括額外的要 素·部分查詢接收模塊(或指令)1222 ;·語(yǔ)言確定模塊(或指令)1224 ;·語(yǔ)言轉(zhuǎn)換模塊(或指令)1226 ;·哈希函數(shù)(或其它指紋函數(shù))1228 ;
·用于查詢完成表查找的模塊(或指令)1230 ;·結(jié)果排序模塊(或指令)1232 ;·結(jié)果傳送模塊(或指令)1234 ;以及·預(yù)測(cè)數(shù)據(jù)庫(kù)1220,其可以包括一個(gè)或多個(gè)查詢完成表212以及一個(gè)或多個(gè)指紋 到表的映射表210 (在上面參考圖2所描述的)。排序集合構(gòu)建器208可以可選地包括一個(gè)或多個(gè)過(guò)濾器204、205和/或語(yǔ)言轉(zhuǎn)換 模塊(或指令)250。盡管在此關(guān)于被設(shè)計(jì)為與位于遠(yuǎn)離搜索請(qǐng)求者的位置的預(yù)測(cè)數(shù)據(jù)庫(kù)一起使用的 服務(wù)器進(jìn)行了論述,應(yīng)當(dāng)理解在此公開的概念同樣適用于其它搜索環(huán)境。例如,在此描述 的相同技術(shù)可以應(yīng)用于針對(duì)任何類型的信息庫(kù)的查詢,其中針對(duì)所述信息庫(kù)運(yùn)行查詢或搜 索。因此,應(yīng)當(dāng)寬泛地解釋術(shù)語(yǔ)“服務(wù)器”以包括所有這樣的使用。盡管在圖11和12中被圖示為不同的模塊或組件,各種模塊或組件可以位于或共 同位于服務(wù)器或客戶端內(nèi)。例如,在一些實(shí)施例中,預(yù)測(cè)服務(wù)器112和/或預(yù)測(cè)數(shù)據(jù)庫(kù)1220 的部分駐留于客戶端系統(tǒng)102上或者形成搜索助手104的一部分。例如,在一些實(shí)施例中, 可以將關(guān)于最受歡迎的搜索的哈希函數(shù)1228和一個(gè)或多個(gè)查詢完成表212和一個(gè)或多個(gè) 指紋到表的映射表210定期地下載到客戶端系統(tǒng)102,從而為至少一些部分搜索查詢提供 完全基于客戶端的處理。在另一個(gè)實(shí)施例中,搜索助手104可以包括預(yù)測(cè)服務(wù)器112的本地版本,其用于至 少部分地基于經(jīng)由用戶的在先查詢來(lái)進(jìn)行完整搜索查詢預(yù)測(cè)。替選地或另外地,本地預(yù)測(cè) 服務(wù)器可以基于從服務(wù)器或遠(yuǎn)程預(yù)測(cè)服務(wù)器下載的數(shù)據(jù)來(lái)生成預(yù)測(cè)。此外,搜索助手104 可以將本地生成和遠(yuǎn)程生成的預(yù)測(cè)集合合并來(lái)向用戶展示??梢砸远喾N方式中的任何方式 來(lái)合并結(jié)果,例如通過(guò)交錯(cuò)兩個(gè)集合或者通過(guò)合并集合同時(shí)偏向用戶先前提交的查詢使得 這些查詢易于接近預(yù)測(cè)的查詢的組合列表的頂部被放置或插入。在一些實(shí)施例中,搜索助 手104將認(rèn)為對(duì)用戶重要的查詢插入預(yù)測(cè)的集合中。例如,可以將用戶經(jīng)常提交但并未包 括在從服務(wù)器獲取的集合中的查詢插入預(yù)測(cè)中。在諸如圖3A、3B、5、7和9中的流程圖中示出的操作和在本文檔中被描述為由客戶 端系統(tǒng)、服務(wù)器、搜索引擎等執(zhí)行的其它操作與存儲(chǔ)在各個(gè)客戶端系統(tǒng)、服務(wù)器或其它計(jì)算 機(jī)系統(tǒng)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的指令相對(duì)應(yīng)。在圖11(存儲(chǔ)器1106)和圖12(存儲(chǔ)器 1206)中示出了這樣的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例。在本文檔中描述的軟件模塊、程序和/ 或可執(zhí)行功能中的每一個(gè)與存儲(chǔ)在各個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的指令相對(duì)應(yīng),并且與用于執(zhí)行上述功能的指令集相對(duì)應(yīng)。所識(shí)別的模塊、程序和/或功能(即指令集)不必作為獨(dú) 立的軟件程序、過(guò)程或模塊來(lái)實(shí)現(xiàn),并且因此這些模塊的各種子集可以在各種實(shí)施例中被 組合或重新布置。圖13圖示了說(shuō)明性客戶端系統(tǒng)的用戶界面。在該示例中,瀏覽器應(yīng)用的窗口 1310 包括描述對(duì)部分查詢<ah>的輸入的文本輸入框1320。響應(yīng)于檢測(cè)到部分查詢并且從預(yù)測(cè) 服務(wù)器或搜索引擎接收預(yù)測(cè)的完整查詢,在顯示區(qū)域1330中顯示預(yù)測(cè)的完整查詢的至少 一個(gè)子集以可能由客戶端系統(tǒng)的用戶選擇。如所述,在從文本輸入框1320伸出的下拉框 (對(duì)應(yīng)于顯示區(qū)域1330)中展示預(yù)測(cè)的完整查詢。注意到,對(duì)部分查詢<ah>的輸入生成了 英語(yǔ)結(jié)果(預(yù)測(cè)的完整查詢),即<aha>和〈ahead〉,以及朝鮮語(yǔ)結(jié)果。這是由于如上所述 該朝鮮語(yǔ)結(jié)果與羅馬化表示形式<ahqkdlf>相對(duì)應(yīng)。因此,如果就用戶而言部分查詢由于 輸入法錯(cuò)誤(例如,使用英語(yǔ)字符輸入而不是朝鮮語(yǔ)或謗文文本輸入)而被錯(cuò)誤地輸入,并 且預(yù)測(cè)結(jié)果包括用戶感興趣的朝鮮語(yǔ)查詢,則用戶可以通過(guò)選擇期望的朝鮮語(yǔ)查詢來(lái)避免 對(duì)部分查詢的重新輸入。盡管各個(gè)附圖中的某些附圖以特定順序圖示了多個(gè)邏輯階段,但是不依賴順序的 階段可以被重新排序以及其它階段可以被組合或分解。雖然特定提及了一些重新排序或 其它聚組,但是其它重新排序或聚組對(duì)本領(lǐng)域技術(shù)人員將是顯而易見的并且因此并未展示 替選方案的窮盡列表。此外,應(yīng)當(dāng)認(rèn)識(shí)到,階段可以在硬件、固件、軟件或其任何組合中來(lái)實(shí) 現(xiàn)。為了解釋的目的,關(guān)于特定實(shí)施例描述了在前的描述。然而,在上面的說(shuō)明性論述 并不意在窮舉或?qū)⒈景l(fā)明限制在所公開的精確形式。鑒于上述教導(dǎo)許多修改和變化是可能 的。選擇并描述了實(shí)施例以便最佳地解釋本發(fā)明的原理以及其實(shí)際應(yīng)用,從而使本領(lǐng)域技 術(shù)人員能夠以適合于預(yù)期的特定用途的各種修改來(lái)最佳地利用本發(fā)明和各種實(shí)施例。
權(quán)利要求
一種用于處理查詢信息的方法,包括在服務(wù)器處,從搜索請(qǐng)求者接收部分搜索查詢,所述搜索請(qǐng)求者位于遠(yuǎn)離所述服務(wù)器的位置;從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合,所述先前提交的完整查詢由用戶群體提交;所述預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者;根據(jù)排名標(biāo)準(zhǔn)對(duì)所述預(yù)測(cè)的完整查詢的集合進(jìn)行排序;以及將所排序的集合的至少一個(gè)子集遞送給所述搜索請(qǐng)求者。
2.如權(quán)利要求1所述的方法,其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述第二語(yǔ)言是英語(yǔ)。
3.如權(quán)利要求1所述的方法,其中,在所述部分搜索查詢包括部分輸入的第一語(yǔ)言搜 索查詢時(shí),所述方法包括生成所述部分搜索查詢的羅馬化表示形式。
4.如權(quán)利要求1所述的方法,其中,在所接收的部分搜索查詢包括一個(gè)或多個(gè)第一語(yǔ) 言字符時(shí),獲取預(yù)測(cè)的完整查詢的集合包括將所述部分搜索查詢轉(zhuǎn)換為所述部分搜索查詢的以所述第二語(yǔ)言的字符的表示形式;將哈希函數(shù)應(yīng)用于所述部分搜索查詢的所述表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
5.如權(quán)利要求1所述的方法,其中,在所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的 第一語(yǔ)言字符和一個(gè)不完整的第一語(yǔ)言字符時(shí),獲取預(yù)測(cè)的完整查詢的集合包括將所述部分搜索查詢轉(zhuǎn)換為所述部分搜索查詢的羅馬化表示形式;將哈希函數(shù)應(yīng)用于所述部分搜索查詢的所述羅馬化表示形式以產(chǎn)生哈希值;以及使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
6.如權(quán)利要求1所述的方法,其中所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的第一 語(yǔ)言字符和一個(gè)不完整的第一語(yǔ)言字符。
7.如權(quán)利要求1所述的方法,包括在所述遞送之前,對(duì)所述預(yù)測(cè)的完整查詢的集合進(jìn) 行過(guò)濾,以如果存在與在一個(gè)或多個(gè)預(yù)定詞語(yǔ)集合中的一個(gè)或多個(gè)詞語(yǔ)相匹配的查詢,則 移除所述查詢。
8.一種用于處理查詢信息的方法,包括 在客戶端處,從搜索請(qǐng)求者接收部分搜索查詢;從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集 合,所述先前提交的完整查詢由用戶群體提交,其中所述預(yù)測(cè)的完整查詢的集合包括第一 語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且根據(jù)排名標(biāo)準(zhǔn)被排序;以及 向所述搜索請(qǐng)求者顯示所排序的集合的至少一個(gè)子集。
9.如權(quán)利要求8所述的方法,其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述第二語(yǔ)言是英語(yǔ)。
10.如權(quán)利要求8所述的方法,其中,在所述部分搜索查詢包括部分輸入的第一語(yǔ)言搜 索查詢時(shí),所述方法包括生成所述部分第一語(yǔ)言搜索查詢的羅馬化表示形式。
11.如權(quán)利要求8所述的方法,其中所述獲取包括在所接收的部分搜索查詢包括一個(gè) 或多個(gè)第一語(yǔ)言字符時(shí)將所述部分搜索查詢轉(zhuǎn)換為所述部分搜索查詢的以所述第二語(yǔ)言的字符的表示形式;將哈希函數(shù)應(yīng)用于所述部分搜索查詢的所述表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
12.如權(quán)利要求8所述的方法,其中所述獲取包括在所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的第一語(yǔ)言字符和一個(gè)不完整的第一 語(yǔ)言字符時(shí),將所述部分搜索查詢轉(zhuǎn)換為所述部分搜索查詢的羅馬化表示形式,將哈希函 數(shù)應(yīng)用于所述部分搜索查詢的所述羅馬化表示形式以產(chǎn)生哈希值,以及使用所述哈希值來(lái) 執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
13.如權(quán)利要求8所述的方法,其中所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的第 一語(yǔ)言字符和一個(gè)不完整的第一語(yǔ)言字符。
14.一種用于處理查詢信息的系統(tǒng),包括一個(gè)或多個(gè)中央處理單元,所述一個(gè)或多個(gè)中央處理單元用于執(zhí)行程序;以及 存儲(chǔ)器,所述存儲(chǔ)器用來(lái)存儲(chǔ)數(shù)據(jù)以及存儲(chǔ)由所述一個(gè)或多個(gè)中央處理單元執(zhí)行的一 個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序包括指令,所述指令用于從搜索請(qǐng)求者接收部分搜索查詢,所述搜索請(qǐng)求者位于遠(yuǎn)離服務(wù)器的位置; 從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集 合,所述先前提交的完整查詢由用戶群體提交;所述預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言 和與所述第一語(yǔ)言不同的第二語(yǔ)言兩者的完整搜索查詢;根據(jù)排名標(biāo)準(zhǔn)對(duì)所述預(yù)測(cè)的完整查詢的集合進(jìn)行排序;以及 將所排序的集合的至少一個(gè)子集遞送給所述搜索請(qǐng)求者。
15.如權(quán)利要求14所述的系統(tǒng),其中所述一個(gè)或多個(gè)程序包括用于生成包括部分輸入 的第一語(yǔ)言搜索查詢的各個(gè)部分搜索查詢的羅馬化表示形式的指令。
16.如權(quán)利要求14所述的系統(tǒng),其中所述用于獲取預(yù)測(cè)的完整查詢的集合的指令包括 用于以下的指令將包括一個(gè)或多個(gè)第一語(yǔ)言字符的各個(gè)部分搜索查詢轉(zhuǎn)換為所述各個(gè)部分搜索查詢 的以所述第二語(yǔ)言的字符的表示形式;將哈希函數(shù)應(yīng)用于所述部分搜索查詢的所述表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
17.如權(quán)利要求14所述的系統(tǒng),其中所述用于獲取預(yù)測(cè)的完整查詢的集合的指令包括 用于以下的指令將包括一個(gè)或多個(gè)完整的第一語(yǔ)言字符和一個(gè)不完整的第一語(yǔ)言字符的各個(gè)部分搜 索查詢轉(zhuǎn)換為所述各個(gè)部分搜索查詢的羅馬化表示形式;將哈希函數(shù)應(yīng)用于所述各個(gè)部分搜索查詢的所述羅馬化表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
18.如權(quán)利要求14所述的系統(tǒng),其中所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的第 一語(yǔ)言字符和一個(gè)不完整的第一語(yǔ)言字符。
19.如權(quán)利要求14所述的系統(tǒng),其中所述用于獲取預(yù)測(cè)的完整查詢的集合的指令包括 用于以下的指令對(duì)所述預(yù)測(cè)的完整查詢的集合進(jìn)行過(guò)濾,以如果存在與在一個(gè)或多個(gè)預(yù)定詞語(yǔ)集合中的一個(gè)或多個(gè)詞語(yǔ)相匹配的查詢,則移除所述查詢。
20.如權(quán)利要求14所述的系統(tǒng),其中所述用于獲取預(yù)測(cè)的完整查詢的集合的指令包括 用于以下的指令將包括一個(gè)或多個(gè)朝鮮語(yǔ)字符的各個(gè)部分搜索查詢轉(zhuǎn)換為所述各個(gè)部分搜索查詢的 羅馬化表示形式;將哈希函數(shù)應(yīng)用于所述部分搜索查詢的所述羅馬化表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
21.如權(quán)利要求14所述的系統(tǒng),其中所述用于獲取預(yù)測(cè)的完整查詢的集合的指令包括 用于以下的指令將包括一個(gè)或多個(gè)完整的朝鮮語(yǔ)字符和一個(gè)不完整的朝鮮語(yǔ)字符的各個(gè)部分搜索查 詢轉(zhuǎn)換為所述各個(gè)部分搜索查詢的羅馬化表示形式;將哈希函數(shù)應(yīng)用于所述各個(gè)部分搜索查詢的所述羅馬化表示形式以產(chǎn)生哈希值;以及 使用所述哈希值來(lái)執(zhí)行查找操作以獲取所述預(yù)測(cè)的完整查詢。
22.如權(quán)利要求14所述的系統(tǒng),其中所接收的部分搜索查詢包括一個(gè)或多個(gè)完整的朝 鮮語(yǔ)字符和一個(gè)不完整的朝鮮語(yǔ)字符。
23.一種用于構(gòu)建用于處理查詢信息的數(shù)據(jù)結(jié)構(gòu)的方法,包括獲取先前提交的完整第一語(yǔ)言查詢的集合,所述完整第一語(yǔ)言查詢由用戶群體先前提交。獲取先前提交的完整第二語(yǔ)言查詢的集合,所述完整第二語(yǔ)言查詢由用戶群體先前提交。將所述完整第一語(yǔ)言查詢的集合轉(zhuǎn)換為以羅馬化表示形式的完整第二語(yǔ)言查詢的集 合;以及將所述完整第一語(yǔ)言查詢的集合和羅馬化的完整第二語(yǔ)言查詢的集合存儲(chǔ)在一個(gè)或 多個(gè)查詢完成數(shù)據(jù)表中;其中所述一個(gè)或多個(gè)查詢完成數(shù)據(jù)表形成能夠被用來(lái)預(yù)測(cè)與部分第一語(yǔ)言查詢或部 分第二語(yǔ)言查詢相對(duì)應(yīng)的完整第一語(yǔ)言查詢和完整第二語(yǔ)言查詢兩者的一個(gè)或多個(gè)數(shù)據(jù) 結(jié)構(gòu)。
24.如權(quán)利要求23所述的方法,包括對(duì)所述先前提交的完整第一語(yǔ)言查詢的集合和所 述先前提交的第二語(yǔ)言查詢的集合進(jìn)行過(guò)濾以排除與預(yù)定詞語(yǔ)的一個(gè)或多個(gè)集合相匹配 的查詢。
25.如權(quán)利要求23所述的方法,其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述第二語(yǔ)言是英語(yǔ)。
26.一種客戶端系統(tǒng),包括一個(gè)或多個(gè)中央處理單元,所述一個(gè)或多個(gè)中央處理單元用于執(zhí)行程序;以及 存儲(chǔ)器,所述存儲(chǔ)器用來(lái)存儲(chǔ)數(shù)據(jù)以及存儲(chǔ)由所述一個(gè)或多個(gè)中央處理單元執(zhí)行的一 個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序包括指令,所述指令用于 從搜索請(qǐng)求者接收部分搜索查詢;從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集 合,所述先前提交的完整查詢由用戶群體提交,其中所述預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且根據(jù)排名標(biāo)準(zhǔn)被排序;以及 向所述搜索請(qǐng)求者顯示所排序的集合的至少一個(gè)子集。
27.如權(quán)利要求26所述的客戶端系統(tǒng),其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述第二語(yǔ)言是英語(yǔ)。
28.一種存儲(chǔ)用于由各個(gè)服務(wù)器系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)程序的計(jì) 算機(jī)可讀存儲(chǔ)介質(zhì),所述一個(gè)或多個(gè)程序包括用于以下的指令從搜索請(qǐng)求者接收部分搜索查詢,所述搜索請(qǐng)求者位于遠(yuǎn)離服務(wù)器的位置; 從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集 合,所述先前提交的完整查詢由用戶群體提交;所述預(yù)測(cè)的完整查詢的集合包括第一語(yǔ)言 和第二語(yǔ)言完整搜索查詢兩者;根據(jù)排名標(biāo)準(zhǔn)對(duì)所述預(yù)測(cè)的完整查詢的集合進(jìn)行排序;以及 將所排序的集合的至少一個(gè)子集遞送給所述搜索請(qǐng)求者。
29.如權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述‘是英語(yǔ)。
30.一種存儲(chǔ)用于由各個(gè)客戶端設(shè)備或系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)程 序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述一個(gè)或多個(gè)程序包括用于以下的指令從搜索請(qǐng)求者接收部分搜索查詢;從多個(gè)先前提交的完整查詢獲取與所述部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集 合,所述先前提交的完整查詢由用戶群體提交,其中所述預(yù)測(cè)的完整查詢的集合包括第一 語(yǔ)言和第二語(yǔ)言完整搜索查詢兩者,并且根據(jù)排名標(biāo)準(zhǔn)被排序;以及 向所述搜索請(qǐng)求者顯示所排序的集合的至少一個(gè)子集。
31.如權(quán)利要求30所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述第一語(yǔ)言是朝鮮語(yǔ)以及所述‘是英語(yǔ)。
全文摘要
用于處理查詢信息的方法包括從搜索請(qǐng)求者接收部分搜索查詢,以及從多個(gè)先前提交的完整查詢獲取與部分搜索查詢相對(duì)應(yīng)的預(yù)測(cè)的完整查詢的集合,先前提交的完整查詢由用戶群體提交。預(yù)測(cè)的完整查詢的集合包括英語(yǔ)和朝鮮語(yǔ)完整搜索查詢兩者。根據(jù)排名標(biāo)準(zhǔn)對(duì)預(yù)測(cè)的完整查詢的集合進(jìn)行排序,并且將排序的集合的至少一個(gè)子集發(fā)送給搜索請(qǐng)求者。部分搜索查詢可以是部分朝鮮語(yǔ)搜索查詢的羅馬化表示形式。
文檔編號(hào)G06F17/30GK101816000SQ200880110208
公開日2010年8月25日 申請(qǐng)日期2008年8月8日 優(yōu)先權(quán)日2007年8月9日
發(fā)明者金度享 申請(qǐng)人:谷歌公司