專利名稱:用于在計算機(jī)網(wǎng)絡(luò)內(nèi)搜索的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在計算機(jī)網(wǎng)絡(luò)內(nèi)搜索的方法、設(shè)備和計算機(jī)程序,例如用于在通過因特網(wǎng)或內(nèi)部網(wǎng)訪問的網(wǎng)站或者目錄內(nèi)進(jìn)行搜索。
背景技術(shù):
當(dāng)訪問網(wǎng)站時,用戶一般對于網(wǎng)站的結(jié)構(gòu)幾乎沒有什么了解,并且不知道用來訪問該網(wǎng)站內(nèi)的特定內(nèi)容的統(tǒng)一資源標(biāo)識符(URI)。典型地,用戶訪問網(wǎng)站,并且裝載諸如主頁的頁面,然后通過點擊超鏈接來瀏覽該網(wǎng)站,或者選擇搜索引擎選項。該搜索要求用戶填寫帶有搜索項(search term)和其他標(biāo)準(zhǔn)的表單,或者至少將搜索項鍵入搜索特定輸入字段。發(fā)起LDAP目錄搜索或通過搜索引擎如‘Google’的搜索需要類似的用戶交互序列-首先,載入網(wǎng)頁,然后填寫表單以生成LDAP目錄搜索請求或者Google搜索請求(Google是Google技術(shù)公司在美國和其他國家的注冊商標(biāo))。
由于很多因特網(wǎng)用戶目前通過傳統(tǒng)電話連接或者通過移動通信訪問網(wǎng)站,因此任何不必要的用戶交互都會嚴(yán)重地延誤用戶到達(dá)真正感興趣的網(wǎng)頁。在理論上,有效格式化的搜索請求可以直接鍵入傳統(tǒng)Web(萬維網(wǎng))瀏覽器的用戶輸入字段。然而,期望一般的因特網(wǎng)用戶知道不同搜索引擎語言要求是不合理的。因此,用戶繼續(xù)依賴于選擇頁面之間的超鏈接或者查找用于網(wǎng)站搜索引擎的用戶輸入字段或表單,并且將搜索項鍵入該用戶輸入字段或表單。
傳統(tǒng)網(wǎng)站訪問的另一個問題是典型地將沒有找到所請求頁面這一失敗作為“未找到文檔”錯誤報告給用戶,而沒有特定錯誤原因的說明。在缺乏任何用于將來交互的指導(dǎo)的情況下,用戶典型地重新裝載先前訪問的頁面,將新的統(tǒng)一資源定位符(URL)鍵入其瀏覽器的用戶輸入字段,或者放棄搜索。
2002年5月2日公布的國際專利申請公布No.WO 02/35387描述了一種搜索過程,其中解析包括搜索引擎的有效定位符(URL)和至少一個搜索項的搜索請求串,并且將其分離成定位符和搜索串。然后,將搜索串提交給具有指定定位符的搜索引擎。從搜索引擎返回的數(shù)據(jù)傳回給用戶。WO 02/35387允許用戶在Web瀏覽器的輸入字段中輸入搜索標(biāo)準(zhǔn),但是要求用戶輸入搜索引擎的有效URL指針,并且沒有公開一種用于使得能夠按照目標(biāo)服務(wù)器所規(guī)定的要求進(jìn)行搜索的解決方案。
發(fā)明內(nèi)容
本發(fā)明提供了用于在通過指定服務(wù)器數(shù)據(jù)處理設(shè)備(例如運行Web服務(wù)器或目錄服務(wù)器的服務(wù)器數(shù)據(jù)處理設(shè)備)可訪問的數(shù)據(jù)內(nèi)搜索的方法、設(shè)備和計算機(jī)程序。響應(yīng)輸入到運行在客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序(如Web瀏覽器)的輸入字段中的數(shù)據(jù),使用存儲在客戶端數(shù)據(jù)處理設(shè)備上的信息,生成搜索請求。所存儲的信息包括服務(wù)器數(shù)據(jù)處理設(shè)備的標(biāo)識符,并且可以包括運行在服務(wù)器數(shù)據(jù)處理設(shè)備上的計算機(jī)程序所規(guī)定的搜索要求。
客戶端請求器程序是在客戶端數(shù)據(jù)處理設(shè)備上使用以將對信息或其他服務(wù)的請求發(fā)送到服務(wù)器數(shù)據(jù)處理設(shè)備并且從其接收響應(yīng)的計算機(jī)程序。在此所用的術(shù)語‘客戶端’和‘服務(wù)器’表示(1)請求信息或其他服務(wù)的設(shè)備或程序(‘客戶端’)與(2)處理請求并且將響應(yīng)發(fā)送回到請求器客戶端的設(shè)備或程序(‘服務(wù)器’)之間的關(guān)系。本發(fā)明可以實現(xiàn)成使得能夠發(fā)起搜索而無需定位所下載網(wǎng)頁內(nèi)的搜索表單或區(qū)域,或者將搜索項輸入所下載網(wǎng)頁內(nèi)的頁面特定表單或區(qū)域。
本發(fā)明的第一實施例提供了一種用于響應(yīng)在客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù)發(fā)起搜索的搜索管理器。搜索管理器包括用于訪問高速緩存或其他數(shù)據(jù)存儲單元以檢索所存儲的搜索基(searchbase)的程序代碼。本說明書的上下文中的‘搜索基’是特定服務(wù)器數(shù)據(jù)處理設(shè)備的標(biāo)識符。在本發(fā)明的一個實施例中,搜索基還標(biāo)識通過服務(wù)器數(shù)據(jù)處理設(shè)備可訪問的資源的一部分,并且可以用來確定搜索范圍。搜索基可以是標(biāo)識網(wǎng)站的URI的基本部分(例如,‘www.abcd.com’)或者標(biāo)識網(wǎng)站部分的更完整URI路徑(例如,‘www.abcd.com/xxx/yyy’)?;蛘?,搜索基可以標(biāo)識目錄、數(shù)據(jù)庫、文件系統(tǒng)或者其一部分。搜索管理器包括用于通過生成包括所存儲的搜索基和一個(或多個)搜索項的搜索請求來響應(yīng)在客戶端請求器程序的輸入字段內(nèi)所輸入的一個(或多個)搜索項的程序代碼。該所生成的搜索請求采用適于由搜索基所標(biāo)識的服務(wù)器處理的格式,這可能不同于在輸入字段中所輸入的數(shù)據(jù)的情況??梢栽跓o需要求用戶將有效URI指針輸入搜索引擎的情況下發(fā)起搜索。所生成的搜索請求被發(fā)送到由搜索基標(biāo)識的服務(wù)器,以發(fā)起對這個(或這些)搜索項的搜索。
在一個實施例中,在接收服務(wù)器上使用搜索基,以確定一個或多個搜索項的搜索范圍。例如,如果搜索基是‘www.abcd.com/efg’并且搜索項是‘paragliding’,則在網(wǎng)站‘www.abcd.com’的一部分‘www.abcd.com/efg’內(nèi)對項‘paragliding’執(zhí)行搜索。
根據(jù)本發(fā)明的特定實施例,通過多個連接因特網(wǎng)的服務(wù)器計算機(jī)可訪問的網(wǎng)絡(luò)可訪問資源如網(wǎng)頁和目錄對象包括元數(shù)據(jù)標(biāo)記。這些元數(shù)據(jù)標(biāo)記包括至少一個標(biāo)識目標(biāo)服務(wù)器數(shù)據(jù)處理設(shè)備的搜索基。搜索基還可以用來限定(delimit)通過目標(biāo)服務(wù)器可訪問的資源的一部分-例如如果搜索基是標(biāo)識特定網(wǎng)站或網(wǎng)站一部分的URI的基本部分。元數(shù)據(jù)可以包括附加搜索參數(shù),如所要使用的特定搜索服務(wù)的標(biāo)識。當(dāng)該站點的第一個網(wǎng)頁被下載到用戶計算機(jī)時,搜索請求管理器識別所下載網(wǎng)頁內(nèi)的元數(shù)據(jù),并且將其存儲在客戶端請求器程序的高速緩存中。如果隨后將一個或多個搜索項輸入到客戶端請求器程序的輸入字段中、并且搜索管理器確定應(yīng)該生成搜索請求,則搜索管理器生成客戶端請求器程序發(fā)送到由搜索基標(biāo)識的服務(wù)器的搜索請求。所生成的搜索請求包括所緩存的搜索基,以及與搜索基分界的、在輸入字段中輸入的搜索項。
在一個實施例中,響應(yīng)確定在客戶端請求器程序的輸入字段中輸入的數(shù)據(jù)包含觸發(fā)數(shù)據(jù)元素,執(zhí)行搜索請求的生成。觸發(fā)數(shù)據(jù)元素可以是所存儲的搜索基本身,或者與搜索基相關(guān)聯(lián)存儲的替代URI的基本部分。讓每個所生成的請求包括在輸入字段中輸入的URI不是必需的。例如,如果所存儲的元數(shù)據(jù)指定替代或附加搜索站點作為與所緩存的搜索基相關(guān)聯(lián)的搜索參數(shù),則搜索管理器可以生成具有與替代或附加站點相關(guān)的URI的搜索請求。附加搜索參數(shù)可以包括在所生成的搜索請求中。在另一個實施例中,觸發(fā)數(shù)據(jù)元素可以是特殊搜索字符(例如,‘search?’)。
在另一個實施例中,響應(yīng)錯誤狀態(tài)的識別,例如確定在客戶端請求器程序的輸入字段中輸入的數(shù)據(jù)不是有效的可解析URI,執(zhí)行搜索請求的生成。例如,搜索請求的生成可以響應(yīng)于HTTP 4004“未找到文檔”錯誤,或者語法錯誤的識別。
在另一個實施例中,搜索管理器控制客戶端請求器程序顯示‘搜索’按鈕或菜單項,用戶可以選擇其來發(fā)起搜索請求的生成。
在服務(wù)器執(zhí)行的搜索可以由接收服務(wù)器的缺省搜索服務(wù)來執(zhí)行,或者在所存儲的元數(shù)據(jù)中指定的搜索服務(wù)可以在所生成的搜索請求中指定。服務(wù)器將結(jié)果返回給運行客戶端請求器程序和搜索管理器的數(shù)據(jù)處理設(shè)備。搜索管理器聚合響應(yīng)(如果存在多個相關(guān)響應(yīng)),以由客戶端請求器程序顯示。在一個實施例中,響應(yīng)的聚合包括對響應(yīng)進(jìn)行過濾和排序(根據(jù)諸如不同內(nèi)容提供站點的不同‘加權(quán)’、日期、數(shù)據(jù)大小或內(nèi)容類型的參數(shù))。
因此,本發(fā)明的實施例使得能夠響應(yīng)服務(wù)器特定元數(shù)據(jù)和在諸如Web瀏覽器的客戶端請求器程序的輸入字段中輸入的搜索信息,動態(tài)確定向其發(fā)送搜索請求的目標(biāo)服務(wù)器。元數(shù)據(jù)可以標(biāo)識(顯式或隱式)特定搜索服務(wù),而在輸入字段中輸入的數(shù)據(jù)包括一個或多個搜索項。元數(shù)據(jù)或輸入數(shù)據(jù)可以包括搜索范圍確定URI基本部分。
本發(fā)明的另一個實施例提供一種用于接收搜索請求并且與如上所述的搜索管理器和客戶端請求器程序協(xié)作的服務(wù)器程序(如Web服務(wù)器或目錄服務(wù)器)。服務(wù)器程序識別所接收的搜索請求,并且將所接收的搜索基和搜索項傳到搜索服務(wù)。搜索服務(wù)典型地是運行在與接收Web服務(wù)器或目錄服務(wù)器相同的數(shù)據(jù)處理設(shè)備上的搜索引擎,但是該搜索服務(wù)可以是包括搜索功能的任何其他計算機(jī)程序。搜索服務(wù)典型地是服務(wù)器的缺省搜索服務(wù),但是搜索服務(wù)可以是在所接收請求內(nèi)指定的服務(wù)。搜索服務(wù)執(zhí)行搜索,對搜索項進(jìn)行搜索,同時(在一些實施例中)使用所接收的搜索基來確定搜索范圍。例如,所接收的搜索基可以確定要在其內(nèi)執(zhí)行搜索的網(wǎng)站或者網(wǎng)站的一部分。Web服務(wù)器接收由搜索服務(wù)輸出的結(jié)果,并且將搜索結(jié)果發(fā)送回到運行客戶端請求器程序和搜索管理器的數(shù)據(jù)處理設(shè)備。
在一個實施例中,搜索管理器實現(xiàn)為與Web瀏覽器程序一起使用的插件程序模塊。在另一個實施例中,用于執(zhí)行如上所述的搜索管理器功能的程序代碼是Web瀏覽器的集成程序代碼的一部分。
本發(fā)明的另一個實施例提供一種客戶端數(shù)據(jù)處理設(shè)備,如個人計算機(jī)(PC)、個人數(shù)字助理(PDA)或支持因特網(wǎng)的移動電話,包括數(shù)據(jù)處理單元;數(shù)據(jù)存儲單元,用于存儲至少一個搜索基;顯示裝置;數(shù)據(jù)輸入裝置;客戶端請求器程序;以及如上所述的搜索管理器,用于發(fā)起搜索,并且用于接收和顯示由客戶端數(shù)據(jù)處理設(shè)備接收的搜索結(jié)果。
本發(fā)明的另一個實施例提供一種在通過一個或多個服務(wù)器數(shù)據(jù)處理系統(tǒng)可訪問的數(shù)據(jù)內(nèi)發(fā)起搜索的方法,包括以下步驟在客戶端數(shù)據(jù)處理設(shè)備的存儲單元中存儲至少一個標(biāo)識服務(wù)器數(shù)據(jù)處理設(shè)備的搜索基;響應(yīng)在運行于客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù),在所輸入的數(shù)據(jù)內(nèi)識別至少一個搜索項,從存儲單元檢索搜索基,生成組合了所檢索的搜索基和該至少一個搜索項的搜索請求,并且將所生成的搜索請求發(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)器數(shù)據(jù)處理設(shè)備。
本發(fā)明的另一個實施例提供一種數(shù)據(jù)對象,包括在如上所述用于控制在網(wǎng)絡(luò)內(nèi)進(jìn)行搜索的方法中、由搜索管理器和Web服務(wù)器使用的嵌入元數(shù)據(jù)標(biāo)記。元數(shù)據(jù)指定搜索基,例如可由搜索管理器識別以在特定網(wǎng)站或目錄內(nèi)發(fā)起搜索的URI基本部分。元數(shù)據(jù)可以包括附加搜索參數(shù),例如優(yōu)選搜索服務(wù)的標(biāo)識。其他搜索參數(shù)也可以包括在元數(shù)據(jù)中。
搜索管理器可以實現(xiàn)為計算機(jī)程序產(chǎn)品,例如設(shè)計成與傳統(tǒng)因特網(wǎng)Web瀏覽器接口的計算機(jī)程序代碼。該計算機(jī)代碼可以作為包括記錄在記錄介質(zhì)上的程序代碼的程序產(chǎn)品來獲得,或者可以通過傳輸介質(zhì)來獲得。
下面參照附圖、利用例子詳細(xì)描述本發(fā)明的實施例,其中圖1示出根據(jù)本發(fā)明實施例的計算機(jī)網(wǎng)絡(luò)如因特網(wǎng)內(nèi)的Web瀏覽器與多個Web服務(wù)器之間的交互;圖2示出嵌入在網(wǎng)頁的HTML源碼內(nèi)的元數(shù)據(jù)標(biāo)記的例子;圖3示出根據(jù)本發(fā)明實施例提供元數(shù)據(jù)到Web客戶端的步驟序列;圖4A和4B示出根據(jù)本發(fā)明實施例的用于響應(yīng)用戶輸入數(shù)據(jù)而搜索的方法的步驟序列;圖5示出表示為圖4中的步驟300的步驟序列;圖6示出表示為圖4中的步驟300的可選步驟序列;以及圖7A和7B示出根據(jù)本發(fā)明另一個實施例的用于響應(yīng)用戶輸入數(shù)據(jù)而進(jìn)行搜索的方法的步驟序列。
具體實施例方式
對本描述來說,在附圖的任一個或多個中引用具有相同標(biāo)號的步驟或特征的情況下,這些步驟或特征具有基本上相同的功能或操作。
圖1示出數(shù)據(jù)處理網(wǎng)絡(luò)的多個組件,包括在與用戶計算機(jī)70連接以進(jìn)行通信的服務(wù)器計算機(jī)40、50、60上運行的多個Web服務(wù)器10、20、30。用戶計算機(jī)70運行Web瀏覽器程序80和與Web瀏覽器80接口的搜索管理器程序90。如在本技術(shù)領(lǐng)域內(nèi)公知的,Web瀏覽器是能夠?qū)⒊谋緜鬏攨f(xié)議(HTTP)請求發(fā)送給Web服務(wù)器以訪問萬維網(wǎng)因特網(wǎng)服務(wù)上的信息的應(yīng)用程序。本發(fā)明的可選實施例包括支持文件傳輸協(xié)議(FTP)、輕量級目錄訪問協(xié)議(LDAP)或者其他請求發(fā)送協(xié)議的瀏覽器或者其他客戶端請求器程序。
例如,如果本發(fā)明用于在因特網(wǎng)內(nèi)連接并且可通過萬維網(wǎng)因特網(wǎng)服務(wù)訪問的計算機(jī)上搜索所需網(wǎng)頁,則用戶計算機(jī)70和服務(wù)器計算機(jī)40、50、60中的每一個在網(wǎng)絡(luò)內(nèi)可以相互遠(yuǎn)離。用戶計算機(jī)70和服務(wù)器計算機(jī)40、50、60同樣也可以是局域網(wǎng)或內(nèi)部網(wǎng)的組件。
用戶計算機(jī)70不限于特定類型的數(shù)據(jù)處理設(shè)備,并且可以是能夠運行客戶端請求器程序的傳統(tǒng)桌面或膝上型個人計算機(jī)、個人數(shù)字助理(PDA)或者其他專用數(shù)據(jù)處理設(shè)備。用戶計算機(jī)可以通過無線或者硬連線連接來連接到數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)。類似地,服務(wù)器計算機(jī)40、50、60可以是能夠運行Web服務(wù)器、目錄服務(wù)器或類似服務(wù)器程序的任何數(shù)據(jù)處理設(shè)備。下面詳述的實施例的軟件實現(xiàn)單元不限于任何特定操作系統(tǒng)或編程語言。
在第一實施例中,搜索管理器90實現(xiàn)為擴(kuò)展并修改標(biāo)準(zhǔn)Web瀏覽器的功能的計算機(jī)程序模塊。具體地說,本實施例提供用于連接到網(wǎng)景公司的Netscape Communicator Web瀏覽器程序的標(biāo)準(zhǔn)連接接口的“插件”程序模塊。如在本技術(shù)領(lǐng)域內(nèi)公知的,“插件”模塊是可以容易地安裝并作為Web瀏覽器的一部分使用的程序-一旦安裝,“插件”模塊由瀏覽器自動識別,并且瀏覽器和插件模塊通過簡單API相互調(diào)用對方的功能。
大量“插件”組件已經(jīng)可以廣泛地獲得以與微軟公司的Internet Explorer5或網(wǎng)景公司的Netscape Communicator Web瀏覽器一起使用。在撰寫本專利說明書的時候,Netscape Communicator的插件說明及其使用和開發(fā)可從網(wǎng)景公司獲得。由于向現(xiàn)有Web瀏覽器添加功能的“插件”組件的接口和開發(fā)為本領(lǐng)域的技術(shù)人員所理解,因此接口和開發(fā)步驟在此將不作詳述。
搜索管理器90與Web瀏覽器80協(xié)作以響應(yīng)Web瀏覽器的用戶界面的輸入字段100內(nèi)搜索請求的輸入。搜索請求被發(fā)送到一個或多個指定的Web服務(wù)器10、20、30,以發(fā)起在一個或多個特定網(wǎng)站內(nèi)搜索與該請求相關(guān)的內(nèi)容。所要搜索的網(wǎng)站可以是當(dāng)前由用戶訪問的站點,但是在特定實施例中,搜索請求可以傳到另一指定站點或多個站點。
響應(yīng)將搜索文本輸入到Web瀏覽器的主用戶輸入字段100(傳統(tǒng)地用于輸入統(tǒng)一資源定位符(URL)和其他統(tǒng)一資源標(biāo)識符(URI)的輸入字段)中,執(zhí)行自動搜索。使用戶能夠?qū)⑺阉魑谋局苯虞斎氲娇赏ㄓ玫妮斎胱侄沃校ㄟ^避免在先前裝載的頁面內(nèi)或者通過Web鏈接定位搜索欄或表單的需要而改善了用戶體驗。瀏覽器將請求引導(dǎo)到感興趣站點的搜索引擎。所要搜索的站點在所下載網(wǎng)頁的所緩存元數(shù)據(jù)內(nèi)指定(并且不需要是當(dāng)前訪問的站點)。
具體地說,搜索管理器支持搜索標(biāo)準(zhǔn)的截取和處理,從而覆蓋Web瀏覽器程序的缺省處理,當(dāng)將未知URI鍵入瀏覽器的輸入字段時,其典型地向用戶提供‘未找到文檔’錯誤。公知的是,根據(jù)用戶首選項,由微軟公司的InternetExplorer Web瀏覽器將未被識別的URI或文本發(fā)送到MSN搜索網(wǎng)站以發(fā)起搜索。用戶可以設(shè)置其首選項來指定可選的缺省搜索服務(wù)。然而,InternetExplorer Web瀏覽器內(nèi)的缺省機(jī)制不允許響應(yīng)特定于正被搜索的網(wǎng)站的搜索上下文信息來執(zhí)行網(wǎng)站搜索。
下面參照圖1以及3-7詳細(xì)描述當(dāng)執(zhí)行根據(jù)本發(fā)明多個實施例的搜索方法時,在網(wǎng)絡(luò)內(nèi)的客戶端和服務(wù)器數(shù)據(jù)處理設(shè)備上執(zhí)行的操作。
為了使得搜索管理器90能夠與Web瀏覽器80協(xié)作工作,對要啟動上述搜索功能的每個網(wǎng)站提供支持?jǐn)?shù)據(jù)。所提供的信息采用詳細(xì)描述將要用于發(fā)起搜索的URI基本部分的說明性元數(shù)據(jù)(prescriptive metadata)的形式。元數(shù)據(jù)還包括由網(wǎng)站的搜索組件使用的可選參數(shù)(如下所述)。元數(shù)據(jù)可以由內(nèi)容開發(fā)者通過在站點內(nèi)(或者允許從其進(jìn)行搜索的網(wǎng)頁子集的每一個內(nèi))每個網(wǎng)頁130的HTML源碼中嵌入元數(shù)據(jù)標(biāo)記140來包括。該元數(shù)據(jù)標(biāo)記140的例子如圖2所示。
隨后,當(dāng)響應(yīng)HTTP請求(200)裝載210網(wǎng)頁130時,插件搜索管理器90提取(220)元數(shù)據(jù),并且在瀏覽器的高速緩存120中保存(230)元數(shù)據(jù)。當(dāng)裝載新頁面時,可以更新(230)所緩存的元數(shù)據(jù)信息,以提供替代搜索基(用于引導(dǎo)來自搜索管理器的搜索請求-如下所述),并且提供上下文敏感的搜索基(searchbase)。在本實施例中,搜索基是標(biāo)識網(wǎng)站或網(wǎng)站一部分的URI。
可以為整個站點規(guī)定單個公共搜索基,或者可選地,可以通過頁面的HTML內(nèi)容內(nèi)的多個元規(guī)范(meta specification)、或者不同頁面上的不同元規(guī)范、由網(wǎng)站規(guī)定多個搜索基。在指定多個搜索基的情況下,“插件”搜索管理器擔(dān)當(dāng)搜索請求的代理-將搜索請求發(fā)布到對應(yīng)于所有指定搜索基的Web服務(wù)器或目錄服務(wù)器。
圖1示出根據(jù)本發(fā)明第一實現(xiàn)的各組件,以及在執(zhí)行搜索相關(guān)操作示例集的期間,搜索管理器90、Web瀏覽器80與多個Web服務(wù)器10、20、30之間發(fā)生的交互。圖3是表示直到并且包括將元數(shù)據(jù)緩存在瀏覽器的高速緩存120中的操作序列的流程圖,并且圖4和7是示出用戶隨后在瀏覽器的輸入字段100中輸入搜索請求時的操作序列的兩個例子的流程圖。圖5和6進(jìn)一步示出根據(jù)本發(fā)明兩個可選實施例的圖4的步驟之一的細(xì)節(jié)。
第一客戶端計算機(jī)的用戶從第一網(wǎng)站請求(200)網(wǎng)頁-例如,在用戶的本地Web瀏覽器80的用戶界面的輸入字段100內(nèi)輸入URL請求‘http//www.abcd.com’。如在本技術(shù)領(lǐng)域內(nèi)公知的,URL的第一部分指定通信協(xié)議,而‘www.abcd.com’映射到特定因特網(wǎng)連接服務(wù)器計算機(jī)60的網(wǎng)絡(luò)地址,用于訪問該計算機(jī)上的網(wǎng)頁。典型地,運行在服務(wù)器計算機(jī)上的Web服務(wù)器對網(wǎng)站內(nèi)的大量分級組織、且超鏈接的網(wǎng)頁提供訪問。典型地,響應(yīng)于僅指定位于該站點分級結(jié)構(gòu)的根部的基本URI(在本例中為地址‘www.abcd.com’)的請求而初始地檢索網(wǎng)站主頁。
運行在服務(wù)器60上的Web服務(wù)器30根據(jù)傳統(tǒng)HTTP請求-響應(yīng)處理,將所請求的網(wǎng)頁返回(210)到運行Web瀏覽器的數(shù)據(jù)處理設(shè)備。所返回的頁面在該頁面的HTML源碼內(nèi)合并有元數(shù)據(jù)140,例如<meta name=″SEARCHBASE″value=″http//www.abcd.com/search?term=″>。
Web瀏覽器80從Web服務(wù)器30接收頁面,并且搜索管理器解析(220)該HTML,以識別與搜索元數(shù)據(jù)的預(yù)定標(biāo)記格式相對應(yīng)的任何標(biāo)記名稱和值對<meta name=″SEARCHBASE″ value=″...″>。這識別所嵌入的元數(shù)據(jù),并且搜索管理器控制Web瀏覽器提取(220)元數(shù)據(jù)并且將其保存(230)在Web瀏覽器的高速緩沖存儲器120中。
在上述例子中,在元數(shù)據(jù)中指定的搜索基是用于搜索請求的URI的基本部分-標(biāo)識HTTP通信協(xié)議、網(wǎng)站‘www.abcd.com’和特殊搜索字符串‘search?term=’。在本例中給出的特定搜索字符串不限制本發(fā)明,而是可以在向其發(fā)送請求的Web服務(wù)器上使用的搜索字符的例子,以表示所附字母數(shù)字字符是搜索項。
在緩存了包括基本URI的元數(shù)據(jù)之后,搜索管理器90能夠響應(yīng)于用戶將搜索文本輸入(240)到Web瀏覽器的用戶輸入字段100中,發(fā)起網(wǎng)站特定搜索。下面描述根據(jù)多個不同實施例的搜索發(fā)起。
1.響應(yīng)資源訪問失敗所發(fā)起的搜索根據(jù)本發(fā)明一個實施例的搜索管理器90響應(yīng)沒有找到所請求資源的標(biāo)準(zhǔn)客戶端-服務(wù)器請求-響應(yīng)交互-例如處理HTTP 404“未找到資源”錯誤而發(fā)起搜索。本發(fā)明的另一個實施例響應(yīng)確定在客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)不符合資源請求的語法要求而發(fā)起搜索。下面描述通過發(fā)起搜索來響應(yīng)多個不同錯誤狀態(tài)(例如無效語法和‘未找到資源’錯誤)中的任一個的特定實施例。
在萬維網(wǎng)因特網(wǎng)服務(wù)內(nèi)的傳統(tǒng)文件傳輸請求處理中,Web服務(wù)器檢查所接收客戶端請求內(nèi)的URI的語法是公知的。在超文本傳輸協(xié)議(HTTP)請求的情況下,傳統(tǒng)地使用HTTP狀態(tài)代碼400將無效請求語法作為錯誤報告給請求客戶端。URI語法規(guī)則規(guī)定于因特網(wǎng)工程任務(wù)組(IETF)的請求注解1630,Tim Berners-Lee,1994中。
另一個失敗場景對應(yīng)于接收服務(wù)器定位所請求的網(wǎng)頁或其他資源的失敗。在傳統(tǒng)HTTP處理內(nèi),使用HTTP狀態(tài)代碼404(“找不到資源”錯誤代碼)將找不到所請求網(wǎng)頁的失敗報告給請求客戶端。其他4XX HTTP狀態(tài)代碼公知用于報告與客戶端請求相關(guān)的明顯錯誤狀態(tài)。多個5XX HTTP狀態(tài)代碼公知用于報告服務(wù)器看上去似乎出錯的情況下的問題。
在本實施例中,響應(yīng)用戶在客戶端請求器程序的數(shù)據(jù)輸入字段中輸入(240)數(shù)據(jù),可以以傳統(tǒng)方式例如使用HTTP將客戶端請求發(fā)送(250)到服務(wù)器。該請求在由目標(biāo)服務(wù)器接收時被處理(260)。如果發(fā)生錯誤,則如在本技術(shù)領(lǐng)域中所公知的那樣,服務(wù)器生成HTTP 4XX或5XX錯誤報告,并且將錯誤報告發(fā)送(280)到客戶端請求器程序。如果目錄搜索不能識別相關(guān)目錄對象,則也可以產(chǎn)生類似的錯誤報告。搜索管理器90截取(290)來自服務(wù)器的響應(yīng),并且檢查錯誤報告。當(dāng)識別出錯誤報告時,搜索管理器使用失敗請求的至少一個字母數(shù)字串作為搜索項,生成(300)搜索請求。
圖5示出由圖4的步驟300代表的第一示例步驟序列。通過比較在客戶端請求器程序的輸入字段中原始輸入的數(shù)據(jù)與存儲在客戶端請求器程序的高速緩存或書簽文件中的搜索基,分析(301)所輸入數(shù)據(jù)以獲得搜索項。該比較從右向左進(jìn)行,以完整的輸入數(shù)據(jù)開始,并且迭代性地去掉(304)字符,并且比較(301)剩余部分與所緩存和被標(biāo)記書簽的搜索基(URI或URI的基本部分),直到識別出(302)匹配,或者確定(303)在高速緩存或書簽文件中沒有保存匹配搜索基。
如果在輸入數(shù)據(jù)的URI部分與所緩存的搜索基之間識別出匹配,則提取(307)附于輸入數(shù)據(jù)內(nèi)的匹配URI部分的所有字母數(shù)字字符,以獲得潛在搜索項。附加到URI部分的所有非字母數(shù)字字符初始地被轉(zhuǎn)換成空格。然后,將搜索項與匹配搜索基進(jìn)行組合(309)(或者單獨地與多個匹配搜索基中的每一個進(jìn)行組合),以形成一個(或多個)新搜索請求。
如果識別不出匹配搜索基,則本發(fā)明的一個實施例缺省為標(biāo)準(zhǔn)錯誤報告(305),如圖5所示。在圖6所示的可選實施例中,確定(303)不存在匹配搜索基之后是從所輸入數(shù)據(jù)中提取字母數(shù)字字符串以用作搜索項的步驟308。然后,組合(309)搜索項與所存儲的缺省搜索引擎的URI,并且將其發(fā)送(310)到缺省搜索引擎,如圖4A所示。在圖4B的步驟320,運行缺省搜索引擎的服務(wù)器識別所接收的搜索請求作為搜索請求,并且調(diào)用(330)搜索引擎以執(zhí)行(340)搜索來識別一組URI作為對用戶所輸入數(shù)據(jù)的可能替代項。將輸出結(jié)果發(fā)送(350)到客戶端請求器程序,并且運行在客戶端數(shù)據(jù)處理設(shè)備上的搜索管理器90截取(360)該輸出結(jié)果。如果響應(yīng)于由搜索管理器90生成(300)的多個請求而從多個服務(wù)器接收響應(yīng),則搜索管理器聚合(aggregate)(360)所接收的響應(yīng)。然后,搜索管理器90控制客戶端請求器程序80以顯示(370)聚合結(jié)果。
對于與圖4A、4B和6相對應(yīng)的第一例子,假設(shè)客戶端請求器程序80的用戶輸入http//w3.bigcorp.com/emea/uk/mobile_phone/process(例子1)如果報告HTTP 404錯誤,則將所輸入數(shù)據(jù)與所存儲的搜索基進(jìn)行比較(301)。如果識別(302)出匹配搜索基,則如下使用匹配搜索基來生成新的搜索請求。如果URI基本部分‘w3.bigcorp.com/emea/uk’匹配存儲在客戶端請求器程序的高速緩存或書簽文件夾中的已知搜索基‘w3.bigcorp.com/emea/uk/?’,則識別(306)URI基本部分之后的字母數(shù)字字符串,作為搜索項‘mobile(移動)’、‘phone(電話)’和‘process(處理)’。
然后,搜索管理器組合(307)搜索基‘w3.bigcorp.com/emea/uk/?’與這些搜索項,以產(chǎn)生搜索請求http//w3.bigcorp.com/emea/uk/?mobile%20phone%20process對于圖4A、4B和6所示的第二例子,假設(shè)用戶輸入mobile phone process (例子2)在該第二例子中,客戶端請求器程序確定(303)沒有指定任何目標(biāo)服務(wù)器。搜索管理器90通過生成組合(309)缺省搜索引擎的URI與用戶輸入數(shù)據(jù)(作為搜索項)的搜索請求來響應(yīng)該確定,例如http//www.google.com/?mobile%20phone%20process如果對應(yīng)于多個缺省搜索引擎的URI保存在高速緩存中,則搜索管理器可以生成多個搜索請求,例如http//www.google.com/?mobile%20phone%20processhttp//www.yahoo.com/?mobile%20phone%20process在上述第一和第二例子中,由搜索管理器90生成(300)的一個或多個搜索請求包括確定搜索基與搜索項之間的界限的搜索符(在本例中為‘?’),并且在每個搜索項之間插入分隔符(在本例中為‘%20’)。雖然可以選擇任何適當(dāng)字符串作為搜索符,但是本示例實施例中的問號‘?’與當(dāng)前因特網(wǎng)命名和語法約定一致。問號‘?’公知用來確定可查詢對象的URI與表達(dá)對該對象的查詢的一組詞之間的界限。(使用‘?’劃界規(guī)定于IETF網(wǎng)絡(luò)工作組的請求注釋1630“Universal Resource Identifiers in WWW-A Unifying Syntax for theExpression of Names and Addresses of Objects on the Network as used in theWorld-Wide Web”(WWW中的統(tǒng)一資源識別符-用于萬維網(wǎng)中的網(wǎng)絡(luò)對象的名稱和地址表達(dá)的統(tǒng)一語法)中,Tim Berners-Lee,CERN,1994年6月)。然而,也可以使用其他搜索符如‘search?(搜索?)’,其中所緩存的搜索基遵循目標(biāo)服務(wù)器上搜索引擎的特定要求。由于服務(wù)器提供元數(shù)據(jù)到客戶端請求器程序,因此所緩存的搜索基可以包括相應(yīng)服務(wù)器的搜索引擎所要求的任何語法和數(shù)據(jù),并且所生成的搜索請求簡單地使用通過檢查高速緩存識別為相關(guān)的任何搜索基。因此,運行在客戶端數(shù)據(jù)處理設(shè)備上的單個搜索管理器可以使用多個不同搜索基和搜索請求格式。
再次參照上述第一例子,所生成的搜索請求被發(fā)送到指定Web服務(wù)器‘w3.bigcorp.com’,并且針對搜索項‘mobile’、‘phone’和‘process’發(fā)起搜索,其中搜索范圍‘w3.bigcorp.com/emea/uk’由已知搜索基限定。因為服務(wù)器提供的元數(shù)據(jù)確保搜索格式遵循搜索引擎的要求,所以運行在服務(wù)器數(shù)據(jù)處理設(shè)備上的搜索引擎識別URI部分和搜索項的集合。
以這種方式識別的任何網(wǎng)頁內(nèi)容以發(fā)送到客戶端請求器程序的列表來表示。如果搜索管理器響應(yīng)接收錯誤報告的上述操作不能產(chǎn)生任何結(jié)果,則該方法缺省為標(biāo)準(zhǔn)HTTP 404‘未找到資源’報告。
2.響應(yīng)輸入數(shù)據(jù)與搜索基之間的匹配而發(fā)起的搜索在以圖7A的流程圖為例的本發(fā)明的另一個實施例中,用戶在客戶端請求器程序80的輸入字段100內(nèi)輸入(240)數(shù)據(jù),并且搜索管理器90比較所輸入數(shù)據(jù)與存儲在客戶端請求器程序的高速緩存中的一個或多個搜索基。搜索管理器響應(yīng)搜索管理器90識別出所輸入數(shù)據(jù)與所存儲搜索基之間的匹配而發(fā)起網(wǎng)站特定搜索。搜索管理器可以附加或替代地識別所輸入數(shù)據(jù)與不是搜索基但與搜索基相關(guān)聯(lián)存儲的所緩存的‘觸發(fā)’數(shù)據(jù)元素之間的匹配。典型地,觸發(fā)數(shù)據(jù)元素是URI的基本部分,但可以不是適于包括在由搜索管理器生成的任何搜索請求內(nèi)的搜索基。
假設(shè)搜索管理器如上所述在Web瀏覽器或其他客戶端請求器程序內(nèi)存儲了元數(shù)據(jù)。假設(shè)一個所緩存的搜索基為‘www.abcd.com/search?term’,并且它與觸發(fā)數(shù)據(jù)元素‘www.abcd.com/?’相關(guān)聯(lián)存儲。現(xiàn)在假設(shè)用戶輸入以下項之一http//www.abcd.com/?paragliding insurance(例子3)或者h(yuǎn)ttp//www.abcd.com/search?term=paragliding insurance(例子4)搜索管理器90截取(255)每個用戶輸入請求,并且比較(255、265)用戶輸入數(shù)據(jù)與所緩存的搜索基和其他觸發(fā)數(shù)據(jù)元素。如果完整的用戶輸入數(shù)據(jù)不匹配所緩存的搜索基或者其他觸發(fā)數(shù)據(jù)元素,則搜索管理器迭代性地去掉字符,并且比較剩余部分直到剩余部分URI被識別(250)為匹配所緩存的搜索基或觸發(fā)數(shù)據(jù)元素,或者確定(265)所輸入數(shù)據(jù)不匹配任何緩存數(shù)據(jù)。在本實施例中,如果沒有與所緩存搜索基的匹配,則搜索管理器僅將用戶輸入的數(shù)據(jù)串傳遞(275)到瀏覽器80,用于傳統(tǒng)HTTP處理。然而,如果在所緩存的搜索基或觸發(fā)數(shù)據(jù)元素與用戶輸入數(shù)據(jù)串的一部分之間識別出匹配,則搜索管理器90確定應(yīng)該生成新搜索請求。
參照上述例子3,‘www.abcd.com/?’是與搜索基‘www.abcd.com/search?term=’相關(guān)聯(lián)而緩存的觸發(fā)數(shù)據(jù)元素。搜索管理器識別(265)所輸入數(shù)據(jù)與所緩存觸發(fā)數(shù)據(jù)元素之間的匹配,并且識別與所緩存的搜索基‘www.abcd.com/search?term=’的關(guān)聯(lián)。觸發(fā)數(shù)據(jù)元素‘www.abcd.com/?’之后的項‘paragliding(滑翔)’和‘insurance(保險)’被識別(285)為搜索項,它們將被發(fā)送到在搜索基內(nèi)標(biāo)識的網(wǎng)站上的搜索服務(wù)。
參照例子4,搜索管理器識別(265)所輸入數(shù)據(jù)與所緩存搜索基‘www.abcd.com/search?term=’之間的匹配。項‘paragliding’和‘insurance’被識別(285)為搜索項,并且搜索管理器從用戶輸入的數(shù)據(jù)串中提取這些搜索項。
然后,搜索管理器生成(300)可以由Web服務(wù)器的搜索服務(wù)解釋的搜索請求。在本例中,這涉及搜索管理器組合搜索項與相關(guān)緩存搜索基,并且發(fā)布(310)新搜索請求。對于上述例子3和4中的每一個,所生成的搜索請求為以下形式的HTTP Get(HTTP獲取)請求http//www.abcd.com/search?term=paragliding%20insurance在簡單例子4中,搜索管理器的處理效果僅是將分隔符‘%20’插入在搜索項之間,該分隔符對目標(biāo)Web服務(wù)器的搜索引擎定義為搜索項之間的分隔符。然而,所生成的搜索請求可以由相關(guān)搜索引擎解釋,而用戶輸入的數(shù)據(jù)串不是有效URI,從而將不能被目標(biāo)Web服務(wù)器成功解析。在例子3中,匹配觸發(fā)數(shù)據(jù)元素相關(guān)于但不等同于搜索基,并且所生成的搜索請求與例子4相比更加明顯不同于所輸入的數(shù)據(jù)。在例子4中,除了插入分隔符‘%20’之外,符號‘?’還被‘search?term=’替代,因為后者是相關(guān)服務(wù)器的搜索引擎所要求的格式。
在第五例子中,考慮用戶輸入數(shù)據(jù)包括更完整的URI,例如http//www.abcd.com/uk/sales/search?term=paragliding insurance(例子5)還假設(shè)用戶輸入數(shù)據(jù)與所緩存的URI基本部分‘www.abcd.com’(觸發(fā)數(shù)據(jù)元素)匹配,并且搜索基之一為‘http//www.abcd.com’。
由搜索管理器生成的搜索請求包括該搜索基和從用戶輸入數(shù)據(jù)中提取的附加搜索上下文信息(‘/uk/sales’)以及搜索項‘paragliding’和‘insurance’。如本技術(shù)領(lǐng)域內(nèi)公知的,斜線‘/’表示數(shù)據(jù)串元素的分級組織,從而‘www.abcd.com/uk/sales’標(biāo)識網(wǎng)站‘www.abcd.com’的‘uk’部分的‘sales’部分。
在其他例子如圖1所示的例子中,與所緩存的觸發(fā)URI基本部分相關(guān)聯(lián)的元數(shù)據(jù)可以包括附加搜索基信息,搜索管理器將使用其來生成(300)次級搜索請求,用于發(fā)送(310)到附加Web服務(wù)器或目錄服務(wù)器。雖然第一例子生成的上述搜索請求是HTTP Get請求,但是這不是本發(fā)明的限制,并且所生成的搜索請求可以包括LDAP請求、Web服務(wù)請求、對廣域信息服務(wù)器的數(shù)據(jù)庫的WAIS請求、或者諸如Gopher請求的其他項。
本發(fā)明不限于要求與用戶輸入的數(shù)據(jù)串比較的所緩存觸發(fā)URI基本部分與由搜索管理器生成的任何搜索請求的搜索基URI相同。所緩存的觸發(fā)URI基本部分用來確定(265)何時需要搜索管理器生成新搜索請求,但是由每個服務(wù)器提供的元數(shù)據(jù)可以包括一組與所輸入數(shù)據(jù)相比完全不同于觸發(fā)數(shù)據(jù)元素的搜索基。
參照圖7B,當(dāng)接收到由搜索管理器90生成的搜索請求時,接收Web服務(wù)器或目錄服務(wù)器10、20、30解析搜索請求,以確定(320)需要什么處理。典型地,接收服務(wù)器識別任何特殊搜索符(例如,‘search?term=’),并且確定搜索請求是應(yīng)轉(zhuǎn)發(fā)到服務(wù)器的本地搜索引擎的搜索請求。Web服務(wù)器10、20、30調(diào)用(330)運行在服務(wù)器的本地計算機(jī)上的搜索引擎。搜索引擎確定附加到特殊搜索符的任何數(shù)據(jù)串是搜索項,并且特殊搜索符之前的URI部分是網(wǎng)站或網(wǎng)站一部分的搜索范圍限定標(biāo)識符。搜索引擎使用搜索基URI來限定搜索范圍,并且使用特殊搜索符之后的數(shù)據(jù)串(‘paragliding’和‘insurance’)作為搜索項,執(zhí)行(340)搜索。
傳統(tǒng)搜索引擎典型地能夠接受信息的HTTP POST(HTTP投遞),從而可以如上所述發(fā)起搜索而不修改典型搜索引擎。但是,如果需要,上述元數(shù)據(jù)的特定例子可以被重新格式化來支持與其他搜索機(jī)制的集成。
搜索引擎搜索(340)網(wǎng)站的內(nèi)容(根據(jù)限定的搜索范圍),并且識別由搜索請求內(nèi)的URI規(guī)定的指定網(wǎng)站或網(wǎng)站區(qū)域內(nèi)搜索項的出現(xiàn),從而作為在網(wǎng)站內(nèi)識別的網(wǎng)頁或其他內(nèi)容的列表提供其輸出(340)。每個所識別網(wǎng)頁的網(wǎng)頁URL或內(nèi)容URI是輸出(340)且發(fā)送(350)到Web瀏覽器或其他客戶端請求器程序用于顯示的信息??蛇x地,還輸出(340)和發(fā)送(350)顯示在頁面或其他內(nèi)容內(nèi)使用搜索項的例子的簡短摘錄(與通過位于www.google.com的Google搜索引擎服務(wù)進(jìn)行搜索而獲得的信息表現(xiàn)一致)。Web服務(wù)器10、20、30將搜索結(jié)果從相應(yīng)搜索引擎發(fā)送(350)到從其發(fā)送請求的Web瀏覽器80。
搜索管理器90截取(360)所接收的響應(yīng),并且聚合(360)這些響應(yīng),從而生成合并的響應(yīng),搜索管理器將其轉(zhuǎn)發(fā)到Web瀏覽器,以通過Web瀏覽器的顯示窗口進(jìn)行顯示(370)。該聚合步驟(360)可以涉及在通過Web瀏覽器將結(jié)果回呈給用戶之前,對比從不同網(wǎng)站接收的搜索響應(yīng)(其中,在所緩存的元數(shù)據(jù)內(nèi)指定了多個搜索基)。本發(fā)明的特定實施例在聚合步驟內(nèi)實現(xiàn)回復(fù)的過濾和排序。
下面描述根據(jù)本發(fā)明實施例的搜索管理器、Web瀏覽器和Web服務(wù)器的另外一個使用例子。當(dāng)搜索在公司的內(nèi)部網(wǎng)網(wǎng)站(例如‘w3.itso.bigcorp.com’)上提供的在線文檔時,授權(quán)用戶可以輸入下面搜索請求http//w3.itso.bigcorp.com/?bigcorp application server(例子6)搜索管理器與Web瀏覽器協(xié)作以將其轉(zhuǎn)換成http//w3.itso.bigcorp.com/?bigcorp%20application%20server然后,搜索管理器控制Web瀏覽器將所轉(zhuǎn)換的搜索請求發(fā)送到由該URI標(biāo)識的網(wǎng)站(w3.itso.bigcorp.com)。目標(biāo)Web服務(wù)器識別所接收的串作為搜索請求,并且自動調(diào)用在該站點上提供的搜索引擎。搜索引擎處理請求內(nèi)的搜索項,并且檢索搜索結(jié)果。
在另外一個例子中,可以在公司Bigcorp的內(nèi)部網(wǎng)搜索硬件銷售。相關(guān)URL為‘http//w3.bigcorp.com/sales/systems’。這不是非常直觀的URL。
內(nèi)部網(wǎng)的搜索響應(yīng)于用戶輸入下列數(shù)據(jù)而發(fā)起http//w3.bigcorp.com/?hardware(例子7)因為‘w3.bigcorp.com/?hardware’是與期望頁面的URL‘http//w3.bigcorp.com/sales/systems’相關(guān)聯(lián)存儲的緩存觸發(fā)數(shù)據(jù)元素。接受較不特定的用戶輸入URI并且發(fā)起用戶輸入搜索項的搜索可以改善網(wǎng)站的用戶體驗。具體地說,自動發(fā)起搜索而無需在網(wǎng)頁之間爬行(trawl)以定位站點內(nèi)的搜索能力可以改善用戶定位信息的能力。
如果網(wǎng)站特定分支的相關(guān)搜索基保存在Web瀏覽器的高速緩存中,根據(jù)一個實施例的解決方案允許自動發(fā)起自動限定于該分支的搜索。例如,考慮用戶輸入的搜索請求信息w3.bigcorp.com/emea/uk?mobile working (例子8)
如果‘w3.bigcorp.com/emea/uk?’是所緩存的搜索基,則這將僅返回UK分支下的那些結(jié)果,而類似的搜索基‘w3.bigcorp.com/?’將擴(kuò)大搜索范圍到內(nèi)部網(wǎng)的根。搜索基的URI部分因此可以用作搜索范圍的隱式過濾器。
使用上述方法和機(jī)制,可以執(zhí)行網(wǎng)站搜索而無需用戶搜索出網(wǎng)站搜索引擎的鏈接,并且用戶不丟失其在URL樹中的當(dāng)前位置。Web服務(wù)器可以提供與特定網(wǎng)站相關(guān)的信息給客戶端數(shù)據(jù)處理設(shè)備上的搜索管理器。他所提供的信息隨后由運行在Web服務(wù)器上的搜索引擎使用,以確定在特定網(wǎng)站的上下文內(nèi)應(yīng)該如何執(zhí)行搜索。
3.響應(yīng)特殊搜索符而發(fā)起的搜索在本發(fā)明的另外一個實施例中,搜索管理器響應(yīng)于用戶輸入數(shù)據(jù)內(nèi)特殊搜索符的存在,并且響應(yīng)于確定在用戶輸入數(shù)據(jù)內(nèi)存在特殊搜索符而僅生成搜索請求。在客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù)內(nèi)沒有特殊搜索符的情況下,搜索管理器將用戶輸入數(shù)據(jù)傳到客戶端請求器程序,用于傳統(tǒng)HTTP處理。通過缺省為正??蛻舳?服務(wù)器交互,在沒有搜索符的情況下與搜索引擎的處理相關(guān)聯(lián)的唯一開銷是檢查搜索符的步驟。
雖然任何適當(dāng)字符串可以選作搜索符,但是選擇下面這樣的搜索字符串是有益的,即其合理地直觀表示用戶希望發(fā)起搜索的搜索字符串,并且如上所述,不與在當(dāng)前因特網(wǎng)命名和語法約定中分配給字符串的含義相沖突。
4.通過用戶選擇搜索選項而發(fā)起的搜索在本發(fā)明的另外一個實施例中,與Web瀏覽器一起使用的插件搜索管理器控制Web瀏覽器,以在Web瀏覽器用戶界面內(nèi)顯示專用搜索請求輸入字段。該實施例可以避免搜索管理器截取輸入到Web瀏覽器的主數(shù)據(jù)輸入字段中的數(shù)據(jù)串的步驟,并且不要求用戶鍵入特殊搜索符,因為標(biāo)準(zhǔn)URI區(qū)分于搜索請求,用戶依靠其選擇向輸入字段輸入數(shù)據(jù)。采用該實施例,用戶仍然獲得無需搜尋所下載網(wǎng)頁內(nèi)的搜索輸入字段的益處,因為專用搜索區(qū)域與網(wǎng)頁內(nèi)容相獨立地顯示在瀏覽器的界面內(nèi)。
另外一個實施例提供與Web瀏覽器一起使用的插件搜索管理器,其控制Web瀏覽器在瀏覽器的用戶界面內(nèi)顯示用于選擇搜索選項的用戶界面元素。用戶界面元素可以被顯示為‘搜索’按鈕、下拉式菜單項或者任務(wù)欄內(nèi)的功能,其可以通過傳統(tǒng)用戶交互如輸入設(shè)備指針定位單擊鼠標(biāo)鈕來選擇。
響應(yīng)傳統(tǒng)的用戶發(fā)起請求,Web瀏覽器將HTTP請求發(fā)送到在每個請求的URI中標(biāo)識的特定Web服務(wù)器。如果所請求的資源是在所標(biāo)識的服務(wù)器可訪問的網(wǎng)頁,則服務(wù)器使用標(biāo)準(zhǔn)HTTP通信將網(wǎng)頁返回到瀏覽器。如果用戶現(xiàn)在通過與‘搜索’界面元素的交互來選擇搜索功能,運行在Web瀏覽器的客戶端數(shù)據(jù)處理設(shè)備上的搜索管理器90對所下載的頁面掃描搜索輸入字段或表單。輸入光標(biāo)跳至在所下載的頁面內(nèi)識別的第一搜索輸入字段或表單(若有的話)。如果在所下載的頁面內(nèi)識別不出該搜索表單或區(qū)域,則搜索管理器配置成使輸入光標(biāo)跳至主Web瀏覽器輸入字段,并且從服務(wù)器獲得搜索相關(guān)元數(shù)據(jù)。這可能涉及訪問從所下載的頁面中提取并保存在高速緩存中的元數(shù)據(jù)(如上面結(jié)合可選實施例所述)。如上面結(jié)合可選實施例所述,將用戶所輸入的任何搜索項與所檢索元數(shù)據(jù)內(nèi)的搜索基信息進(jìn)行組合。如果沒有該元數(shù)據(jù)可用,則搜索管理器可以配置成生成用于發(fā)送到缺省搜索引擎的搜索請求(如上所述)。
4.另外實施例本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,本發(fā)明的多種可選實現(xiàn)均在由權(quán)利要求限定的本發(fā)明范圍內(nèi)。在一個實施例中,搜索相關(guān)元數(shù)據(jù)可以響應(yīng)來自搜索管理器或關(guān)聯(lián)Web瀏覽器的請求,由Web服務(wù)器提供給搜索管理器,而不一定嵌入在網(wǎng)頁的HTML內(nèi)容內(nèi)。該非嵌入元數(shù)據(jù)可以與所下載的Web內(nèi)容一起或者單獨發(fā)送到瀏覽器。
在另外一個可選實施例中,上面引用的特殊搜索符是當(dāng)希望發(fā)起搜索時由用戶輸入的數(shù)據(jù)串的前綴,如‘search//’。隨后數(shù)據(jù)串可以包括URI和搜索項。與Web瀏覽器協(xié)作的搜索管理器、或者瀏覽器內(nèi)的程序代碼通過特定預(yù)定協(xié)議(如HTTP)發(fā)送搜索請求到通過URI引用而標(biāo)識的Web服務(wù)器來響應(yīng)該前綴。目的Web服務(wù)器如上所述在元數(shù)據(jù)中標(biāo)識。
在替代上面詳述實施例的可選實施例中,Web瀏覽器可以被另一個客戶端請求器程序如用于請求Web服務(wù)或GRID(網(wǎng)格)服務(wù)的請求器程序所替代,并且元數(shù)據(jù)可以存儲在不同于瀏覽器高速緩存的數(shù)據(jù)存儲單元中。
在本發(fā)明的另外一個實施例中,存儲在存儲單元中的搜索基可以配置成用于生成不同于搜索請求HTTP Post的協(xié)助(assistance)請求。例如,錯誤識別可以觸發(fā)生成發(fā)送到由搜索基標(biāo)識的幫助臺的協(xié)助請求。協(xié)助請求可以包括搜索項和錯誤標(biāo)識。協(xié)助請求例如可以被發(fā)送到電話幫助臺。一種根據(jù)本實施例的用于自動化協(xié)助請求的方法包括以下步驟在客戶端數(shù)據(jù)處理設(shè)備的存儲單元中存儲至少一個標(biāo)識服務(wù)提供者的搜索基;響應(yīng)由于在運行于客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)而產(chǎn)生的錯誤狀態(tài),在所輸入的數(shù)據(jù)內(nèi)識別至少一個查詢項,從存儲單元檢索搜索基,并且生成包括至少一個查詢項的協(xié)助請求;以及將所生成的協(xié)助請求發(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)提供者。
權(quán)利要求
1.一種用于在通過服務(wù)器數(shù)據(jù)處理設(shè)備可訪問的數(shù)據(jù)內(nèi)發(fā)起搜索的方法,包括以下步驟在客戶端數(shù)據(jù)處理設(shè)備的存儲單元中存儲至少一個標(biāo)識服務(wù)器數(shù)據(jù)處理設(shè)備的搜索基;響應(yīng)在運行于客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù),在所輸入的數(shù)據(jù)內(nèi)識別至少一個搜索項,從存儲單元檢索搜索基,生成組合所檢索的搜索基和所述至少一個搜索項的搜索請求,并且將所生成的搜索請求發(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)器數(shù)據(jù)處理設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,包括以下步驟從服務(wù)器數(shù)據(jù)處理設(shè)備接收響應(yīng);以及通過客戶端請求器程序的用戶界面顯示對應(yīng)于該響應(yīng)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的方法,包括以下步驟比較在輸入字段內(nèi)輸入的數(shù)據(jù)與存儲在存儲單元中的所述至少一個搜索基,以確定輸入數(shù)據(jù)是否包含匹配存儲在存儲單元中的搜索基的URI部分,并且響應(yīng)所存儲的搜索基是匹配搜索基的肯定判定,為所述檢索步驟選擇匹配搜索基。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述比較步驟包括比較輸入數(shù)據(jù)和與所存儲的搜索基相關(guān)聯(lián)而存儲在存儲單元中的至少一個觸發(fā)數(shù)據(jù)元素,以確定輸入數(shù)據(jù)是否包含匹配存儲在存儲單元中的觸發(fā)數(shù)據(jù)元素的URI部分,并且響應(yīng)所存儲的觸發(fā)數(shù)據(jù)元素是匹配觸發(fā)數(shù)據(jù)元素的肯定判定,選擇與匹配觸發(fā)數(shù)據(jù)元素相關(guān)聯(lián)的搜索基。
5.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,響應(yīng)錯誤識別而執(zhí)行識別至少一個搜索項、檢索搜索基和生成搜索請求的所述步驟。
6.根據(jù)權(quán)利要求5所述的方法,包括以下步驟分析來自服務(wù)器數(shù)據(jù)處理設(shè)備的響應(yīng),以識別從服務(wù)器數(shù)據(jù)處理設(shè)備接收的錯誤報告,所述錯誤報告提供錯誤標(biāo)識。
7.根據(jù)權(quán)利要求5所述的方法,包括以下步驟檢查在客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù)的語法,以識別語法錯誤。
8.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,響應(yīng)在所述輸入數(shù)據(jù)內(nèi)識別出特殊搜索符,執(zhí)行識別至少一個搜索項、檢索搜索基和生成搜索請求的所述步驟。
9.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,存儲在存儲單元中的至少一個搜索基包括URI的基本部分。
10.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,響應(yīng)從第一服務(wù)器數(shù)據(jù)處理設(shè)備接收到所述搜索基,執(zhí)行存儲至少一個搜索基的步驟。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,存儲至少一個搜索基的步驟包括從第一服務(wù)器數(shù)據(jù)處理設(shè)備接收其中嵌入有搜索基的網(wǎng)頁,并且從所接收的網(wǎng)頁中提取嵌入的搜索基。
12.根據(jù)權(quán)利要求3所述的方法,包括響應(yīng)多個所存儲的搜索基是匹配搜索基的肯定判定,為所述檢索步驟選擇所述多個匹配搜索基,生成對應(yīng)于所述多個匹配搜索基的多個搜索請求,并且將所生成的搜索請求發(fā)送到由匹配搜索基標(biāo)識的相應(yīng)服務(wù)器數(shù)據(jù)處理設(shè)備。
13.根據(jù)權(quán)利要求12所述的方法,包括以下步驟從多個服務(wù)器數(shù)據(jù)處理設(shè)備接收響應(yīng);聚合這些響應(yīng);以及通過客戶端請求器程序的用戶界面顯示對應(yīng)于聚合響應(yīng)的數(shù)據(jù)。
14.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,所述存儲單元包括與客戶端請求器程序相關(guān)聯(lián)的高速緩存。
15.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,客戶端請求器程序是Web瀏覽器程序。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,響應(yīng)從Web瀏覽器發(fā)送到Web服務(wù)器的請求不能訪問所請求資源這一失敗,執(zhí)行識別至少一個搜索項、檢索搜索基和生成搜索請求的步驟。
17.根據(jù)前面權(quán)利要求中的任一項所述的方法,其特征在于,所述至少一個搜索基是網(wǎng)站特定URI部分,并且響應(yīng)從Web服務(wù)器接收到所述至少一個搜索基而執(zhí)行存儲至少一個搜索基的所述步驟。
18.根據(jù)權(quán)利要求17所述的方法,在存儲所述至少一個搜索基之前,包括以下步驟在從所述Web服務(wù)器接收的網(wǎng)頁中提取所述至少一個搜索基。
19.一種在通過服務(wù)器數(shù)據(jù)處理設(shè)備可訪問的數(shù)據(jù)內(nèi)進(jìn)行搜索的方法,包括以下步驟在客戶端數(shù)據(jù)處理設(shè)備的存儲單元中存儲至少一個標(biāo)識服務(wù)器數(shù)據(jù)處理設(shè)備的搜索基;響應(yīng)在運行于客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序的輸入字段內(nèi)所輸入的數(shù)據(jù),在所輸入的數(shù)據(jù)內(nèi)識別至少一個搜索項,從存儲單元檢索搜索基,生成組合了所檢索的搜索基和所述至少一個搜索項的搜索請求,并且將所生成的搜索請求發(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)器數(shù)據(jù)處理設(shè)備;在服務(wù)器數(shù)據(jù)處理設(shè)備上調(diào)用搜索服務(wù),以處理所生成的搜索請求并且輸出搜索結(jié)果;將來自服務(wù)器數(shù)據(jù)處理設(shè)備的搜索結(jié)果發(fā)送到客戶端數(shù)據(jù)處理設(shè)備;在客戶端數(shù)據(jù)處理設(shè)備上接收所述搜索結(jié)果;以及通過客戶端請求器程序的用戶界面顯示對應(yīng)于所述接收結(jié)果的數(shù)據(jù)。
20.根據(jù)權(quán)利要求19所述的方法,其特征在于,生成搜索請求的步驟包括以所檢索的搜索基表示可查詢實體、并且所述至少一個搜索項表示要施加于可查詢實體的至少一個查詢項的搜索請求格式,組合所檢索的搜索基和所述至少一個搜索項。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,所生成的搜索基包括所檢索的搜索基、附于所檢索搜索基的搜索符、以及附于搜索符的所述至少一個查詢項。
22.一種用于發(fā)起搜索的搜索管理器,所述搜索管理器包括用于訪問存儲單元以在存儲單元中存儲至少一個搜索基、并從存儲單元檢索搜索基的程序代碼;請求生成程序代碼,用于通過執(zhí)行以下操作來響應(yīng)在客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)調(diào)用用于訪問存儲單元以從存儲單元檢索搜索基的程序代碼;在輸入字段內(nèi)所輸入的數(shù)據(jù)內(nèi)識別至少一個搜索項;以及生成組合了所檢索的搜索基和所述至少一個搜索項的搜索請求。
23.根據(jù)權(quán)利要求22所述的搜索管理器,包括用于控制客戶端請求器程序?qū)⑺傻乃阉髡埱蟀l(fā)送到由搜索基標(biāo)識的服務(wù)器的程序代碼。
24.根據(jù)權(quán)利要求22所述的搜索管理器,其中用于響應(yīng)的程序代碼包括程序代碼,用于比較在輸入字段內(nèi)輸入的數(shù)據(jù)與存儲在存儲單元中的所述至少一個搜索基,以確定輸入數(shù)據(jù)是否包含匹配于存儲在存儲單元中的搜索基的URI部分,并且響應(yīng)所存儲的搜索基是匹配搜索基的肯定判定,選擇匹配搜索基以包括在所生成的搜索請求內(nèi)。
25.根據(jù)權(quán)利要求24所述的搜索管理器,其特征在于,用于響應(yīng)的程序代碼包括用于比較在輸入字段內(nèi)輸入的數(shù)據(jù)與表示搜索請求的預(yù)定字符串的程序代碼,并且其中請求生成程序代碼配置成響應(yīng)在輸入數(shù)據(jù)內(nèi)識別出所述預(yù)定字符串而生成搜索請求。
26.根據(jù)權(quán)利要求22所述的搜索管理器,其特征在于,請求生成程序代碼配置成響應(yīng)錯誤識別而執(zhí)行所述調(diào)用、識別和生成。
27.根據(jù)權(quán)利要求22所述的搜索管理器,其特征在于,用于訪問存儲單元的程序代碼配置成響應(yīng)從服務(wù)器數(shù)據(jù)處理設(shè)備接收到搜索基而存儲所述搜索基。
28.根據(jù)權(quán)利要求22所述的搜索管理器,包括用于連接到Web瀏覽器程序的插件模塊。
29.一種包括用于發(fā)起搜索的搜索管理器的Web瀏覽器,所述搜索管理器包括檢索程序代碼,用于訪問存儲單元,該存儲單元適于存儲至少一個搜索基、以及從該存儲單元中檢索搜索基;請求生成程序代碼,用于通過執(zhí)行以下操作來響應(yīng)在客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)調(diào)用檢索程序代碼以從存儲單元檢索搜索基;從在輸入字段內(nèi)輸入的數(shù)據(jù)中檢索至少一個搜索項;以及生成包括所檢索的搜索基和所述至少一個搜索項的搜索請求。
30.一種客戶端數(shù)據(jù)處理設(shè)備,包括數(shù)據(jù)處理單元;數(shù)據(jù)存儲單元,用于存儲至少一個搜索基;顯示裝置;數(shù)據(jù)輸入裝置;客戶端請求器程序;以及搜索管理器程序,用于發(fā)起搜索,所述搜索管理器程序包括檢索程序代碼,用于訪問數(shù)據(jù)存儲單元并從該存儲單元中檢索搜索基;請求生成程序代碼,用于通過執(zhí)行以下操作來響應(yīng)在客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)調(diào)用檢索程序代碼以從存儲單元檢索搜索基;從在輸入字段內(nèi)輸入的數(shù)據(jù)中檢索至少一個搜索項;以及生成包括所檢索的搜索基和所述至少一個搜索項的搜索請求;以及用于控制客戶端請求器程序?qū)⑺傻乃阉髡埱蟀l(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)器數(shù)據(jù)處理設(shè)備的程序代碼。
31.一種用于在通過服務(wù)器數(shù)據(jù)處理設(shè)備訪問的數(shù)據(jù)內(nèi)搜索的方法,包括將至少一個搜索基從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送到客戶端數(shù)據(jù)處理設(shè)備;在服務(wù)器數(shù)據(jù)處理設(shè)備上接收來自客戶端數(shù)據(jù)處理設(shè)備的搜索請求;和響應(yīng)在服務(wù)器數(shù)據(jù)處理設(shè)備上接收到搜索請求,調(diào)用搜索服務(wù)以處理搜索請求,其中所述搜索請求包括對應(yīng)于從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送的所述至少一個搜索基的搜索基。
32.一種服務(wù)器數(shù)據(jù)處理設(shè)備,包括數(shù)據(jù)處理單元;數(shù)據(jù)存儲單元;以及服務(wù)器程序,用于將至少一個搜索基從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送到客戶端數(shù)據(jù)處理設(shè)備,并且從客戶端數(shù)據(jù)處理設(shè)備接收搜索請求;其中服務(wù)器程序配置成通過調(diào)用搜索服務(wù)來處理搜索請求,響應(yīng)包括與從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送的所述至少一個搜索基相對應(yīng)的搜索基的搜索請求的接收。
33.一種用于與根據(jù)權(quán)利要求22所述的搜索管理器協(xié)作的服務(wù)器程序,包括用于將至少一個搜索基從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送到客戶端數(shù)據(jù)處理設(shè)備的程序代碼;用于從客戶端數(shù)據(jù)處理設(shè)備接收搜索請求、并且響應(yīng)包括與從服務(wù)器數(shù)據(jù)處理設(shè)備發(fā)送的所述至少一個搜索基相對應(yīng)的搜索基的搜索請求的接收而調(diào)用搜索服務(wù)來處理搜索請求的程序代碼。
34.一種用于自動化協(xié)助請求的方法,包括以下步驟在客戶端數(shù)據(jù)處理設(shè)備的存儲單元中存儲至少一個標(biāo)識服務(wù)提供者的搜索基;響應(yīng)由于在運行于客戶端數(shù)據(jù)處理設(shè)備上的客戶端請求器程序的輸入字段內(nèi)輸入的數(shù)據(jù)而產(chǎn)生的錯誤狀態(tài),在所輸入的數(shù)據(jù)內(nèi)識別至少一個查詢項,從存儲單元檢索搜索基,并且生成包括所述至少一個查詢項的協(xié)助請求;和將所生成的協(xié)助請求發(fā)送到由所檢索的搜索基標(biāo)識的服務(wù)提供者。
全文摘要
公開了幫助響應(yīng)于輸入到Web瀏覽器的輸入字段中的搜索請求信息而在指定網(wǎng)站或目錄內(nèi)進(jìn)行搜索-無需定位所下載網(wǎng)頁內(nèi)的搜索表單或區(qū)域的方法、設(shè)備和搜索管理器。存儲在連接因特網(wǎng)的服務(wù)器計算機(jī)上的網(wǎng)頁包括元數(shù)據(jù)標(biāo)記。這些元數(shù)據(jù)包括可以緩存在客戶端系統(tǒng)上、然后用于在一個或多個特定網(wǎng)站或目錄內(nèi)發(fā)起搜索的觸發(fā)數(shù)據(jù)元素。所要搜索的一個或多個網(wǎng)站的標(biāo)識符可以與觸發(fā)數(shù)據(jù)元素一起緩存。如果在瀏覽器輸入字段內(nèi)輸入的數(shù)據(jù)包括觸發(fā)數(shù)據(jù)元素,以及一個或多個搜索項,則搜索管理器生成瀏覽器發(fā)送到所要搜索的特定網(wǎng)站的搜索請求。所生成的搜索請求典型地包括所緩存的URI基本部分,其用來限定指定搜索項的搜索范圍。
文檔編號G06F17/30GK1601526SQ20041001180
公開日2005年3月30日 申請日期2004年9月23日 優(yōu)先權(quán)日2003年9月23日
發(fā)明者伊恩·休斯, 尼古拉斯·J·米奇利 申請人:國際商業(yè)機(jī)器公司