專利名稱:可擴(kuò)展搜索項(xiàng)建議引擎的制作方法
可擴(kuò)展搜索項(xiàng)建議引擎
背景技術(shù):
隨著計(jì)算機(jī)已經(jīng)變得日益平凡,已經(jīng)變得對(duì)用戶可用的電子數(shù)據(jù)的量已大大增長(zhǎng)。雖然能夠?qū)@些大量電子數(shù)據(jù)進(jìn)行訪問(wèn)可能對(duì)于用戶十分有益,但并非沒(méi)有問(wèn)題。一個(gè)這種問(wèn)題是用戶可能有時(shí)難以找尋他們正查找的特定電子數(shù)據(jù)。例如,用戶可能遭遇這樣的情況他們不確定他們查找的東西的具體名稱或正確寫法。歸因于這種不確定性不能夠找尋他們正查找的東西可能對(duì)用戶來(lái)說(shuō)是一種挫敗體驗(yàn)。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以通過(guò)簡(jiǎn)化形式介紹以下在具體實(shí)施方式
中進(jìn)一步描述的構(gòu)思的選擇。本發(fā)明內(nèi)容不意圖標(biāo)識(shí)所要求保護(hù)的主題內(nèi)容的關(guān)鍵特征或必要特征,也不意圖用于限制所要求的主題內(nèi)容的范圍。根據(jù)一個(gè)或多個(gè)方面,隨著輸入字符,計(jì)算設(shè)備的搜索項(xiàng)建議引擎接收用戶數(shù)據(jù)的字符。所述用戶數(shù)據(jù)是待提供給應(yīng)用以搜索搜索項(xiàng)的所述搜索項(xiàng)的至少一部分。從應(yīng)用接收多個(gè)建議源的指示,并且基于接收的字符從多個(gè)建議源中的兩個(gè)或更多個(gè)獲得一個(gè)或多個(gè)建議的搜索項(xiàng)。將一個(gè)或多個(gè)建議的搜索項(xiàng)組合為建議的搜索項(xiàng)的組合的集合,并且將建議的搜索項(xiàng)的組合的集合返回到用于對(duì)用戶呈現(xiàn)的搜索用戶界面。根據(jù)一個(gè)或多個(gè)方面,隨著輸入字符,接收用戶數(shù)據(jù)的字符。所述用戶數(shù)據(jù)是待提供給應(yīng)用以搜索搜索項(xiàng)的所述搜索項(xiàng)的至少一部分。確定用于所述字符的一個(gè)或多個(gè)語(yǔ)言替選,并且將所述字符和所述一個(gè)或多個(gè)語(yǔ)言替選提供給建議源。從所述建議源接收基于所述一個(gè)或多個(gè)語(yǔ)言替選的一個(gè)或多個(gè)建議的搜索項(xiàng),并且將所述一個(gè)或多個(gè)建議的搜索項(xiàng)返回到用于顯示的搜索用戶界面。
相同標(biāo)號(hào)貫穿附圖用于指代相似特征。圖1示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議引擎的示例系統(tǒng)。圖2是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的使用可擴(kuò)展搜索項(xiàng)建議引擎的示例系統(tǒng)的框圖。圖3示出根據(jù)一個(gè)或多個(gè)實(shí)施例的顯示建議的搜索項(xiàng)的示例屏幕顯示。圖4是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于生成建議的搜索項(xiàng)的組合的集合的示例過(guò)程的流程圖。圖5是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于基于語(yǔ)言替選生成建議的搜索項(xiàng)的示例過(guò)程的流程圖。圖6示出根據(jù)一個(gè)或多個(gè)實(shí)施例的可以被配置為實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議引擎的示例計(jì)算設(shè)備。
具體實(shí)施方式
在此討論可擴(kuò)展搜索項(xiàng)建議引擎。搜索項(xiàng)建議引擎接收作為搜索項(xiàng)的至少一部分輸入到搜索用戶界面(UI)的用戶數(shù)據(jù)的字符。隨著接收用戶數(shù)據(jù)的字符,搜索項(xiàng)建議引擎從多個(gè)不同的建議源獲得建議的搜索項(xiàng)。可以使用各個(gè)不同的建議源,并且被搜索的應(yīng)用可以指定使用哪些建議源。搜索項(xiàng)建議引擎將從不同源獲得的建議的搜索項(xiàng)合并到建議的搜索項(xiàng)的組合的集合,并且將建議的搜索項(xiàng)的該組合的集合提供給用于對(duì)用戶呈現(xiàn)的搜索 UI。此外,搜索項(xiàng)建議引擎可以獲得針對(duì)已經(jīng)輸入的用戶數(shù)據(jù)的字符的各個(gè)語(yǔ)言替選,例如包括不同符號(hào)或字符(例如用于東亞語(yǔ)言)的替選、以及包括不同字母表(例如拉丁字母表、 西里爾字母表等)中的搜索項(xiàng)的替選。搜索項(xiàng)建議引擎可以然后基于獲得的語(yǔ)言替選從一個(gè)或多個(gè)不同的多個(gè)建議源獲得建議的搜索項(xiàng)。圖1示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議引擎的示例系統(tǒng)100。 系統(tǒng)100包括可以可選地經(jīng)由網(wǎng)絡(luò)106與一個(gè)或多個(gè)(X)其它設(shè)備104 (1)、……、104 (m) 通信的計(jì)算設(shè)備102。網(wǎng)絡(luò)106可以是各種不同的網(wǎng)絡(luò),包括因特網(wǎng)、局域網(wǎng)(LAN)、公共電話或其它電話網(wǎng)絡(luò)、內(nèi)部網(wǎng)、其它公共和/或私有網(wǎng)絡(luò)、其組合等。計(jì)算設(shè)備102可以是各種不同類型的設(shè)備,例如桌面計(jì)算機(jī)、筆記本或平板計(jì)算機(jī)、筆記本或膝上計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、移動(dòng)站、娛樂(lè)設(shè)備、通信地耦合到顯示設(shè)備的機(jī)頂盒、電視、蜂窩或其它無(wú)線電話、 游戲控制臺(tái)、汽車計(jì)算機(jī)等。此外,雖然示出為單個(gè)設(shè)備102,但應(yīng)注意,計(jì)算設(shè)備102的組件或模塊可以實(shí)現(xiàn)為多個(gè)設(shè)備的系統(tǒng),其中,所述組件或模塊分布在系統(tǒng)中的不同設(shè)備上。設(shè)備104可以是能夠與計(jì)算設(shè)備102通信的各種不同的計(jì)算設(shè)備。計(jì)算設(shè)備102 可以可選地訪問(wèn)設(shè)備104中的一個(gè)或多個(gè)以獲得各種信息,如下更詳細(xì)地描述。與計(jì)算設(shè)備102的討論相似,設(shè)備104可以是各種不同類型的設(shè)備。設(shè)備104可以是與計(jì)算設(shè)備102 相同類型或替換地不同類型的設(shè)備。在系統(tǒng)100中,計(jì)算設(shè)備102示出為經(jīng)由網(wǎng)絡(luò)106與設(shè)備104通信。替換地,計(jì)算設(shè)備102可以經(jīng)由其它類型的通信機(jī)制或連接(例如各種有線和/或無(wú)線連接(例如通用串行總線(USB)連接、無(wú)線USB連接、藍(lán)牙連接、IEEE1394連接等))與設(shè)備104通信。計(jì)算設(shè)備102包括操作系統(tǒng)110和一個(gè)或多個(gè)應(yīng)用112。操作系統(tǒng)110管理計(jì)算設(shè)備102上的應(yīng)用112的啟動(dòng)和運(yùn)行。應(yīng)用112中的每一個(gè)可以是各種不同類型的應(yīng)用, 例如生產(chǎn)力應(yīng)用(例如電子郵件應(yīng)用、文字處理應(yīng)用、表單應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用等)、娛樂(lè)應(yīng)用 (例如游戲應(yīng)用、音頻和/或視頻回放應(yīng)用等)、社交聯(lián)網(wǎng)應(yīng)用等。應(yīng)用112可以本地地訪問(wèn)數(shù)據(jù),訪問(wèn)計(jì)算設(shè)備102上(或耦合到計(jì)算設(shè)備102的存儲(chǔ)設(shè)備上)的數(shù)據(jù),而不是經(jīng)由網(wǎng)絡(luò) 106訪問(wèn)設(shè)備104上的數(shù)據(jù)。例如,應(yīng)用112可以是本地地訪問(wèn)數(shù)據(jù)的文字處理應(yīng)用。除了或替代地替換本地地訪問(wèn)數(shù)據(jù),應(yīng)用可以經(jīng)由網(wǎng)絡(luò)106訪問(wèn)一個(gè)或多個(gè)設(shè)備104上的數(shù)據(jù)。 例如,應(yīng)用112可以是用于提供電影服務(wù)的設(shè)備104的界面應(yīng)用,允許計(jì)算設(shè)備102的用戶經(jīng)由該應(yīng)用112訪問(wèn)來(lái)自設(shè)備104的電影。應(yīng)用112允許用戶搜索他們?cè)L問(wèn)的各種數(shù)據(jù)。用戶可以經(jīng)由特定于特定應(yīng)用112 的或替代地由多個(gè)應(yīng)用112使用的搜索UI輸入搜索項(xiàng)(例如一個(gè)或多個(gè)字符、文字、符號(hào)等)。被搜索的應(yīng)用112返回匹配搜索項(xiàng)的數(shù)據(jù)以便顯示或另外呈現(xiàn)給用戶。操作系統(tǒng)110包括輸入模塊114、顯示模塊116和可擴(kuò)展搜索項(xiàng)建議模塊118。雖然可以替代地通過(guò)硬件實(shí)現(xiàn)操作系統(tǒng)110的至少部分,但典型地通過(guò)軟件和/或固件實(shí)現(xiàn)操作系統(tǒng)110。
輸入模塊114從計(jì)算設(shè)備102的用戶接收用戶輸入。可以通過(guò)各種不同方式,例如通過(guò)按設(shè)備102的鍵區(qū)或鍵盤的一個(gè)或多個(gè)鍵,按設(shè)備102的控制器(例如遠(yuǎn)程控制設(shè)備、 鼠標(biāo)、軌跡板等)的一個(gè)或多個(gè)鍵,按設(shè)備102的觸摸板或觸摸屏的特定部分,在設(shè)備102的觸摸板或觸摸屏上作出特定姿勢(shì),和/或在設(shè)備102的控制器(例如遠(yuǎn)程控制設(shè)備、鼠標(biāo)、軌跡板等)上作出特定姿勢(shì)來(lái)提供用戶輸入。也可以經(jīng)由對(duì)設(shè)備102的其它物理反饋輸入(例如輕拍設(shè)備102的任何部分、可以由設(shè)備102的運(yùn)動(dòng)檢測(cè)組件識(shí)別的動(dòng)作(例如搖晃設(shè)備 102,旋轉(zhuǎn)設(shè)備102等)等)提供用戶輸入。也可以通過(guò)其它方式(例如經(jīng)由對(duì)麥克風(fēng)的可聽(tīng)輸入,經(jīng)由圖像捕獲設(shè)備觀測(cè)的手或其它身體部分的運(yùn)動(dòng)等)提供用戶輸入。這些用戶輸入允許用戶例如通過(guò)輸入特定字符或符號(hào)、選擇特定按鈕或菜單選項(xiàng)、拖動(dòng)和放下各個(gè)描述或圖像等與計(jì)算設(shè)備102交互。顯示模塊116生成、管理和/或輸出用于計(jì)算設(shè)備102的屏幕的顯示。該顯示可以包括各種信息,例如應(yīng)用112提供的信息、可擴(kuò)展搜索項(xiàng)建議模塊118或操作系統(tǒng)110的其它模塊提供的信息等。對(duì)用戶顯示的信息可以包括輸入模塊114接收的用戶輸入。可以通過(guò)各種不同方式(例如使用液晶顯示器(LCD)技術(shù)、等離子屏幕技術(shù)、圖像投影技術(shù)等)實(shí)現(xiàn)在其上顯示模塊116顯示信息的屏幕。可以包括屏幕作為計(jì)算設(shè)備102的一部分,或替代地顯示模塊116可以生成輸出到包括一個(gè)或多個(gè)屏幕的一個(gè)或多個(gè)其它顯示設(shè)備的一個(gè)或多個(gè)信號(hào)。雖然在此的討論指代在一個(gè)或多個(gè)屏幕上顯示信息,但應(yīng)理解,可以替代地由顯示模塊116通過(guò)(例如經(jīng)由一個(gè)或多個(gè)揚(yáng)聲器可聽(tīng)地)其它方式對(duì)用戶呈現(xiàn)信息。可擴(kuò)展搜索項(xiàng)建議模塊118提供一個(gè)或多個(gè)建議的搜索項(xiàng)以協(xié)助系統(tǒng)100的用戶。當(dāng)用戶期望搜索應(yīng)用(例如應(yīng)用112)時(shí),用戶輸入構(gòu)成搜索項(xiàng)的至少一部分的字符。可擴(kuò)展搜索項(xiàng)建議模塊118隨著用戶輸入這些字符而接收它們,基于接收的字符自動(dòng)地識(shí)別一個(gè)或多個(gè)建議的搜索項(xiàng),并且返回所述一個(gè)或多個(gè)建議的搜索項(xiàng)以便呈現(xiàn)(例如顯示)給用戶。可擴(kuò)展搜索項(xiàng)建議模塊118可以從可以位于計(jì)算設(shè)備102和/或另一設(shè)備104上的多個(gè)不同的源獲得建議的搜索項(xiàng)。此外,可擴(kuò)展搜索項(xiàng)建議模塊118可以影響生成所接收字符的一個(gè)或多個(gè)語(yǔ)言替選的語(yǔ)言替選生成模塊。這些語(yǔ)言替選是可以與接收的字符對(duì)應(yīng)的不同符號(hào)或字符,例如不同東亞語(yǔ)言字符。這些語(yǔ)言替選也可以是字符到不同字母表(例如拉丁字母表、西里爾字母表等)的翻譯。搜索項(xiàng)建議模塊118是可擴(kuò)展的,在于不同的建議源可以用于建議的搜索項(xiàng),并且用于建議的搜索項(xiàng)的語(yǔ)言替選可以被使用。不同的應(yīng)用和/或用戶可以選擇待用于建議的搜索項(xiàng)的不同的建議源以及用于建議的搜索項(xiàng)的語(yǔ)言替選是否將被使用。圖2是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的使用可擴(kuò)展搜索項(xiàng)建議引擎的示例系統(tǒng)200 的框圖。系統(tǒng)200包括可擴(kuò)展搜索項(xiàng)建議模塊或引擎202、搜索UI模塊204、應(yīng)用206、語(yǔ)言替選生成模塊208和多個(gè)建議源220、222、224、2沈和228。應(yīng)用206也可以是建議源, 如以下更詳細(xì)討論。可擴(kuò)展搜索項(xiàng)建議模塊202可以是例如圖1的可擴(kuò)展搜索項(xiàng)建議模塊 118。應(yīng)用206可以是例如圖1的應(yīng)用112、圖1的設(shè)備104中的一個(gè)上運(yùn)行的應(yīng)用等。在一個(gè)或多個(gè)實(shí)施例中,搜索UI模塊204、應(yīng)用206和可擴(kuò)展搜索項(xiàng)建議模塊202 在相同計(jì)算設(shè)備(例如圖1的計(jì)算設(shè)備102)上。替代地,可以在不同的計(jì)算設(shè)備上實(shí)現(xiàn)搜索UI模塊204、應(yīng)用206和可擴(kuò)展搜索項(xiàng)建議模塊202中的一個(gè)或多個(gè)。例如,可以在一個(gè)計(jì)算設(shè)備上實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202,可以在另一計(jì)算設(shè)備上實(shí)現(xiàn)搜索UI模塊204, 并且可以在又一計(jì)算設(shè)備上實(shí)現(xiàn)應(yīng)用206。搜索UI模塊204將搜索用戶界面提供給用戶,(例如經(jīng)由圖1的輸入模塊114)接收用戶輸入,并且還(例如經(jīng)由圖1的顯示模塊116)顯示或另外呈現(xiàn)建議的搜索項(xiàng)以及其它信息。用戶輸入表示搜索項(xiàng)的用戶數(shù)據(jù),典型地一次一個(gè)字符。字符可以是字母、數(shù)字、其它符號(hào)等。隨著輸入字符,搜索UI模塊204將用戶數(shù)據(jù)的字符提供給可擴(kuò)展搜索項(xiàng)建議模塊202。可擴(kuò)展搜索項(xiàng)建議模塊202從各個(gè)不同的建議源(例如建議源220-228、應(yīng)用206) 中的一個(gè)或多個(gè)獲得建議的搜索項(xiàng)。可擴(kuò)展搜索項(xiàng)建議模塊202合并或組合來(lái)自不同的建議源的建議的搜索項(xiàng),以生成建議的搜索項(xiàng)的組合的集合,并且將建議的搜索項(xiàng)的組合的集合返回到搜索UI模塊204。獲得建議的搜索項(xiàng)并且返回建議的搜索項(xiàng)的組合的集合的該過(guò)程響應(yīng)于用戶輸入的每一字符被執(zhí)行,并且可以隨著輸入字符產(chǎn)生建議的搜索項(xiàng)的不同的組合的集合。在此討論中,可擴(kuò)展搜索項(xiàng)建議模塊202被討論為將建議的搜索項(xiàng)的組合的集合返回到用于對(duì)用戶呈現(xiàn)的搜索UI模塊204,并且這些搜索項(xiàng)從各種不同的建議源(例如建議源220-228、應(yīng)用206)中的一個(gè)或多個(gè)被獲得。然而,應(yīng)注意,建議源典型地?zé)o需(然而替代地可以需要)返回建議的搜索項(xiàng)。因此,一個(gè)或多個(gè)建議源不返回建議的搜索項(xiàng)的情況可能出現(xiàn)。如果沒(méi)有建議源返回至少一個(gè)建議的搜索項(xiàng),則可擴(kuò)展搜索項(xiàng)建議模塊202不將建議的搜索項(xiàng)返回到用于對(duì)用戶呈現(xiàn)的UI模塊204。圖3示出根據(jù)一個(gè)或多個(gè)實(shí)施例的顯示建議的搜索項(xiàng)的示例屏幕顯示302。屏幕顯示202包括工具欄(或任務(wù)欄)304。工具欄304可以包括各種不同信息,例如當(dāng)前時(shí)間 (示為10:10 AM)。數(shù)據(jù)項(xiàng)字段306提供用戶可以輸入搜索項(xiàng)的字符并且使得這些字符被顯示的位置。在所示示例中,用戶已經(jīng)輸入字符“He”。還顯示搜索按鈕308。用戶可以通過(guò)各種不同方式(例如經(jīng)由圖1的輸入模塊114) 選擇搜索按鈕308,例如通過(guò)以記錄筆或手指觸摸搜索按鈕308,在搜索按鈕308上操控指針并且按光標(biāo)控制設(shè)備(例如鼠標(biāo))的按鈕,按鍵盤的特定鍵等。響應(yīng)于搜索按鈕308的用戶選擇,將數(shù)據(jù)項(xiàng)字段306中當(dāng)前輸入的字符發(fā)送到用于搜索的應(yīng)用。可以通過(guò)不同方式, 例如作為當(dāng)前有效的應(yīng)用或用戶選擇的另一應(yīng)用,確定向其發(fā)送搜索項(xiàng)的應(yīng)用。屏幕顯示302還顯示一個(gè)或多個(gè)建議的搜索項(xiàng)作為建議列表310。建議列表310 包括(例如圖2的可擴(kuò)展搜索項(xiàng)建議模塊202生成的)搜索項(xiàng)的組合的集合中的建議的搜索項(xiàng)。在所示示例中,用戶已經(jīng)輸入字符“He”,并且搜索項(xiàng)的組合的集合是Hello,Heathrow Airport, Henderson Nevada, Helium, Heroes, Hercules, Health Benefits禾口Healthy Lifestyles。用戶然后可以選擇建議列表310中的建議的搜索項(xiàng)中的一個(gè),并且作為響應(yīng)在數(shù)據(jù)項(xiàng)字段306中輸入選擇的建議的搜索項(xiàng)。例如,如果從建議列表310選擇“Helium”,則 “Helium”替代數(shù)據(jù)項(xiàng)字段306中的“He”。用戶可以通過(guò)各種不同方式(例如經(jīng)由圖1的輸入模塊114)選擇建議列表310中的建議的搜索項(xiàng)中的一個(gè),例如以記錄筆或手指觸摸建議的搜索項(xiàng)、在建議的搜索項(xiàng)上操控指針并且按光標(biāo)控制設(shè)備(例如鼠標(biāo))的按鈕等方式。應(yīng)注意,數(shù)據(jù)項(xiàng)字段306和搜索按鈕308的位置是示例,并且可以在屏幕顯示302 上任何地方顯示數(shù)據(jù)項(xiàng)字段306和搜索按鈕308。例如,可以在屏幕顯示302的頂部、沿著屏幕顯示302的左側(cè)或右側(cè)、在屏幕顯示302的中心、作為菜單欄的部分、作為圖標(biāo)欄或停靠托盤的部分、在待搜索的應(yīng)用(例如圖1的應(yīng)用112之一)的窗口內(nèi)等顯示數(shù)據(jù)項(xiàng)字段306 和搜索按鈕308。此外,建議列表310被示出為在數(shù)據(jù)項(xiàng)字段306之上并且鄰近數(shù)據(jù)項(xiàng)字段 306。然而,應(yīng)理解,建議列表310的位置是示例,可以在屏幕顯示302上的任何地方顯示建議列表310 (盡管典型地以便不覆蓋數(shù)據(jù)項(xiàng)字段306或搜索按鈕308)。例如,可以在屏幕顯示302的頂部、沿著屏幕顯示302的左側(cè)或右側(cè)、在屏幕顯示302的中心、在不鄰近數(shù)據(jù)項(xiàng)字段306的位置中,至少部分地在待搜索的應(yīng)用的窗口內(nèi)等顯示建議列表310。返回圖2,在系統(tǒng)200中,搜索UI模塊204和應(yīng)用206被示出為分離的組件。搜索 UI模塊204可以是將搜索用戶界面提供給各種不同應(yīng)用的系統(tǒng)級(jí)搜索用戶界面模塊。替代地,搜索UI模塊204可以是將搜索用戶界面提供給單個(gè)應(yīng)用的應(yīng)用特定搜索模塊。在這些情況下,搜索UI模塊204可以被包括為該單個(gè)應(yīng)用(例如應(yīng)用206)的模塊。應(yīng)用206是待搜索搜索項(xiàng)的應(yīng)用。多個(gè)應(yīng)用可以可選地針對(duì)搜索項(xiàng)進(jìn)行搜索,并且在這些情況下,應(yīng)用206被包括為這些多個(gè)應(yīng)用中的一個(gè)。可以通過(guò)不同方式標(biāo)識(shí)待搜索搜索項(xiàng)的特定應(yīng)用。在搜索UI模塊204被包括為特定應(yīng)用的部分的一個(gè)或多個(gè)實(shí)施例中,那么包括搜索UI模塊的特定應(yīng)用是待搜索搜索項(xiàng)的應(yīng)用。在其它實(shí)施例中,可以通過(guò)不同方式(例如搜索UI模塊204提供待搜索搜索項(xiàng)的應(yīng)用的指示,或當(dāng)前有效的應(yīng)用是待搜索搜索項(xiàng)的應(yīng)用)標(biāo)識(shí)待搜索搜索項(xiàng)的應(yīng)用。當(dāng)前有效的應(yīng)用指代在前臺(tái)中當(dāng)前運(yùn)行的應(yīng)用并且是用戶可以與其交互的應(yīng)用(例如圖1的應(yīng)用112 (除了操作系統(tǒng)之外的應(yīng)用)中的一個(gè))。雖然多個(gè)應(yīng)用可以同時(shí)在計(jì)算設(shè)備上運(yùn)行,但在任何給定時(shí)間僅一個(gè)是當(dāng)前有效的應(yīng)用。可以從例如計(jì)算設(shè)備的操作系統(tǒng)獲得當(dāng)前有效的應(yīng)用的標(biāo)識(shí)符。可擴(kuò)展搜索項(xiàng)建議模塊202包括配置模塊M0、搜索項(xiàng)收集模塊242和搜索項(xiàng)合并模塊對(duì)4。配置模塊240從指定哪些建議源可擴(kuò)展搜索項(xiàng)建議模塊202待用于搜索項(xiàng)建議的應(yīng)用206 (或替代地從另一組件或模塊,例如搜索UI模塊204)接收指示。不同的應(yīng)用可以指定不同的建議源,并且相同的應(yīng)用可以在不同的時(shí)間指定不同的建議源。因此,配置模塊240接收待使用哪些建議源的指示,并且將該指示提供給搜索項(xiàng)收集模塊M2。配置模塊 240也可以被配置有待使用哪些建議源的默認(rèn)指示。如果從應(yīng)用206未接收到待使用哪些建議源的指示,則將待使用哪些建議源的默認(rèn)指示提供給搜索項(xiàng)收集模塊對(duì)2。配置模塊 240也可以從如下更詳細(xì)地討論的獲得建議的搜索項(xiàng)中待使用的搜索用戶界面模塊204和 /或應(yīng)用206接收附加信息。搜索項(xiàng)收集模塊242從建議源中的一個(gè)或多個(gè)獲得建議的搜索項(xiàng)。從其獲得建議的搜索項(xiàng)的一個(gè)或多個(gè)建議源是被指示為待使用的建議源的建議源。搜索項(xiàng)收集模塊242 將從搜索UI模塊204接收的用戶數(shù)據(jù)的字符提供給從其獲得建議的搜索項(xiàng)的每一建議源。 在示例系統(tǒng)200中,從其可以獲得建議的搜索項(xiàng)的一個(gè)或多個(gè)建議源包括本地文件源220、 每用戶搜索歷史源222、群搜索歷史源224、獨(dú)立服務(wù)提供商源226、自然語(yǔ)言源2 和應(yīng)用 206。這些建議源中的每一個(gè)基于從搜索項(xiàng)收集模塊242接收的用戶數(shù)據(jù)的字符來(lái)標(biāo)識(shí)、生成或另外獲得建議的搜索項(xiàng)。本地文件源220是基于設(shè)備(例如實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202和/或搜索UI 模塊204的設(shè)備)的本地存儲(chǔ)設(shè)備上存儲(chǔ)的文件提供零個(gè)或更多個(gè)建議的搜索項(xiàng)的一個(gè)或多個(gè)組件或模塊。這些本地存儲(chǔ)設(shè)備可以被包括在設(shè)備中和/或(例如經(jīng)由USB或其它連接)連接到設(shè)備,并且可以包括各種不同類型的存儲(chǔ)設(shè)備(例如一個(gè)或多個(gè)磁盤、一個(gè)或多個(gè)光盤、閃存設(shè)備等)。本地文件源220分析與本地存儲(chǔ)設(shè)備上存儲(chǔ)的文件關(guān)聯(lián)的各種屬性或元數(shù)據(jù)中的一個(gè)或多個(gè),并且基于該分析確定一個(gè)或多個(gè)建議的搜索項(xiàng)。所述各種屬性可以是例如文件的名稱、其中存儲(chǔ)文件的文件夾的名稱等。描述文件的各種元數(shù)據(jù)可以被存儲(chǔ)為文件的部分或另外與文件關(guān)聯(lián)并且由本地文件源220訪問(wèn),并且該元數(shù)據(jù)可以根據(jù)文件類型改變。例如,存儲(chǔ)歌曲的音樂(lè)文件可以具有作為元數(shù)據(jù)的歌曲的錄音藝術(shù)家的姓名、歌曲的名稱、組成錄音藝術(shù)家的各個(gè)樂(lè)隊(duì)成員的姓名等。通過(guò)另一示例的方式,電影文件可以具有作為元數(shù)據(jù)的電影的標(biāo)題、電影制作者的名稱、電影中的男演員和/或女演員的姓名等。通過(guò)又一示例的方式,存儲(chǔ)電子書文件的文件可以具有作為元數(shù)據(jù)的書的標(biāo)題、書的出版商、書中一個(gè)或多個(gè)主要人物的姓名等。作為零個(gè)或更多個(gè)建議的搜索項(xiàng),本地文件源220可以通過(guò)各種不同的方式確定哪些屬性和/或元數(shù)據(jù)(如果有的話)匹配接收的字符。如果文件的特定屬性和/或特定元數(shù)據(jù)以接收的字符開(kāi)始,則文件可以匹配接收的字符。如果文件的特定屬性和/或特定元數(shù)據(jù)的多個(gè)字符序列(例如由在特定語(yǔ)言中可以不定義為文字的標(biāo)點(diǎn)符號(hào)或空格分離的多個(gè)字符的任何其它序列或文字)中的一個(gè)以接收的字符開(kāi)始,則文件也可以匹配接收的字符。例如,本地文件源220可以標(biāo)識(shí)具有開(kāi)始于或包括以接收的字符(從搜索項(xiàng)收集模塊 242接收的用戶數(shù)據(jù)的字符)開(kāi)始的文字的文件名稱的所有文件、具有包括開(kāi)始于或包括以接收的字符開(kāi)始的文字的錄音藝術(shù)家姓名的元數(shù)據(jù)的所有文件、具有開(kāi)始于或包括以接收的字符開(kāi)始的文字的電影標(biāo)題的所有文件等。可以通過(guò)不同的方式(例如(例如經(jīng)由配置模塊M0)從應(yīng)用206接收,從實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202的設(shè)備的用戶接收,在本地文件源220中預(yù)先配置,從另一組件或模塊接收等),標(biāo)識(shí)待檢查以確定與接收的字符的匹配的元數(shù)據(jù)或特定屬性。在一個(gè)或多個(gè)實(shí)施例中,在確定零個(gè)或更多個(gè)建議的搜索項(xiàng)中,本地文件源220 檢查每一本地存儲(chǔ)設(shè)備上的所有文件。替代地,本地文件源220可以檢查本地存儲(chǔ)設(shè)備上的文件中的僅一些文件,例如特定類型的文件(例如具有特定文件擴(kuò)展或被分類為特定類型的文件的文件),僅檢查特定文件夾或目錄中的文件(例如僅電影文件目錄中的文件、僅音樂(lè)文件目錄中的文件等)等。本地文件源220可以被預(yù)先配置要檢查本地存儲(chǔ)設(shè)備上的哪些文件,或替代地可以接收或另外獲得要檢查哪些文件的指示。可以通過(guò)不同方式(例如從應(yīng)用206 (例如經(jīng)由配置模塊240),從實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202的設(shè)備的用戶等) 接收或另外獲得要檢查哪些文件的指示。作為建議的搜索項(xiàng),本地文件源220將匹配接收的字符的屬性和/或元數(shù)據(jù)(如果有的話)返回到搜索項(xiàng)收集模塊對(duì)2。此外,在一個(gè)或多個(gè)實(shí)施例中,本地文件源220將本地文件源220返回的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。可以通過(guò)不同方式確定該排名。在一個(gè)或多個(gè)實(shí)施例中,本地文件源220確定有多少文件具有匹配接收的字符的相同屬性或元數(shù)據(jù),并且基于出現(xiàn)的頻率排名該屬性或元數(shù)據(jù)(例如從最大匹配到最小匹配的排序)。例如,如果接收的字符是“He”, 八個(gè)文件具有包括“Hercules”的元數(shù)據(jù),五個(gè)文件具有包括“Helium”的元數(shù)據(jù),兩個(gè)文件具有包括“Heroes”的元數(shù)據(jù),則,本地文件源220提供的建議的搜索項(xiàng)按(基于出現(xiàn)的頻率的)它們的排名的排序是Hercules, Helium, Heroes。每用戶搜索歷史源222是基于設(shè)備(例如實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202和/或搜索UI模塊204的設(shè)備)的用戶輸入的搜索項(xiàng)的歷史提供零個(gè)或更多個(gè)建議的搜索項(xiàng)的一個(gè)或多個(gè)組件或模塊。當(dāng)用戶(例如通過(guò)選擇圖1的搜索按鈕308)輸入搜索項(xiàng)時(shí),搜索UI 模塊204將搜索項(xiàng)提供給可擴(kuò)展搜索項(xiàng)建議模塊202。搜索UI模塊204也可以將搜索項(xiàng)提供給應(yīng)用206,或替代地依賴可擴(kuò)展搜索項(xiàng)建議模塊202以將搜索項(xiàng)提供給應(yīng)用206。可擴(kuò)展搜索項(xiàng)建議模塊202將搜索項(xiàng)提供給每用戶搜索歷史源222,其保存搜索項(xiàng)的記錄、在輸入搜索項(xiàng)的時(shí)間設(shè)備的當(dāng)前用戶、以及被搜索該搜索項(xiàng)的應(yīng)用。每用戶搜索歷史源222可以從設(shè)備的操作系統(tǒng)或另外地方(例如從可擴(kuò)展搜索項(xiàng)建議模塊202)獲得在任何特定時(shí)間(例如當(dāng)輸入搜索項(xiàng)時(shí),當(dāng)輸入一個(gè)或多個(gè)字符時(shí)等)設(shè)備的用戶的指示(例如簽署到設(shè)備的用戶的指示)。相似地,每用戶搜索歷史源222可以從設(shè)備的操作系統(tǒng)或另外地方(例如從可擴(kuò)展搜索項(xiàng)建議模塊202)獲得應(yīng)用(例如被搜索的應(yīng)用、當(dāng)前有效的應(yīng)用等)的指示。為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),每用戶搜索歷史源222獲得設(shè)備的當(dāng)前用戶的指示和待搜索搜索項(xiàng)的當(dāng)前應(yīng)用的指示。每用戶搜索歷史源222比較接收的字符(從搜索項(xiàng)收集模塊242接收的用戶數(shù)據(jù)的字符)與當(dāng)前用戶先前輸入的搜索項(xiàng)以便在待搜索的當(dāng)前應(yīng)用中搜索,并且可以通過(guò)各種不同的方式標(biāo)識(shí)匹配先前搜索項(xiàng)。如果至少先前搜索項(xiàng)的開(kāi)始字符是接收的字符,則先前搜索項(xiàng)可以匹配接收的字符。如果先前搜索項(xiàng)的多個(gè)字符序列(例如由在特定語(yǔ)言中可能未定義為文字的標(biāo)點(diǎn)符號(hào)或空格分離的字符的任何其它序列或文字)中的一個(gè)以接收的字符開(kāi)始,則先前搜索項(xiàng)也可以匹配接收的字符。作為建議的搜索項(xiàng),每用戶搜索歷史源222將匹配接收的字符的先前輸入的搜索項(xiàng)返回到搜索項(xiàng)收集模塊M2。替代地,并非基于用于單個(gè)應(yīng)用的搜索項(xiàng),每用戶搜索歷史源222可以跨多個(gè)應(yīng)用操作。在這些情況下,為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),每用戶搜索歷史源獲得設(shè)備的當(dāng)前用戶的指示,比較接收的字符與當(dāng)前用戶先前輸入的搜索項(xiàng),并且標(biāo)識(shí)匹配先前搜索項(xiàng)。無(wú)需維護(hù)搜索特定搜索項(xiàng)的應(yīng)用的記錄,并且無(wú)需基于待搜索的當(dāng)前應(yīng)用比較接收的字符與搜索項(xiàng)。此外,在一個(gè)或多個(gè)實(shí)施例中,每用戶搜索歷史源222對(duì)源222提供的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。可以通過(guò)不同方式確定該排名。在一個(gè)或多個(gè)實(shí)施例中,每用戶搜索歷史源222確定多久之前使用匹配的先前搜索項(xiàng)中的每一個(gè),并且以從最近之前使用的到最久之前使用的排序來(lái)排名匹配的先前搜索項(xiàng)。在每用戶搜索歷史源222維護(hù)的搜索項(xiàng)的記錄中,每用戶搜索歷史源222 可以包括何時(shí)使用每個(gè)搜索項(xiàng)的指示(例如何時(shí)輸入搜索項(xiàng)的時(shí)間戳),并且該記錄可以被訪問(wèn)以確定多久之前使用匹配的先前搜索項(xiàng)中的每一個(gè)。在其它實(shí)施例中,每用戶搜索歷史源222 (例如基于每用戶歷史源222維護(hù)的搜索項(xiàng)的記錄)確定多頻繁地使用匹配的先前搜索項(xiàng)中的每一個(gè),并且以從最頻繁地使用到最不頻繁地使用的排序來(lái)排名匹配的先前搜索項(xiàng)。此外,在一個(gè)或多個(gè)實(shí)施例中,應(yīng)用206可以指定對(duì)于其每用戶搜索歷史源222將要維護(hù)搜索項(xiàng)的記錄的不同的范圍。應(yīng)用206 (例如經(jīng)由配置模塊M0)指定不同的范圍,并且當(dāng)輸入搜索項(xiàng)時(shí)還指定用于輸入的搜索項(xiàng)的范圍。為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),每用戶搜索歷史源222 (例如經(jīng)由配置模塊240從應(yīng)用206)獲得應(yīng)用206的當(dāng)前范圍的指示,并且標(biāo)識(shí)用于僅該范圍的匹配的先前搜索項(xiàng)。應(yīng)用206可以通過(guò)其期望的任何方式定義范圍。例如,娛樂(lè)應(yīng)用可以將一個(gè)范圍定義為音頻回放,另一為音頻/視頻回放。如果應(yīng)用206的當(dāng)前范圍是例如音頻回放,則每用戶搜索歷史源222標(biāo)識(shí)用于音頻回放但不用于音頻/視頻回放的匹配的先前搜索項(xiàng)。通過(guò)另一示例的方式,電子郵件應(yīng)用可以將一個(gè)范圍定義為電子郵件消息,另一范圍為聯(lián)系人,另一范圍為日歷條目。如果應(yīng)用206的當(dāng)前范圍是例如聯(lián)系人,則每用戶搜索歷史源 222標(biāo)識(shí)用于聯(lián)系人但不用于電子郵件消息或日歷條目的匹配的先前搜索項(xiàng)。每用戶搜索歷史源222無(wú)需關(guān)心為什么存在用于應(yīng)用的不同的范圍或應(yīng)用將這些不同的范圍用于什么。此外,每用戶搜索歷史源222可以僅維護(hù)基于用于該搜索項(xiàng)的范圍的搜索項(xiàng)的記錄。群搜索歷史源2M是不考慮設(shè)備的用戶的基于搜索項(xiàng)的歷史提供零個(gè)或更多個(gè)建議的搜索項(xiàng)的一個(gè)或多個(gè)組件或模塊。群搜索歷史源224與每用戶搜索歷史源222相似,但不考慮設(shè)備的用戶來(lái)操作。群搜索歷史源2M維護(hù)輸入的搜索項(xiàng)的記錄和被搜索該搜索項(xiàng)的應(yīng)用。為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),群搜索歷史源2M獲得待搜索的應(yīng)用的指示,比較接收的字符與該應(yīng)用先前被搜索的搜索項(xiàng),并且標(biāo)識(shí)匹配的先前搜索項(xiàng)。無(wú)需維護(hù)設(shè)備的用戶的記錄,并且無(wú)需基于設(shè)備的當(dāng)前用戶比較接收的字符與先前搜索的搜索項(xiàng)。作為建議的搜索項(xiàng),群搜索歷史源2M將匹配接收的字符的先前輸入的搜索項(xiàng)返回到搜索項(xiàng)收集模塊M2。替代地,并非基于用于單個(gè)應(yīng)用的搜索項(xiàng),群搜索歷史源2M可以跨多個(gè)應(yīng)用操作。在這些情況下,為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),群搜索歷史源224比較接收的字符與在設(shè)備處先前輸入的搜索項(xiàng),并且標(biāo)識(shí)匹配的先前搜索項(xiàng)。無(wú)需維護(hù)被搜索特定搜索項(xiàng)的應(yīng)用的記錄,并且無(wú)需維護(hù)設(shè)備的用戶的記錄。相似地,無(wú)需基于設(shè)備的當(dāng)前用戶或待搜索的當(dāng)前應(yīng)用比較接收的字符與先前搜索的搜索項(xiàng)。此外,在一個(gè)或多個(gè)實(shí)施例中,群搜索歷史源2M對(duì)群搜索歷史源2M提供的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。與關(guān)于每用戶搜索歷史源222的以上討論類似,可以通過(guò)不同方式確定該排名。 此外,在一個(gè)或多個(gè)實(shí)施例中,應(yīng)用206可以指定對(duì)于其群搜索歷史源2M將要維護(hù)搜索項(xiàng)的記錄的不同的范圍。與關(guān)于每用戶搜索歷史源222以上的討論類似,為了確定零個(gè)或更多個(gè)建議的搜索項(xiàng),群搜索歷史源2M獲得應(yīng)用206的當(dāng)前范圍的指示,并且僅對(duì)于該范圍標(biāo)識(shí)先前搜索的匹配搜索項(xiàng)。 獨(dú)立服務(wù)提供商源2 是獨(dú)立于實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202和/或搜索UI模塊204的計(jì)算設(shè)備提供零個(gè)或更多個(gè)建議的搜索項(xiàng)的一個(gè)或多個(gè)組件或模塊。獨(dú)立服務(wù)提供商源206可以是遠(yuǎn)程設(shè)備或服務(wù),例如提供建議的搜索項(xiàng)的通過(guò)因特網(wǎng)訪問(wèn)的服務(wù)。搜索項(xiàng)收集模塊242將用戶數(shù)據(jù)的字符提供給獨(dú)立服務(wù)提供商源226,并且從獨(dú)立服務(wù)提供商源2 接收零個(gè)或更多個(gè)建議的搜索項(xiàng)。獨(dú)立服務(wù)提供商源2 確定其中獨(dú)立服務(wù)提供商源2 基于這些字符確定零個(gè)或更多個(gè)建議的搜索項(xiàng)的方式。搜索項(xiàng)收集模塊242無(wú)需具有(并且典型地沒(méi)有)獨(dú)立服務(wù)提供商源2 如何確定零個(gè)或更多個(gè)建議的搜索項(xiàng)的知識(shí)。多個(gè)這些獨(dú)立服務(wù)提供商源2 可以可用于搜索項(xiàng)收集模塊M2,并且模塊242可以通過(guò)使用哪個(gè)或哪些獨(dú)立服務(wù)提供商源226的指示被預(yù)先配置,或替代地可以例如從應(yīng)用 206(例如經(jīng)由配置模塊M0)、從實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202的設(shè)備的用戶等接收或另外獲得使用哪個(gè)或哪些獨(dú)立服務(wù)提供商源226的指示。此外,在一個(gè)或多個(gè)實(shí)施例中,獨(dú)立服務(wù)提供商源2 對(duì)獨(dú)立服務(wù)提供商源2 提供的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。獨(dú)立服務(wù)提供商源226自身確定其中獨(dú)立服務(wù)提供商源2 確定排名的方式——搜索項(xiàng)收集模塊242無(wú)需具有(并且典型地沒(méi)有)獨(dú)立服務(wù)提供商源2 如何確定排名的知識(shí)。自然語(yǔ)言源2 是基于文字的字典提供零個(gè)或更多個(gè)建議的搜索項(xiàng)的一個(gè)或多個(gè)組件或模塊。自然語(yǔ)言源2 包括文字(例如英語(yǔ)語(yǔ)言或另一語(yǔ)言中通常使用的文字、英語(yǔ)語(yǔ)言或其它語(yǔ)言中的特定領(lǐng)域中通常使用的文字等)的特定字典,或能夠?qū)ζ湓L問(wèn)。自然語(yǔ)言源228比較接收的字符(從搜索項(xiàng)收集模塊242接收的用戶數(shù)據(jù)的字符)與該字典中的語(yǔ)言,并且作為零個(gè)或更多個(gè)建議的搜索項(xiàng)返回匹配(例如開(kāi)始于)接收的字符的文字。多個(gè)這些自然語(yǔ)言源2 可以對(duì)于搜索項(xiàng)收集模塊242可用,并且模塊242可以通過(guò)使用哪個(gè)或哪些自然語(yǔ)言源228的指示被預(yù)先配置,或替代地可以例如從應(yīng)用206(例如經(jīng)由配置模塊M0)、從實(shí)現(xiàn)本地文件源220的設(shè)備的用戶等接收或另外獲得使用哪個(gè)或哪些自然語(yǔ)言源228的指示。此外,在一個(gè)或多個(gè)實(shí)施例中,自然語(yǔ)言源2 對(duì)自然語(yǔ)言源2 提供的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。可以通過(guò)不同方式確定該排名。例如,自然語(yǔ)言源2 可以維護(hù)字典中的每個(gè)文字多常用的指示, 并且從最常用到最不常用的排序排名建議的搜索項(xiàng)。通過(guò)另一示例的方式,自然語(yǔ)言源2 可以基于文字的大小(例如關(guān)于文字中的字符或音節(jié)的數(shù)量)排名建議的搜索項(xiàng),按從最小文字到最長(zhǎng)文字的排序排名建議的搜索項(xiàng)。此外,應(yīng)用206自身可以是建議源。與獨(dú)立服務(wù)提供商源2 相似,搜索項(xiàng)收集模塊242將用戶數(shù)據(jù)的字符提供給應(yīng)用206,并且從應(yīng)用206接收零個(gè)或更多個(gè)建議的搜索項(xiàng)。應(yīng)用206自身確定其中應(yīng)用206基于這些字符確定零個(gè)或更多個(gè)建議的搜索項(xiàng)的方式——搜索項(xiàng)收集模塊242無(wú)需具有(并且典型地沒(méi)有)應(yīng)用206如何確定零個(gè)或更多個(gè)建議的搜索項(xiàng)的知識(shí)。雖然應(yīng)用206可以是建議源,但應(yīng)用206無(wú)需是建議源。反而,應(yīng)用 206可以依靠其它建議源220-228中的一個(gè)或多個(gè),并且無(wú)需自身生成建議的搜索項(xiàng)。此外,在一個(gè)或多個(gè)實(shí)施例中,應(yīng)用206對(duì)應(yīng)用206提供的建議的搜索項(xiàng)進(jìn)行排名。建議的搜索項(xiàng)的該排名是從最高排名到最低排名的搜索項(xiàng)的排序。應(yīng)用206確定其中應(yīng)用206確定排名的方式——搜索項(xiàng)收集模塊242無(wú)需具有(并且典型地沒(méi)有)應(yīng)用206如何確定排名的知識(shí)。搜索項(xiàng)合并模塊244將搜索項(xiàng)收集模塊242獲得的建議的搜索項(xiàng)合并或組合為建議的搜索項(xiàng)的組合的集合,并且將建議的搜索項(xiàng)的組合的集合提供給用于對(duì)用戶顯示的搜索UI模塊204。組合的列表是例如圖3的建議列表310。在一個(gè)或多個(gè)實(shí)施例中,搜索項(xiàng)合并模塊對(duì)4通過(guò)按(基于從其獲得建議的搜索項(xiàng)的建議源的)特定排序布置獲得的建議的搜索項(xiàng)來(lái)生成建議的搜索項(xiàng)的組合的集合。該排序指示哪些建議源將要使得它們的建議的搜索項(xiàng)比所述其它建議源在組合的列表中更早(例如在圖3的建議列表310中更高)被包括。搜索項(xiàng)合并模塊244可以通過(guò)使用的排序被配置,或替代地可以在另外地方(例如從應(yīng)用206、從另一模塊或設(shè)備等)獲得排序。搜索項(xiàng)收集模塊242可以標(biāo)識(shí)從哪個(gè)建議源獲得哪些建議的搜索項(xiàng),或替代地建議源可以通過(guò)其它方式(例如從建議源自身接收)被標(biāo)識(shí)。在一個(gè)或多個(gè)實(shí)施例中,其中從其獲得建議的搜索項(xiàng)的建議源是本地文件源222、 每用戶搜索歷史源222和應(yīng)用206,建議的搜索項(xiàng)的排序是從每用戶搜索歷史源222獲得的搜索項(xiàng),隨后是來(lái)自本地文件源220的建議的搜索項(xiàng),隨后是來(lái)自應(yīng)用206的建議的搜索項(xiàng)。例如,如果從本地文件源220獲得建議的搜索項(xiàng)“Hello”、“HeathroW Airport”和 "Henderson Nevada”,則從每用戶搜索歷史源222獲得建議的搜索項(xiàng)“Helium”、“Heroes” 和“Hercules”,并且從應(yīng)用206獲得建議的搜索項(xiàng)“Health Benefits”和“Healthy Lifestyles”,然后組合的列表中的建議的搜索項(xiàng)的排序?qū)⑹?Helium",“Heroes”、 "Hercules”、“Hello”、“Heathrow Airport”、“Henderson Nevada”、“Health Benefits,,和 "Healthy Lifestyles”。在一個(gè)或多個(gè)實(shí)施例中,搜索項(xiàng)合并模塊244還在生成建議的搜索項(xiàng)的組合的集合時(shí)移除復(fù)制的建議的搜索項(xiàng)。如果從多個(gè)建議源獲得相同的建議的搜索項(xiàng),則在組合的集合中包括該搜索項(xiàng)僅一次。可以通過(guò)不同的方式確定將要移除建議的搜索項(xiàng)的哪些副本。在一個(gè)或多個(gè)實(shí)施例中,根據(jù)上述建議源的排序第一出現(xiàn)的建議的搜索項(xiàng)被保持,并且移除建議的搜索項(xiàng)的其它出現(xiàn)。例如,繼續(xù)先前示例,如果相同建議的搜索項(xiàng)待被包括在來(lái)自本地文件源220、每用戶搜索歷史源222和應(yīng)用206中的每一個(gè)建議的搜索項(xiàng)中,則該建議的搜索項(xiàng)被保持為從每用戶搜索歷史源222獲得的建議的搜索項(xiàng)中的一個(gè),并且從從本地文件源220和應(yīng)用206獲得的建議的搜索項(xiàng)被移除。對(duì)于從每一建議源獲得的建議的搜索項(xiàng),來(lái)自該建議源的建議的搜索項(xiàng)的組合的集合中的排序基于從該建議源接收的那些建議的搜索項(xiàng)的排名。在一個(gè)或多個(gè)實(shí)施例中, 建議源按建議的搜索項(xiàng)待被包括在組合的集合中的排序(基于建議源使用的排名機(jī)制)返回建議的搜索項(xiàng)。替代地,可以通過(guò)不同方式,例如按字母順序地、隨機(jī)地、根據(jù)其它規(guī)則或準(zhǔn)則等,確定來(lái)自特定建議源的建議的搜索項(xiàng)的組合的集合中的排序。應(yīng)注意,建議的搜索項(xiàng)的不同的建議源可以具有不同時(shí)延,其指代搜索項(xiàng)收集模塊242花費(fèi)多少時(shí)間從那些不同的建議源接收建議的搜索項(xiàng)。建議源的時(shí)延可以是各個(gè)因素的結(jié)果,所述因素例如是否從與實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202或遠(yuǎn)程設(shè)備相同的設(shè)備獲得建議的搜索項(xiàng),是否由建議源執(zhí)行其它請(qǐng)求或操作、實(shí)現(xiàn)建議源的方式等。搜索項(xiàng)模塊244考慮這些潛在地不同的時(shí)延。在一個(gè)或多個(gè)實(shí)施例中,搜索項(xiàng)模塊244等待閾值時(shí)間量。該閾值時(shí)間量可以改變,并且可以例如在100毫秒到1秒的量級(jí)。 搜索項(xiàng)合并模塊244可以通過(guò)要使用的閾值時(shí)間量被配置,或替代地可以在另外地方(例如從應(yīng)用206、從另一模塊或設(shè)備等)獲得閾值時(shí)間量。將閾值時(shí)間量?jī)?nèi)接收的建議的搜索項(xiàng)提供給搜索UI模塊204,并且當(dāng)接收它們時(shí)將從其它建議源隨后接收的建議的搜索項(xiàng)提供給搜索UI模塊204。此外,在一個(gè)或多個(gè)實(shí)施例中,搜索項(xiàng)合并模塊244使用上述基于建議源的建議的搜索項(xiàng)的排序。如果在閾值時(shí)間量?jī)?nèi)未接收到來(lái)自特定建議源的建議的搜索項(xiàng),則將從在排序中較早的建議源接收的建議的搜索項(xiàng)返回給搜索UI模塊204,但不返回從在排序中較晚的建議源接收的建議的搜索項(xiàng),直到接收到來(lái)自該特定建議源的建議的搜索項(xiàng)。例如,假設(shè)要從本地文件源220、每用戶搜索歷史源222、獨(dú)立服務(wù)提供商源2 和應(yīng)用206獲得建議的搜索項(xiàng),并且在組合的集合中的建議的搜索項(xiàng)的排序是從每用戶搜索歷史源222 獲得的搜索項(xiàng)、隨后是來(lái)自本地文件源220的建議的搜索項(xiàng)、隨后是來(lái)自獨(dú)立服務(wù)提供商源226的建議的搜索項(xiàng)、隨后是來(lái)自應(yīng)用206的建議的搜索項(xiàng)。如果在閾值時(shí)間量?jī)?nèi)從源 220、源222和應(yīng)用206接收搜索項(xiàng),但在閾值時(shí)間量?jī)?nèi)未接收到來(lái)自源226的搜索項(xiàng),則將從源220和222接收的搜索項(xiàng)返回到搜索UI模塊204作為組合的列表。當(dāng)隨后接收到來(lái)自源226的搜索項(xiàng)時(shí),則將來(lái)自源2 和應(yīng)用206的搜索項(xiàng)返回到搜索UI模塊204作為對(duì)組合的列表的添加。作為對(duì)組合的列表的添加的部分的建議的搜索項(xiàng)被附加到搜索UI模塊204顯示的建議的搜索項(xiàng)的列表的末尾,而不是被插入列表的中間。搜索項(xiàng)模塊244可以包括來(lái)自不同的建議源的不同數(shù)量的建議的搜索項(xiàng)。搜索項(xiàng)合并模塊244可以通過(guò)來(lái)自每一建議源的要包括的建議的搜索項(xiàng)的數(shù)量被配置,或替代地可以從另外地方的每一建議源(例如從應(yīng)用206、從另一模塊或設(shè)備等)獲得要包括的建議的搜索項(xiàng)的數(shù)量。如果建議源返回比搜索項(xiàng)模塊244待包括在用于該建議源的組合的集合中更少的建議的搜索項(xiàng),則搜索項(xiàng)模塊244可以包括來(lái)自其它建議源的附加的建議的搜索項(xiàng),或替代地僅包括被返回的建議的搜索項(xiàng)。如果包括來(lái)自其它建議源的附加的建議的搜索項(xiàng),則搜索項(xiàng)模塊244基于上述建議源添加來(lái)自在建議的搜索項(xiàng)的排序中較早的建議源的建議的搜索項(xiàng)。例如,假設(shè)搜索項(xiàng)合并模塊244待包括組合的集合中的八個(gè)建議的搜索項(xiàng)——來(lái)自本地文件源220的三個(gè)建議的搜索項(xiàng)和來(lái)自每用戶搜索歷史源222的五個(gè)建議的搜索項(xiàng),并且組合的集合中的建議的搜索項(xiàng)的排序是從每用戶搜索歷史源222獲得的搜索項(xiàng)后隨從本地文件源220獲得的搜索項(xiàng)。此外,假設(shè)每用戶搜索歷史源222返回八個(gè)建議的搜索項(xiàng),本地文件源220返回兩個(gè)建議的搜索項(xiàng)。在此情況下,搜索項(xiàng)合并模塊244生成包括來(lái)自每用戶搜索歷史源222的六個(gè)建議的搜索項(xiàng)、后隨來(lái)自本地文件源220的兩個(gè)建議的搜索項(xiàng)的建議的搜索項(xiàng)的組合的集合。此外,在一個(gè)或多個(gè)實(shí)施例中,每用戶搜索歷史源222 (或替代地其它建議源)維護(hù)的信息可以漫游到不同的計(jì)算設(shè)備。該漫游允許源222維護(hù)的每用戶歷史用于不同的計(jì)算設(shè)備上的相同的用戶。可以通過(guò)不同方式漫游源222維護(hù)的信息。例如,可以通過(guò)僅當(dāng)該用戶登入計(jì)算設(shè)備和/或另外提供適當(dāng)?shù)恼J(rèn)證(例如用戶名稱和密碼)時(shí)允許對(duì)信息的訪問(wèn)的安全方式來(lái)加密或另外存儲(chǔ)源222維護(hù)的信息。信息可以存儲(chǔ)在另一設(shè)備或服務(wù)(例如經(jīng)由圖1的網(wǎng)絡(luò)106訪問(wèn)的設(shè)備104)上,并且當(dāng)用戶請(qǐng)求時(shí)(例如當(dāng)用戶登入計(jì)算設(shè)備時(shí), 當(dāng)用戶開(kāi)始輸入搜索項(xiàng)的字符時(shí),等)被獲取。替代地,信息可以在用戶連接到不同的計(jì)算設(shè)備的便攜式設(shè)備上(例如閃存設(shè)備上)被維護(hù),包括可擴(kuò)展搜索項(xiàng)建議模塊202的設(shè)備可以使得信息(例如經(jīng)由圖1的網(wǎng)絡(luò)106)對(duì)其它設(shè)備可用,等。此外,在一個(gè)或多個(gè)實(shí)施例中,在確定零個(gè)或更多個(gè)建議的搜索項(xiàng)時(shí),建議源中的一個(gè)或多個(gè)修改接收的字符(從搜索項(xiàng)收集模塊242接收的用戶數(shù)據(jù)的字符)。該修改允許例如標(biāo)識(shí)印刷錯(cuò)誤。該修改可以包括例如交換字符、添加一個(gè)或多個(gè)字符、以及移除一個(gè)或多個(gè)字符。例如,如果接收的字符是“He”,則字母“H”或字母“e”可以與其它字符(例如其它字母)交換,并且關(guān)于是否存在基于交換的字符提供的源的任何建議的搜索項(xiàng)進(jìn)行檢查。 例如,字母“e”可以與字母“a”交換,并且關(guān)于是否存在基于接收的字符“Ha”提供的源的任何建議的搜索項(xiàng)(例如任何先前搜索的以“Ha”開(kāi)始的搜索項(xiàng))進(jìn)行檢查。通過(guò)另一示例的方式,如果接收的字符是“He”,則可以將另一字母添加到接收的字符的開(kāi)始、末尾或中間。 例如,可以添加字母“ t,,,產(chǎn)生“Het,,、"Hte,,或“The,,,并且關(guān)于是否存在基于“Het,,、"Hte,, 或“The”的接收的字符提供的源的任何建議的搜索項(xiàng)進(jìn)行檢查。通過(guò)又一示例的方式,如果接收的字符是“He”,則可以移除字母中的一個(gè)。例如,可以移除字母“e”,產(chǎn)生“H”,或可以移除字母“H”,產(chǎn)生字母“E”,并且關(guān)于是否存在基于“H”或“E”的接收的字符提供的源的任何建議的搜索項(xiàng)進(jìn)行檢查。在一個(gè)或多個(gè)實(shí)施例中,僅在沒(méi)有發(fā)現(xiàn)針對(duì)接收的字符的建議的搜索項(xiàng)的情況下,建議源才修改接收的字符試圖標(biāo)識(shí)零個(gè)或更多個(gè)建議的搜索項(xiàng)。因此,如果建議源使用接收的字符(沒(méi)有修改)標(biāo)識(shí)一個(gè)或多個(gè)建議的搜索項(xiàng),則不執(zhí)行接收的字符的修改。此外, 在一個(gè)或多個(gè)實(shí)施例中,建議源使用用于指示可以修改多少字符和/或多頻繁地修改字符的改變的閾值。例如,可以修改每3字符中的僅1個(gè),可以修改每5個(gè)字符中的僅1個(gè),等。還應(yīng)注意,修改接收的字符可以產(chǎn)生基于修改的字符的多個(gè)建議的搜索項(xiàng)。在這些情況下,可以基于它們與接收的字符的相關(guān)性來(lái)對(duì)多個(gè)建議的搜索項(xiàng)進(jìn)行排名。可以通過(guò)不同方式,例如基于鍵盤的布局、修改的類型等,確定基于相關(guān)性的該排名。例如,排名可以是作為最相關(guān)的交換的字符、作為下一最相關(guān)的移除的字符、以及作為最不相關(guān)的添加的字符。通過(guò)另一示例的方式,如果不同的交換的字符產(chǎn)生多個(gè)建議的搜索項(xiàng),則鍵盤的布局可以用于標(biāo)識(shí)哪個(gè)字母最靠近接收的字符,并且該字母被排序?yàn)樽钕嚓P(guān)的。例如,如果接收的字符是“He”,并且“e”與“a”和“i”交換,并且基于“Ha”和“Hi”的接收字符標(biāo)識(shí)一個(gè)或多個(gè)建議的搜索項(xiàng),則因?yàn)樽帜浮癮”比字母“i”更靠近QWERTY鍵盤布局上的字母“e”, 所以基于“Ha”的接收字符的建議的搜索項(xiàng)將排名高于基于“Hi”的接收字符的建議的搜索項(xiàng)。還應(yīng)注意,雖然建議的搜索項(xiàng)在此被討論為文本搜索項(xiàng),但建議源中的一個(gè)或多個(gè)可以返回各種其它內(nèi)容和/或類型的內(nèi)容。除了或替代地代替返回的建議的搜索項(xiàng),搜索UI模塊204可以顯示或另外呈現(xiàn)該其它內(nèi)容和/或類型的內(nèi)容。例如,可以返回并且顯示與一個(gè)或多個(gè)建議的搜索項(xiàng)有關(guān)的一個(gè)或多個(gè)圖像,可以返回并且顯示與一個(gè)或多個(gè)建議的搜索項(xiàng)有關(guān)的附加的描述文本,可以返回并且回放與一個(gè)或多個(gè)建議的搜索項(xiàng)有關(guān)的音頻內(nèi)容等。圖4是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于生成建議的搜索項(xiàng)的組合的集合的示例過(guò)程400的流程圖。可以通過(guò)軟件、固件、硬件或其組合實(shí)現(xiàn)處理400。可擴(kuò)展搜索項(xiàng)建議模塊(例如圖1的模塊118或圖2的模塊202)執(zhí)行過(guò)程400。過(guò)程400示出為動(dòng)作的集合,并且不限于對(duì)于執(zhí)行各個(gè)動(dòng)作的操作所示的排序。過(guò)程400是用于生成建議的搜索項(xiàng)的組合的集合的示例過(guò)程;在此參照不同的圖包括生成建議的搜索項(xiàng)的組合的集合的附加討論。在過(guò)程400中,接收作為搜索項(xiàng)的至少一部分的用戶數(shù)據(jù)的字符(動(dòng)作402)。用戶可以通過(guò)上述各種不同的方式輸入字符。接收待使用的建議源的指示(動(dòng)作404)。可以從待搜索搜索項(xiàng)的應(yīng)用或如上所述的另外地方接收該指示。從建議源中的每一個(gè)獲得零個(gè)或更多個(gè)建議的搜索項(xiàng)(動(dòng)作406)。可以在不同時(shí)
15間從不同的建議源接收不同數(shù)量的搜索項(xiàng),如上所述。雖然典型地從建議源中的每一個(gè)獲得一個(gè)或多個(gè)建議的搜索項(xiàng),但應(yīng)注意,在一些情況下,建議源可以不返回建議的搜索項(xiàng)。將獲得的建議的搜索項(xiàng)組合為建議的搜索項(xiàng)的組合的集合(動(dòng)作408)。可以基于來(lái)自每一不同的建議源的建議的搜索項(xiàng)的特定數(shù)量和特定排序來(lái)組合獲得的建議的搜索項(xiàng),如上所述。將建議的搜索項(xiàng)的組合的集合返回到用于呈現(xiàn)的搜索用戶界面(動(dòng)作410)。搜索用戶界面可以顯示或另外對(duì)用戶呈現(xiàn)建議的搜索項(xiàng)的該組合的集合,如上所述。返回圖2,系統(tǒng)200還包括語(yǔ)言替選生成模塊208,其支持利用特定語(yǔ)言的語(yǔ)言替選獲得并且顯示建議的搜索項(xiàng)。一些語(yǔ)言,例如東亞語(yǔ)言(例如日語(yǔ)、漢語(yǔ)和韓語(yǔ))包括與鍵盤的各個(gè)鍵不對(duì)應(yīng)的大量字符。可以使用多個(gè)不同的字母表(例如拉丁或在俄語(yǔ)的情況下的西里爾)表示其它語(yǔ)言(例如俄語(yǔ))。可擴(kuò)展搜索項(xiàng)建議模塊202支持利用這些語(yǔ)言的語(yǔ)言替選獲得建議的搜索項(xiàng)。配置模塊240從應(yīng)用206(或替代地從另一組件或模塊,例如搜索UI模塊204)接收指定是否使用語(yǔ)言替選生成模塊208 (以及因此可擴(kuò)展搜索項(xiàng)建議模塊202是否要利用語(yǔ)言替選獲得建議的搜索項(xiàng))的指示。隨著可擴(kuò)展搜索項(xiàng)建議模塊202從搜索UI模塊204接收字符,搜索項(xiàng)收集模塊 242在接收的字符被接收時(shí)將其提供給語(yǔ)言替選生成模塊208。語(yǔ)言替選生成模塊208可以通過(guò)各種不同的方式標(biāo)識(shí)用于用戶輸入的語(yǔ)言替選,并且將這些語(yǔ)言替選返回到搜索項(xiàng)收集模塊對(duì)2。語(yǔ)言替選生成模塊208典型地標(biāo)識(shí)用于用戶輸入的一個(gè)或多個(gè)語(yǔ)言替選,并且將這些一個(gè)或多個(gè)語(yǔ)言替選返回到搜索項(xiàng)收集模塊M2。然而,應(yīng)注意,語(yǔ)言替選生成模塊208典型地?zé)o需(然而替代地可以需要)返回語(yǔ)言替選。因此,語(yǔ)言替選生成模塊208不標(biāo)識(shí)并且不返回用于特定用戶輸入的語(yǔ)言替選的情況可能出現(xiàn)。在一個(gè)或多個(gè)實(shí)施例中,語(yǔ)言替選生成模塊208通過(guò)將用戶輸入的字符從一個(gè)字母表轉(zhuǎn)譯為另一字母表來(lái)標(biāo)識(shí)用于用戶輸入的語(yǔ)言替選。例如,在俄語(yǔ)語(yǔ)言的情況下,如果用戶輸入是拉丁字母表字符,則語(yǔ)言替選生成模塊208將拉丁字母表字符轉(zhuǎn)譯為西里爾字母表字符。語(yǔ)言替選生成模塊208將(西里爾字母表字符中的)用戶輸入的翻譯返回到搜索項(xiàng)收集模塊242作為一個(gè)或多個(gè)語(yǔ)言替選。此外,在一個(gè)或多個(gè)實(shí)施例中,語(yǔ)言替選生成模塊208標(biāo)識(shí)語(yǔ)音音節(jié)可以表示的一個(gè)或多個(gè)字符。在一些情況下,例如一些東亞語(yǔ)言,為了輸入特定字符,用戶輸入語(yǔ)音音節(jié)作為多個(gè)拉丁字母表字符。例如,用戶可以使用可以與多個(gè)不同的漢語(yǔ)字符對(duì)應(yīng)的拉丁字母表字符“bei”輸入語(yǔ)音音節(jié)。語(yǔ)言替選生成模塊208標(biāo)識(shí)可以與特定用戶輸入對(duì)應(yīng)的零個(gè)或更多個(gè)不同的字符,并且將這些標(biāo)識(shí)的字符返回到搜索項(xiàng)收集模塊242作為語(yǔ)言替選。例如,如果用戶輸入是“bei”,則語(yǔ)言替選生成模塊208標(biāo)識(shí)“bei”可以表示的不同的漢語(yǔ)字符,并且將這些漢語(yǔ)字符返回到搜索項(xiàng)收集模塊242作為語(yǔ)言替選。通過(guò)另一示例的方式,如果用戶輸入是“h”,則語(yǔ)言替選生成模塊208標(biāo)識(shí)“h”可以表示的不同的漢語(yǔ)字符(其將包括以“h”開(kāi)始的多個(gè)不同的語(yǔ)音音節(jié)),并且將這些漢語(yǔ)字符返回到搜索項(xiàng)收集模塊242作為語(yǔ)言替選。語(yǔ)言替選生成模塊208可以被配置用于特定語(yǔ)言或替代地用于多個(gè)語(yǔ)言。例如, 設(shè)備(例如實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議模塊202和/或搜索UI模塊204的設(shè)備)的用戶、應(yīng)用 206、搜索UI模塊204等可以提供標(biāo)識(shí)對(duì)于其語(yǔ)言替選生成模塊208將要提供替選的語(yǔ)言的配置設(shè)置。通過(guò)另一示例的方式,系統(tǒng)200中可以包括不同的語(yǔ)言替選生成模塊208,每一用于不同的語(yǔ)言(例如一個(gè)模塊208用于俄語(yǔ)、另一模塊208用于漢語(yǔ)、另一模塊208用于日語(yǔ)等)。搜索項(xiàng)收集模塊242可以根據(jù)對(duì)于其期望語(yǔ)言替選的(例如設(shè)備的用戶、應(yīng)用 206、搜索UI模塊204等指示的)語(yǔ)言將用戶輸入提供給這些不同的模塊208中的一個(gè)或多個(gè)。搜索項(xiàng)收集模塊242從語(yǔ)言替選生成模塊208接收語(yǔ)言替選,并且將從搜索UI模塊204接收的字符和語(yǔ)言替選提供給從其獲得建議的搜索項(xiàng)的應(yīng)用206和建議源220-2 中的一個(gè)或多個(gè)。每一建議源可以然后基于接收的字符、語(yǔ)言替選或接收的字符和語(yǔ)言替選兩者確定一個(gè)或多個(gè)建議的搜索項(xiàng)。如果從語(yǔ)言替選生成模塊208未接收到語(yǔ)言替選, 則搜索項(xiàng)收集模塊242僅將從搜索UI模塊204接收的字符提供給從其獲得建議的搜索項(xiàng)的應(yīng)用206和建議源220-2 中的一個(gè)或多個(gè)。雖然以上討論從多個(gè)建議源獲得建議的搜索項(xiàng),但應(yīng)注意,語(yǔ)言替選可以被提供給單個(gè)建議源以及從單個(gè)建議源接收建議的搜索項(xiàng)并且返回到搜索UI模塊204。每一建議源可以通過(guò)不同的方式確定一個(gè)或多個(gè)建議的搜索項(xiàng),如上所述。然而, 也可以基于語(yǔ)言替選進(jìn)行確定。例如,每用戶搜索歷史源222可以包括包括漢語(yǔ)字符的先前搜索項(xiàng)的記錄。隨著用戶輸入拉丁字母表字母作為字符,語(yǔ)言替選生成模塊208生成基于這些字符的不同的可能的漢語(yǔ)字符。將這些不同的漢語(yǔ)字符提供給每用戶搜索歷史源 222,仿佛這些漢語(yǔ)字符是用戶輸入的實(shí)際字符。源222可以標(biāo)識(shí)提供的漢語(yǔ)字符與包括漢語(yǔ)字符的先前搜索項(xiàng)之間的匹配,并且返回這些匹配漢語(yǔ)字符作為建議的搜索項(xiàng)。因此,響應(yīng)于已經(jīng)輸入幾個(gè)拉丁字母表字母,用戶可以被呈現(xiàn)有每一包括一個(gè)或多個(gè)漢語(yǔ)字符的一個(gè)或多個(gè)建議的搜索項(xiàng)。還應(yīng)注意,由于建議的搜索項(xiàng)可以基于語(yǔ)言替選,因此建議的搜索項(xiàng)可以在各個(gè)不同的字母表和/或語(yǔ)言中。例如,建議的搜索項(xiàng)可以包括以“bei”開(kāi)始的英語(yǔ)語(yǔ)言文字以及“bei”表示的漢語(yǔ)字符。圖5是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于基于語(yǔ)言替選生成建議的搜索項(xiàng)的示例過(guò)程500的流程圖。可以通過(guò)軟件、固件、硬件或其組合實(shí)現(xiàn)過(guò)程500。可擴(kuò)展搜索項(xiàng)建議模塊和語(yǔ)言替選生成模塊(例如圖1的模塊118或圖2的模塊202以及圖2的模塊208) 執(zhí)行過(guò)程500。過(guò)程500示出為動(dòng)作的集合,并且不限于對(duì)于執(zhí)行各個(gè)動(dòng)作的操作所示的排序。過(guò)程500是用于基于語(yǔ)言替選生成建議的搜索項(xiàng)的示例過(guò)程;在此參照不同的圖包括基于語(yǔ)言替選生成建議的搜索項(xiàng)的附加討論。在過(guò)程500中,接收作為搜索項(xiàng)的至少一部分的用戶數(shù)據(jù)的字符(動(dòng)作502)。用戶可以通過(guò)上述各種不同的方式輸入字符。確定針對(duì)字符的語(yǔ)言替選(動(dòng)作504)。可以通過(guò)不同的方式(包括將字符從一個(gè)字母表翻譯為另一字母表并且標(biāo)識(shí)如上所述語(yǔ)音音節(jié)可以表示的一個(gè)或多個(gè)字符)確定語(yǔ)言替選。將字符和語(yǔ)言替選兩者都提供給建議源(動(dòng)作506)。替代地,在動(dòng)作506中可以僅將語(yǔ)言替選提供給建議源。可以將語(yǔ)言替選提供給單個(gè)建議源,或替代地提供給多個(gè)建議源,如上所述。從建議源接收一個(gè)或多個(gè)建議的搜索項(xiàng)(動(dòng)作508)。雖然在一些情況下建議源可以不返回建議的搜索項(xiàng),但從對(duì)其提供字符和語(yǔ)言替選的每一建議源典型地接收一個(gè)或多個(gè)建議的搜索項(xiàng)。將建議的搜索項(xiàng)返回到用于呈現(xiàn)的搜索用戶界面(動(dòng)作510)。搜索用戶界面可以對(duì)用戶顯示或另外呈現(xiàn)該建議的搜索項(xiàng),如上所述。此外,從多個(gè)建議源接收的建議的搜索項(xiàng)可以組合為建議的搜索項(xiàng)的組合的集合,如上所述。在此討論的可擴(kuò)展搜索項(xiàng)建議引擎支持各種不同使用情況。可擴(kuò)展搜索項(xiàng)建議引擎提供具有對(duì)于輸入搜索項(xiàng)以搜索應(yīng)用的用戶生成的建議的搜索項(xiàng)中的應(yīng)用靈活性。不同應(yīng)用可以依靠不同的建議源,并且無(wú)需(雖然可以)自身生成建議的搜索項(xiàng)。應(yīng)用可以指定哪些一個(gè)或多個(gè)建議源用于生成建議的搜索項(xiàng),并且也可以指定語(yǔ)言替選是否用在生成的建議的搜索項(xiàng)中。圖6示出根據(jù)一個(gè)或多個(gè)實(shí)施例的可以被配置為實(shí)現(xiàn)可擴(kuò)展搜索項(xiàng)建議引擎的示例計(jì)算設(shè)備600。計(jì)算設(shè)備600可以是例如圖1的計(jì)算設(shè)備102或104,并且可以實(shí)現(xiàn)圖 2的系統(tǒng)200的至少一部分。計(jì)算設(shè)備600包括一個(gè)或多個(gè)處理器或處理單元602、可以包括一個(gè)或多個(gè)存儲(chǔ)器和/或存儲(chǔ)組件606的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)604、一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備608、以及允許各個(gè)組件和設(shè)備彼此通信的總線610。計(jì)算機(jī)可讀介質(zhì)604和/或一個(gè)或多個(gè)I/O設(shè)備608可以被包括作為計(jì)算設(shè)備600的一部分,或替代地可以耦合到計(jì)算設(shè)備 600。總線610表示若干類型的總線結(jié)構(gòu)中的一個(gè)或多個(gè),包括使用各種不同的總線架構(gòu)的存儲(chǔ)器總線或存儲(chǔ)控制器、外圍總線、加速圖形端口、處理器或本地總線等。總線610可以包括有線和/或無(wú)線總線。存儲(chǔ)器/存儲(chǔ)組件606表示一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介質(zhì)。組件606可以包括易失性介質(zhì)(例如隨機(jī)存取存儲(chǔ)器(RAM))和/或非易失性介質(zhì)(例如只讀存儲(chǔ)器(ROM)、閃存、光盤、磁盤等)。組件606可以包括固定介質(zhì)(例如RAM、ROM、固定硬盤驅(qū)動(dòng)器等)以及可拆除介質(zhì)(例如閃存驅(qū)動(dòng)器、可拆除硬盤驅(qū)動(dòng)器、光盤等)。可以利用一個(gè)或多個(gè)處理單元602執(zhí)行的指令以軟件實(shí)現(xiàn)在此討論的技術(shù)。應(yīng)理解,不同的指令可以存儲(chǔ)在計(jì)算設(shè)備600的不同的組件中,例如在處理單元602中,在處理單元602的各個(gè)高速緩存存儲(chǔ)器中,在設(shè)備600的其它高速緩存存儲(chǔ)器中(未示出)、在其它計(jì)算機(jī)可讀介質(zhì)上,等。此外,應(yīng)理解,在計(jì)算設(shè)備600中存儲(chǔ)的指令的位置可以隨著時(shí)間改變。—個(gè)或多個(gè)輸入/輸出設(shè)備608允許用戶將命令和信息輸入到計(jì)算設(shè)備600,并且還允許將信息呈現(xiàn)給用戶和/或其它組件或設(shè)備。輸入設(shè)備的示例包括鍵盤、光標(biāo)控制設(shè)備(例如鼠標(biāo))、麥克風(fēng)、掃描儀等。輸出設(shè)備的示例包括顯示設(shè)備(例如監(jiān)視器或投影儀)、 揚(yáng)聲器、打印機(jī)、網(wǎng)卡等。可以在軟件或程序模塊的普通環(huán)境下在此描述各個(gè)技術(shù)。通常,軟件包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。可以在一些形式的計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)或跨一些形式的計(jì)算機(jī)可讀介質(zhì)發(fā)送這些模塊和技術(shù)的實(shí)現(xiàn)。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算設(shè)備可以訪問(wèn)的任何可用的一個(gè)或多個(gè)介質(zhì)。通過(guò)示例的方式,但不是限制,計(jì)算機(jī)可讀介質(zhì)可以包括“計(jì)算機(jī)存儲(chǔ)介質(zhì)”和“通信介質(zhì)”。“計(jì)算機(jī)存儲(chǔ)介質(zhì)”包括通過(guò)用于例如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的存儲(chǔ)的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可拆除和不可拆除介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、ROM、EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用于存儲(chǔ)期望的信息并且計(jì)算機(jī)可以訪問(wèn)的任何其它介質(zhì)。“通信介質(zhì)”典型地包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或調(diào)制的數(shù)據(jù)信號(hào) (例如載波或其它傳輸介質(zhì))中的其它數(shù)據(jù)。通信介質(zhì)還包括任何信息傳送介質(zhì)。術(shù)語(yǔ)“調(diào)制的數(shù)據(jù)信號(hào)”表示使其特性中的一個(gè)或多個(gè)按照編碼信號(hào)中的信息的這種方式來(lái)設(shè)置或改變的信號(hào)。通過(guò)示例的方式,并且并非限制,通信介質(zhì)包括有線介質(zhì)(例如有線網(wǎng)絡(luò)或直接布線連接)以及無(wú)線介質(zhì)(例如聲學(xué)、RF、紅外和其它無(wú)線介質(zhì))。以上的任何的組合也被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。通常,可以使用軟件、固件、硬件(例如固定邏輯電路)、手動(dòng)處理、或這些實(shí)現(xiàn)的組合來(lái)實(shí)現(xiàn)在此描述的功能或技術(shù)中的任一項(xiàng)。在此使用的術(shù)語(yǔ)“模塊”和“組件”通常表示軟件、固件、硬件或其組合。在軟件實(shí)現(xiàn)的情況下,模塊或組件表示當(dāng)在處理器(例如一個(gè)或多個(gè)CPU)上執(zhí)行時(shí)執(zhí)行指定的任務(wù)的程序代碼。程序代碼可以存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備中,可以參照?qǐng)D6找到其進(jìn)一步描述。在此描述的可擴(kuò)展搜索項(xiàng)建議引擎技術(shù)的特征是平臺(tái)獨(dú)立的,表示可以在具有各種處理器的各種商用計(jì)算平臺(tái)上實(shí)現(xiàn)所述技術(shù)。雖然在對(duì)于結(jié)構(gòu)特征和/或方法動(dòng)作特定的語(yǔ)言中已經(jīng)描述了主題內(nèi)容,但應(yīng)理解,所附權(quán)利要求中限定的主題內(nèi)容不一定受限于以上描述的特定特征或動(dòng)作。相反,以上描述的特定特征和動(dòng)作被公開(kāi)作為實(shí)現(xiàn)權(quán)利要求的示例形式。
權(quán)利要求
1.一種在計(jì)算設(shè)備的搜索項(xiàng)建議引擎中的方法,所述方法包括隨著字符被輸入,接收(402)用戶數(shù)據(jù)的字符,其中,所述用戶數(shù)據(jù)是提供給第一應(yīng)用以搜索搜索項(xiàng)的所述搜索項(xiàng)的至少一部分,其中,所述第一應(yīng)用是所述計(jì)算設(shè)備上的多個(gè)應(yīng)用中的一個(gè);從所述第一應(yīng)用接收(404)多個(gè)建議源的指示;基于接收的字符從所述多個(gè)建議源中的兩個(gè)或更多個(gè)中的每一個(gè)獲得(406) —個(gè)或多個(gè)建議的搜索項(xiàng);將所述一個(gè)或多個(gè)建議的搜索項(xiàng)組合(408)為建議的搜索項(xiàng)的組合的集合;以及將建議的搜索項(xiàng)的所述組合的集合返回(410)到用于對(duì)用戶呈現(xiàn)的搜索用戶界面。
2.如權(quán)利要求1所述的方法,其中,所述多個(gè)建議源中的一個(gè)是基于所述計(jì)算設(shè)備的本地存儲(chǔ)設(shè)備上存儲(chǔ)的文件提供一個(gè)或多個(gè)建議的搜索項(xiàng)的本地文件源。
3.如權(quán)利要求2所述的方法,所述本地文件源修改所述接收的字符以標(biāo)識(shí)一個(gè)或多個(gè)建議的搜索項(xiàng),所述修改包括交換所述接收的字符中的各個(gè)字符,將一個(gè)或多個(gè)字符添加到所述接收的字符,或刪除所述接收的字符的一個(gè)或多個(gè)字符。
4.如權(quán)利要求1所述的方法,其中,所述多個(gè)建議源中的一個(gè)是基于所述計(jì)算設(shè)備的用戶輸入的搜索項(xiàng)的歷史提供一個(gè)或多個(gè)建議的搜索項(xiàng)的每用戶搜索歷史源。
5.如權(quán)利要求1所述的方法,其中,組合所述一個(gè)或多個(gè)建議的搜索項(xiàng)包括從自所述兩個(gè)或更多個(gè)建議源獲得的所述建議的搜索項(xiàng)移除復(fù)制的建議的搜索項(xiàng);以及基于從其獲得所述建議的搜索項(xiàng)的所述建議源對(duì)建議的搜索項(xiàng)的所述組合的集合中的所述建議的搜索項(xiàng)進(jìn)行排序。
6.如權(quán)利要求5所述的方法,還包括對(duì)于所述多個(gè)建議源中的每一個(gè),標(biāo)識(shí)待包括在建議的搜索項(xiàng)的所述組合的集合中的多個(gè)建議的搜索項(xiàng);如果從所述建議源獲得至少所述多個(gè)建議的搜索項(xiàng),則對(duì)于所述多個(gè)建議源中的每一個(gè),在所述組合的集合中包括來(lái)自所述建議源的所述多個(gè)建議的搜索項(xiàng);以及如果從所述建議源未獲得至少所述多個(gè)建議的搜索項(xiàng),則對(duì)于所述多個(gè)建議源中的每一個(gè),在所述組合的集合中包括來(lái)自另一建議源的一個(gè)或多個(gè)建議的搜索項(xiàng)。
7.如權(quán)利要求1所述的方法,其中,所述返回包括在閾值時(shí)間量?jī)?nèi)返回從所述多個(gè)建議源中的第一組一個(gè)或多個(gè)建議源接收的第一建議的搜索項(xiàng);等待直到從所述多個(gè)建議源中的第二組一個(gè)或多個(gè)建議源接收第二建議的搜索項(xiàng);以及在返回第一建議的搜索項(xiàng)之后,將所述第二建議的搜索項(xiàng)返回到所述搜索用戶界面。
8.一種計(jì)算設(shè)備,包括 一個(gè)或多個(gè)處理器(602);以及一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(604),其上存儲(chǔ)當(dāng)所述一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得所述一個(gè)或多個(gè)處理器進(jìn)行以下操作的多個(gè)指令隨著字符被輸入,接收(502)用戶數(shù)據(jù)的字符,其中,所述用戶數(shù)據(jù)是待提供給應(yīng)用以搜索搜索項(xiàng)的所述搜索項(xiàng)的至少一部分;確定(504)針對(duì)所述字符的一個(gè)或多個(gè)語(yǔ)言替選;將所述字符和所述一個(gè)或多個(gè)語(yǔ)言替選兩者都提供(506)給建議源;基于所述一個(gè)或多個(gè)語(yǔ)言替選從所述建議源接收(508) —個(gè)或多個(gè)建議的搜索項(xiàng);以及將所述一個(gè)或多個(gè)建議的搜索項(xiàng)返回(510)到用于顯示的搜索用戶界面。
9.如權(quán)利要求8所述的計(jì)算設(shè)備,其中,確定針對(duì)所述字符的一個(gè)或多個(gè)語(yǔ)言替選是將所述字符翻譯為不同的字母表。
10.如權(quán)利要求8所述的計(jì)算設(shè)備,其中,確定針對(duì)所述字符的一個(gè)或多個(gè)語(yǔ)言替選是標(biāo)識(shí)所述字符表示的一個(gè)或多個(gè)東亞語(yǔ)言字符。
全文摘要
隨著輸入字符,計(jì)算設(shè)備的搜索項(xiàng)建議引擎接收用戶數(shù)據(jù)的字符。用戶數(shù)據(jù)是待提供給多個(gè)應(yīng)用中的一個(gè)以搜索搜索項(xiàng)的搜索項(xiàng)的至少一部分。從一個(gè)應(yīng)用接收多個(gè)建議源的指示,并且基于接收的字符從多個(gè)建議源獲得一個(gè)或多個(gè)建議的搜索項(xiàng)。也可以基于針對(duì)接收的字符的一個(gè)或多個(gè)語(yǔ)言替選從多個(gè)建議源獲得一個(gè)或多個(gè)建議的搜索項(xiàng)。將一個(gè)或多個(gè)建議的搜索項(xiàng)組合為建議的搜索項(xiàng)的組合的集合,并且將建議的搜索項(xiàng)的組合的集合返回到用于對(duì)用戶呈現(xiàn)的搜索用戶界面。
文檔編號(hào)G06F17/30GK102426607SQ20111036297
公開(kāi)日2012年4月25日 申請(qǐng)日期2011年11月16日 優(yōu)先權(quán)日2010年11月16日
發(fā)明者T. 阿倫 A., 古魯納桑 A., D. 埃利奧特 B., J. G. 伍德 D., S. 格哈德 D., B. 阿弗里特 E., K. 梁 K., 沃捷 M., 米什拉 M., A. C. 桑切斯 O., P. 富爾捷 P., 維亞納桑 P., 埃蘭戈文 V. 申請(qǐng)人:微軟公司