專利名稱:一種搜索預(yù)處理方法和搜索預(yù)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)信息搜索方法及工具,特別涉及一種搜索預(yù)處理方法和搜 索預(yù)處理器。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,搜索引擎得到了不斷的完善,通過搜索引擎可以從互聯(lián)網(wǎng) 上獲取各種信息。搜索引擎是當(dāng)前互聯(lián)網(wǎng)幫助用戶快速獲取信息的主要途徑之一。用戶提 交一個查詢詞(Query)給搜索引擎,搜索引擎返回給用戶與該查詢詞相關(guān)的搜索結(jié)果,這 些結(jié)果按與查詢詞相關(guān)的程度從高到低排列。
現(xiàn)有的搜索引擎技術(shù)大致可以分為兩種。傳統(tǒng)搜索引擎,使用網(wǎng)絡(luò)爬蟲從互聯(lián)網(wǎng) 抓取網(wǎng)頁,建立索引,并為用戶提供查詢服務(wù)。以百度、谷歌的網(wǎng)頁搜索為代表。垂直搜索 引擎,對特定領(lǐng)域的數(shù)據(jù)進(jìn)行抓取、索引和搜索,并為用戶提供查詢服務(wù)。以搜狗音樂搜索 為代表。
傳統(tǒng)的搜索引擎技術(shù)通常包括網(wǎng)頁抓取、網(wǎng)頁處理、搜索服務(wù)等幾個部分。無論哪 一家搜索引擎,都不可能去抓取互聯(lián)網(wǎng)的全部內(nèi)容,因此各家搜索引擎通常都是索引整個 互聯(lián)網(wǎng)的一個子集;另外,傳統(tǒng)的網(wǎng)絡(luò)爬蟲基于網(wǎng)頁之間的鏈接進(jìn)行抓取,對于沒有鏈接的 頁面難以抓取;最后,傳統(tǒng)搜索引擎從抓取、建立索引、提供查詢服務(wù)需要一定周期,對大部 分內(nèi)容無法做到實(shí)時更新。
通常,一次搜索請求執(zhí)行的時間,絕大部分消耗在將用戶具體的搜索設(shè)置提交并 發(fā)送給搜索引擎進(jìn)行鏈接下載的過程,例如,用戶輸入和提交的時間總和為2秒,而搜索查 詢的時間僅僅為30ms。如果某個搜索引擎的鏈接和下載過程過于漫長,將會大大影響用戶 的搜索體驗(yàn),因此,本領(lǐng)域技術(shù)人員希望能夠縮短用戶開始輸入查詢詞到得出搜索結(jié)果的 時間。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種搜索預(yù)處理方法和搜索預(yù)處理器,能夠在 用戶正式提交搜索之前發(fā)送查詢詞,縮短了提交動作所花費(fèi)的時間,從而節(jié)省了搜索時間, 提高了搜索速度。
為了解決上述問題,本發(fā)明公開了一種搜索預(yù)處理方法,其可以包括以下步驟捕 獲用戶輸入查詢詞的相關(guān)動作;分析所述用戶輸入查詢詞的相關(guān)動作;在滿足預(yù)置條件的 情況下,在用戶正式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎。
優(yōu)選的,所述動作包括鼠標(biāo)動作、鍵盤動作和/或復(fù)制粘貼動作。
優(yōu)選的,所述滿足預(yù)置條件包括如果用戶在搜索框中輸入了查詢詞后開始移動 鼠標(biāo),且鼠標(biāo)進(jìn)入“搜索”按鈕周邊的預(yù)定區(qū)域,并逐漸靠近“搜索”按鈕,則滿足預(yù)置條件; 所發(fā)送的預(yù)測查詢詞為用戶在搜索框中輸入的查詢詞。
優(yōu)選的,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若移動鼠標(biāo)到“輸入提示”的區(qū)域,則滿足預(yù)置條件;所發(fā)送的預(yù)測查詢詞為“輸入提示”的首條提示。
優(yōu)選的,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若通過鼠標(biāo)或鍵盤在“輸 入提示”區(qū)域選擇了一提示詞,則滿足預(yù)置條件;所發(fā)送的預(yù)測查詢詞為該提示詞。
優(yōu)選的,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若鼠標(biāo)進(jìn)入“輸入提示” 區(qū)域,并在一提示詞區(qū)域有停頓,則滿足預(yù)置條件;所發(fā)送的預(yù)測查詢詞為停頓區(qū)域的提示 詞。
優(yōu)選的,所述“輸入提示”包括查詢詞推薦提示、查詢詞糾錯提示或相關(guān)搜索提示 中的一種或多種。
優(yōu)選的,所述滿足預(yù)置條件包括若用戶將字符粘貼于搜索框中,則滿足預(yù)置條 件;所發(fā)送的預(yù)測查詢詞為該粘貼的字符。
優(yōu)選的,所述將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎包括將預(yù)測查詢詞發(fā)送至多個 相應(yīng)的搜索引擎。
優(yōu)選的,所述方法還可以包括當(dāng)收到用戶正式提交的查詢詞時,比較其與提前發(fā) 送的預(yù)測查詢詞是否相同;若相同,則忽略用戶正式提交的查詢詞;若不同,則采用用戶正 式提交的查詢詞發(fā)送至相應(yīng)搜索引擎,忽略或者丟棄提前發(fā)送的預(yù)測查詢詞的搜索結(jié)果。
優(yōu)選的,所述方法還可以包括當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的 搜索引擎建立一預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生時,從保有的預(yù)鏈接中獲取對應(yīng)搜索引 擎的鏈接進(jìn)行查詢詞的發(fā)送和搜索結(jié)果的下載。
優(yōu)選的,所述用戶是否有搜索意圖通過以下方式判斷若用戶打開搜索頁面,則判 斷為有搜索意圖;和/或,若用戶在瀏覽器的地址欄輸入中文字符時,則判斷為有搜索意 圖;和/或,若用戶在搜索框開始輸入字符時,則判斷為有搜索意圖;和/或,若用戶將光標(biāo) 移動至搜索框中,則判斷為有搜索意圖。
依據(jù)本發(fā)明的另一實(shí)施例,還公開了一種搜索預(yù)處理器,包括
動作捕獲模塊,用于捕獲用戶輸入查詢詞的相關(guān)動作;
分析模塊,用于分析所述用戶輸入查詢詞的相關(guān)動作;
搜索預(yù)啟動模塊,用于當(dāng)分析模塊確定用戶輸入查詢詞的相關(guān)動作滿足預(yù)置條件 時,則在用戶正式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎。
優(yōu)選的,所述動作包括鼠標(biāo)動作、鍵盤動作和/或復(fù)制粘貼動作。
優(yōu)選的,所述搜索預(yù)啟動模塊將預(yù)測查詢詞發(fā)送至多個相應(yīng)的搜索引擎。
優(yōu)選的,所述搜索預(yù)處理器還包括比較模塊,用于當(dāng)收到用戶正式提交的查詢詞 時,比較用戶正式提交的查詢詞與提前發(fā)送的預(yù)測查詢詞是否相同,若相同,則忽略用戶正 式提交的查詢詞;若不同,則采用用戶正式提交的查詢詞發(fā)送至相應(yīng)搜索引擎,忽略或者丟 棄提前發(fā)送的預(yù)測查詢詞的搜索結(jié)果。
優(yōu)選的,所述搜索預(yù)處理器還包括預(yù)鏈接模塊,用于當(dāng)判定用戶有搜索意圖時, 對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;所述搜索預(yù)啟動模塊采用該預(yù) 鏈接將查詢詞發(fā)送至相應(yīng)的搜索引擎。
優(yōu)選的,所述搜索預(yù)處理器還包括中止模塊,用于當(dāng)用戶已提交了查詢請求時,則 中止搜索預(yù)啟動模塊的查詢詞發(fā)送過程。
依據(jù)本發(fā)明的另一個實(shí)施例,還公開了一種搜索預(yù)處理方法,包括當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生 時,從保有的預(yù)鏈接中獲取對應(yīng)搜索引擎的鏈接進(jìn)行查詢詞的發(fā)送和搜索結(jié)果的下載。
優(yōu)選的,所述用戶是否有搜索意圖通過以下方式判斷若用戶打開搜索頁面,則判 斷為有搜索意圖;和/或,若用戶在瀏覽器的地址欄輸入中文字符時,則判斷為有搜索意 圖;和/或,若用戶在搜索框開始輸入字符時,則判斷為有搜索意圖;和/或,若用戶將光標(biāo) 移動至搜索框中,則判斷為有搜索意圖。
依據(jù)本發(fā)明的另一個實(shí)施例,還公開了一種搜索預(yù)處理器,包括
預(yù)鏈接模塊,用于當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建 立一預(yù)鏈接,并保有之;
所保有的預(yù)鏈接用于當(dāng)搜索行為發(fā)生時,直接利用該鏈接與相應(yīng)搜索引擎進(jìn)行查 詢詞的發(fā)送和搜索結(jié)果的下載。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
本發(fā)明的搜索預(yù)處理方法和搜索預(yù)處理器可以在用戶輸入完成查詢詞,到正式發(fā) 送查詢詞之前的間隔時間內(nèi)將查詢詞提前發(fā)送給搜索引擎,使搜索引擎可以盡快進(jìn)行搜 索;即本發(fā)明可以更快的返回搜索結(jié)果。當(dāng)然,如果用戶繼續(xù)習(xí)慣性的手工發(fā)送了查詢詞, 則本發(fā)明可以將其忽略,以適應(yīng)用戶的使用習(xí)慣。這樣,從用戶層面來看,僅僅是感受到搜 索時間的縮短,而不會影響其使用習(xí)慣。
進(jìn)一步地,本專利的技術(shù)人員在研發(fā)過程中,發(fā)現(xiàn)用戶終端與搜索引擎服務(wù)器的 鏈接過程也比較花費(fèi)時間(例如三次握手等)。因此,本發(fā)明還可以通過在對用戶的搜索意 圖進(jìn)行判斷后,提前與搜索引擎建立一個預(yù)鏈接,當(dāng)正式開始搜索時(如發(fā)送查詢詞),直 接通過之前建立的預(yù)鏈接進(jìn)行鏈接,從而節(jié)省了鏈接的時間,進(jìn)一步地減少了搜索的時間。 因此,可以使搜索結(jié)果更快的返回給用戶,提高搜索的速度。
尤其是,本發(fā)明可以比較好的應(yīng)用在多搜索引擎的搜索方式中,因?yàn)樗阉鹘Y(jié)果需 要花費(fèi)時間對多搜索引擎的搜索結(jié)果進(jìn)行匯總整理,其搜索時間可能要大于傳統(tǒng)的單一搜 索引擎模塊,所以如果能夠節(jié)省時間,就可以更好的滿足用戶。而采用本發(fā)明的查詢詞預(yù)發(fā) 明和預(yù)鏈接,則針對每一個搜索引擎的搜索過程都可以加快一點(diǎn),集合到多個搜索引擎上, 其效果更加突出。
圖1是本發(fā)明的一種搜索預(yù)處理方法實(shí)施例一的流程圖2是本發(fā)明的一種搜索預(yù)處理方法實(shí)施例二的流程圖3是圖2所示的搜索預(yù)處理方法中的預(yù)鏈接的流程圖4是本發(fā)明的一種搜索預(yù)處理器實(shí)施例一的示意圖5是本發(fā)明的一種搜索預(yù)處理器實(shí)施例二的示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
請參照圖1,示出了一種搜索預(yù)處理方法的實(shí)施例一,包括以下步驟
步驟101,捕獲用戶輸入查詢詞的相關(guān)動作。
對于用戶動作的捕獲可以通過在搜索頁面中嵌入代碼來實(shí)現(xiàn),也可以通過在瀏覽 器或者其他軟件,如IMdnstantMessaging,即時通訊)程序、輸入法程序、甚至文本編輯程 序word等軟件中安裝插件來實(shí)現(xiàn)。捕獲的可以是用戶采用鍵盤在某一搜索區(qū)域,如可以提 起搜索請求的輸入欄,如瀏覽器的地址欄,也可以搜索頁面的搜索欄、搜索軟件的輸入欄等 中進(jìn)行的輸入、移動、粘貼、復(fù)制的操作,也可以是采用鼠標(biāo)在上述某一區(qū)域進(jìn)行的移動、輸 入、粘貼、復(fù)制等操作,還可以是用戶在某一頁面選中的字符等。當(dāng)然,表現(xiàn)在界面,也可以 認(rèn)為是光標(biāo)的動作情況。
用戶輸入查詢詞的相關(guān)動作可以包括用戶的輸入動作,也可以包括與用戶輸入行 為相關(guān)聯(lián)的動作,例如,移動鼠標(biāo)并點(diǎn)擊“確認(rèn)”按鍵的動作。進(jìn)一步,用戶的“輸入”可以 包括通過鍵盤對字符的敲入,也可以包括復(fù)制粘貼行為,還可以包括鼠標(biāo)選擇后的拖動等。
具體的,本發(fā)明所捕獲的動作可以是用戶操作鼠標(biāo)和鍵盤的動作,如直接在搜索 框中鍵入字符、將字符粘貼復(fù)制進(jìn)搜索框中、鼠標(biāo)的移動或者選中某一頁面字符等。因此, 當(dāng)用戶點(diǎn)擊了搜索框,可以開始對用戶在搜索框區(qū)域中所進(jìn)行的動作進(jìn)行捕獲,在用戶選 中某一頁面中的字符時也可以該選中的動作進(jìn)行捕獲。由于用戶完成查詢詞輸入和提交搜 索的過程,可能不僅僅在輸入框中完成,例如還需要移動鼠標(biāo)到“搜索”按鈕等,所以本發(fā)明 對動作的捕獲實(shí)際上包括了搜索框及其周邊區(qū)域。當(dāng)然,從鼠標(biāo)鍵盤或者光標(biāo)的角度而言, 本發(fā)明就是當(dāng)用戶開始輸入查詢詞時,就可以對他們的動作進(jìn)行捕獲和監(jiān)控。步驟102,分 析所述用戶輸入查詢詞的相關(guān)動作;
本發(fā)明的目的是分析用戶動作,以提前獲知用戶所需的查詢詞,提前發(fā)送給搜索 引擎,從而節(jié)約搜索時間。如果從用戶輸入查詢詞的相關(guān)動作,可以確定用戶已經(jīng)輸入了完 整的查詢詞,正在準(zhǔn)備進(jìn)行提交動作,則就可以提前發(fā)送查詢詞至搜索引擎。
也就是說,通過對用戶輸入查詢詞的相關(guān)動作進(jìn)行分析,如果這些動作符合本發(fā) 明的預(yù)置條件,則就可以提前發(fā)送查詢詞至搜索引擎。
對于用戶是否輸入了完整的查詢詞,可以通過多種方式判斷。
例如,如果用戶在搜索框中輸入了字符后開始移動鼠標(biāo),且鼠標(biāo)進(jìn)入“搜索”按鈕 周邊預(yù)定的范圍內(nèi),并逐漸靠近“搜索”按鈕時,則確定用戶輸入了完整的查詢詞。其中,此 處的“搜索”按鈕周邊預(yù)定的范圍可以根據(jù)具體需要來確定,例如,以“搜索”按鈕為圓心,半 徑不大于3厘米的圓形區(qū)域,也可以是以“搜索”按鈕為中心的矩形或者其他形狀的區(qū)域。 按鈕周邊預(yù)定范圍的確定,可以根據(jù)實(shí)際操作來確定,只要能被識別并確認(rèn)的范圍內(nèi)都可 以。
實(shí)際上可以理解為從鼠標(biāo)移動的軌跡看,鼠標(biāo)基本上在不斷接近“搜索”按鈕。符 合以上特征后,判斷為“用戶已輸入完整查詢”,提前發(fā)送查詢詞。但是由于此時用戶還未正 式提交搜索,因此在本發(fā)明中采用預(yù)測查詢詞加以說明。
除此之外,還可以采用其他方式進(jìn)行判斷,例如,如果用戶在輸入查詢詞的一部分 時,移動鼠標(biāo)到“輸入提示”的區(qū)域,則確定用戶輸入了完整的查詢詞,此時,以“輸入提示” 的首條提示詞作為查詢詞。具體的,搜索引擎通常有“輸入提示”的功能,如輸入“周”字后, 下方可能提示“周杰倫”、“周星馳”、“周潤發(fā)”等等,而其中首條提示的點(diǎn)擊率比較最高。
如果用戶在輸入查詢詞的一部分時,移動鼠標(biāo)到“輸入提示”的區(qū)域,并選擇了一條提示詞,則確定用戶輸入了完整的查詢詞,此時,以選擇的提示詞作為預(yù)測查詢詞。
如果用戶將字符粘貼于搜索框中,也可以確定輸入了完整的查詢詞,以該粘貼的 字符作為預(yù)測查詢詞。
如果用戶的鼠標(biāo)進(jìn)入查詢糾錯詞或者相關(guān)搜索等提示字樣周圍區(qū)域有停頓,則也 確定輸入了完整的查詢詞,此時,以停頓區(qū)域的提示字樣作為完整的查詢詞。雖然停頓的時 間雖然比較短,但是減少50毫秒到100毫秒對搜索引擎來說,也能減少相當(dāng)比例的時間。
步驟103,若滿足預(yù)置條件,則在用戶正式提交之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜 索引擎。
若用戶尚未輸入完整的查詢詞,則繼續(xù)捕獲用戶的動作并進(jìn)行分析,若確定用戶 輸入了完整的查詢詞后,需要對用戶是否正式提交查詢請求進(jìn)行判斷。若用戶已經(jīng)提交查 詢請求,則無需進(jìn)行任何操作。若用戶還未提交查詢請求,則在用戶提交之前,將上一步驟 中確定的預(yù)測查詢詞發(fā)送給相應(yīng)的搜索引擎進(jìn)行搜索。
“用戶正式提交查詢詞”指用戶已經(jīng)通過正常的步驟,將查詢詞提交給搜索引擎 了。比如,用戶點(diǎn)擊了“搜索”按鈕,或者在輸入查詢詞之后,點(diǎn)擊了“回車”按鈕,則這個時 候,查詢詞已經(jīng)提交給搜索引擎了,不需要做提前發(fā)送。
可以理解,預(yù)測查詢詞可以提前發(fā)送給一個單獨(dú)的搜索引擎,也可以發(fā)送給多個 搜索引擎。當(dāng)發(fā)送給單獨(dú)的搜索引擎的時候,只要能判斷輸入了完整的查詢詞,便提前發(fā)送 給該搜索引擎。
進(jìn)一步,為了得到較為準(zhǔn)確的搜索結(jié)果,也可以在發(fā)送之前對查詢詞進(jìn)行分類,對 搜索引擎進(jìn)行選擇,獲取與查詢詞相關(guān)度較高的搜索引擎,然后將查詢詞發(fā)送給選擇的多 個搜索引擎。
因?yàn)樘崆鞍l(fā)送的預(yù)測查詢詞是對用戶查詢意圖的預(yù)判斷,因此提前發(fā)送的預(yù)測查 詢詞與用戶正式提交的查詢詞可能相同也可能不同。而由于用戶習(xí)慣性的仍然會點(diǎn)擊提交 查詢詞,因此,可能存在預(yù)測查詢詞和用戶點(diǎn)擊提交的查詢詞沖突的情況。
若提前發(fā)送的預(yù)測查詢詞與用戶正式提交的查詢詞相同,則會忽略用戶正式提交 的請求,即不發(fā)送該用戶正式提交的查詢詞至搜索引擎,而是將預(yù)先發(fā)送的預(yù)測查詢詞的 搜索結(jié)果呈現(xiàn)給用戶。
若提前發(fā)送的預(yù)測查詢詞與用戶正式提交的查詢詞不同,則會采用用戶正式提 交的查詢詞進(jìn)行搜索,而忽略或者丟棄之前的搜索結(jié)果(例如,預(yù)測查詢詞的搜索結(jié)果鏈 接)。
進(jìn)一步地,在判斷用戶是否輸入完整的查詢詞的過程中,也可能會出現(xiàn)誤判的情 況,因此需要對后續(xù)確認(rèn)的查詢詞進(jìn)行重新發(fā)送。例如,當(dāng)用戶輸入部分查詢詞后將鼠標(biāo)移 動到“輸入提示”的區(qū)域,根據(jù)前面所述的確認(rèn)標(biāo)準(zhǔn),此時,發(fā)送給搜索引擎的預(yù)測查詢詞是 “輸入提示”的首條提示詞。但是用戶可能會選擇“輸入提示”的第二條提示詞或者其他的 提示詞作為正式查詢詞,因此,此時可以在用戶選擇查詢詞后,將選擇的正式查詢詞重新發(fā) 送給搜索引擎,從而保證查詢的準(zhǔn)確。即前次的查詢過程并不是用戶需要的,則當(dāng)搜索結(jié)果 返回時,直接忽略或者丟棄即可。
當(dāng)然,如果之前搜索預(yù)啟動時發(fā)送的預(yù)測查詢詞仍然在本地(例如,仍然基于查 詢詞在選擇搜索引擎),則當(dāng)接到用戶正式提交的查詢詞時,如果發(fā)現(xiàn)之前已提前發(fā)送過預(yù)測查詢詞且之前提交的預(yù)測查詢詞和用戶正式提交的查詢詞不一致時,則取消上次提交的 查詢,用新的查詢詞進(jìn)行檢索。因?yàn)榧词怪暗念A(yù)啟動選擇了錯誤的查詢詞,整個時間上也 沒有耽誤,而如果之前的預(yù)啟動選擇了正確的查詢詞,則相當(dāng)于早一點(diǎn)啟動了搜索(或者 早一點(diǎn)啟動了選擇搜索引擎的操作),仍然能夠比較好的節(jié)約時間。
對于搜索引擎的搜索結(jié)果通常采用鏈接下載的方式獲取,在需要進(jìn)行http下載 時,首先構(gòu)造鏈接請求URL (查詢詞含于其中),然后發(fā)起鏈接進(jìn)行互聯(lián)網(wǎng)內(nèi)容下載,下載結(jié) 束后關(guān)閉鏈接。本發(fā)明可以采用現(xiàn)有的鏈接下載實(shí)現(xiàn)方式,在此不再贅述。
請參照圖2,示出了本發(fā)明的搜索預(yù)處理方法實(shí)施例二,搜索預(yù)處理方法還可以包 括步驟104,在用戶正式提交查詢詞搜索之前進(jìn)行預(yù)鏈接。其中,預(yù)鏈接與實(shí)施例一中的預(yù) 發(fā)送的先后順序并不確定,可以與預(yù)發(fā)送同時進(jìn)行,也可以在預(yù)發(fā)送之前或者之后進(jìn)行。也 即步驟104可以與前面三個步驟同時進(jìn)行,也可以在三個步驟之前或者之后進(jìn)行。當(dāng)然,最 好在預(yù)發(fā)送之前或者在預(yù)發(fā)送捕獲用戶動作的同時進(jìn)行。
請參照圖3,預(yù)鏈接過程包括以下步驟首先判斷用戶是否有搜索意圖,從可能發(fā) 起鏈接請求的搜索引擎建立一個預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生時,則從保有的預(yù)鏈接 中獲取對應(yīng)搜索弓I擎的鏈接進(jìn)行下載。
由于http請求支持ke印-alive方式進(jìn)行鏈接下載,那么可以在內(nèi)容下載之前首 先發(fā)起一次鏈接請求并保有,而在實(shí)際需要下載內(nèi)容的應(yīng)用時使用之前保有的keep-alive 鏈接,這樣就省去了在實(shí)際應(yīng)用時的鏈接建立時間消耗。
其中,判斷用戶是否有搜索意圖可以通過較多的方式判斷。下面給出本發(fā)明的一 些可能的實(shí)現(xiàn)例子。
例如,當(dāng)用戶打開了搜索頁面時,則可以認(rèn)為用戶有搜索意圖。例如,當(dāng)用戶在搜 索頁面的搜索框中輸入或者粘貼字符時,則也可以認(rèn)為用戶有搜索意圖。例如,當(dāng)用戶在瀏 覽器的地址欄輸入中文字符時,也可以認(rèn)為用戶有搜索意圖。
在確定用戶具有搜索意圖后,若用戶使用的搜索頁面或者瀏覽器只對應(yīng)一個搜索 引擎,則對該搜索引擎建立一個預(yù)鏈接。若用戶使用的搜索頁面或者瀏覽器對應(yīng)多個搜索 引擎,則可以對多個搜索引擎都建立一個預(yù)鏈接。此時,對于該一個搜索引擎或者多個搜索 引擎的預(yù)鏈接可以在確定用戶具有搜索意圖時進(jìn)行建立,也可以在確定用戶已經(jīng)輸入完整 的查詢詞之后進(jìn)行建立。
有時,為了獲取較為準(zhǔn)確的結(jié)果,在可以確定用戶已經(jīng)輸入完整的查詢詞的時候, 可以對查詢詞進(jìn)行分類,根據(jù)查詢詞的類別選擇與查詢詞相關(guān)程度較高的搜索引擎進(jìn)行預(yù) 鏈接。此時,可以首先在確定用戶具有搜索意圖時便對所有備選的搜索引擎進(jìn)行預(yù)鏈接,當(dāng) 確定用戶已經(jīng)輸入完整的查詢詞并選擇了對應(yīng)的搜索引擎之后,保留被選擇的搜索引擎的 預(yù)鏈接,并中斷未被選取的搜索引擎的預(yù)鏈接。當(dāng)然,也可以在確定用戶具有搜索意圖時不 進(jìn)行預(yù)鏈接,而是在確定用戶輸入完整的查詢詞并選擇搜索引擎后,對選擇的搜索引擎進(jìn) 行預(yù)鏈接。
可以理解,預(yù)鏈接和預(yù)發(fā)送可以為兩個獨(dú)立的步驟,即,兩者分別對用戶的動作進(jìn) 行獨(dú)立判斷然后進(jìn)行預(yù)鏈接或者預(yù)發(fā)送。該兩個步驟也可以互相關(guān)聯(lián),例如,預(yù)鏈接在判 斷用戶是否具有搜索意圖時獲取的用戶的某些動作信息,預(yù)發(fā)送在進(jìn)行動作捕獲時可以利 用。或者預(yù)發(fā)送在進(jìn)行動作捕獲時獲得的信息,預(yù)鏈接在判斷用戶是否具有搜索意圖時也可以利用,通過資源共享,可以節(jié)省預(yù)鏈接或者預(yù)發(fā)送的時間,同時也可以減少對內(nèi)存等空 間的占用。
請參照圖4,本發(fā)明還提供一種搜索預(yù)處理器100,包括動作捕獲模塊10和分析模 塊20、搜索預(yù)啟動模塊30。該搜索預(yù)處理器100可以集成在瀏覽器或者其他的軟件中。
動作捕獲模塊10可以是嵌入搜索軟件客戶端、瀏覽器或者搜索頁面的程序代碼 或者插件。動作捕獲模塊10可以捕獲用戶在搜索框區(qū)域輸入查詢詞時鍵盤和鼠標(biāo)的動作。 例如,通過鍵盤進(jìn)行的輸入、復(fù)制、粘貼、鼠標(biāo)的移動、或者通過鼠標(biāo)進(jìn)行的復(fù)制、粘貼等動 作。
分析模塊20也可以是嵌入搜索軟件客戶端、瀏覽器或者搜索頁面的程序代碼或 者插件。分析模塊通過對捕獲到的用戶動作的分析來判斷用戶是否輸入了完整的查詢詞, 在技術(shù)實(shí)現(xiàn)上,即分析用戶輸入查詢詞的相關(guān)動作是否滿足預(yù)置條件。例如,當(dāng)用戶輸入一 些字符后開始移動鼠標(biāo),且鼠標(biāo)逐漸向“搜索”按鈕移動,此時可以分析為用戶輸入完成,提 前發(fā)送查詢詞。即分析模塊20可以通過用戶的鼠標(biāo)動作、鍵盤動作或者復(fù)制粘貼動作,判 斷用戶是否輸入了完整的查詢詞。
搜索預(yù)啟動模塊30,用于當(dāng)分析模塊判定用戶輸入了完整的查詢詞,則在用戶正 式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎。當(dāng)然,搜索預(yù)啟動模塊可以將預(yù)測 查詢詞發(fā)送至多個相應(yīng)的搜索引擎
進(jìn)一步地,搜索預(yù)處理器100還可以包括中止模塊,中止模塊用于判斷用戶是否 提交了查詢詞。若用戶還未提交查詢詞,則允許提前發(fā)送預(yù)測查詢詞;若用戶已經(jīng)提交了查 詢詞,則無需再進(jìn)行預(yù)測查詢詞的提前發(fā)送操作。
進(jìn)一步地,搜索預(yù)處理器100還可以包括比較模塊,用于比較用戶正式提交的查 詢詞與提前發(fā)送的預(yù)測查詢詞是否相同,若相同,則忽略用戶正式提交的查詢詞,顯示提前 發(fā)送的預(yù)測查詢詞的搜索結(jié)果;若不同,則采用用戶正式提交的查詢詞進(jìn)行搜索,忽略或者 丟棄提前發(fā)送的預(yù)測查詢詞的搜索結(jié)果。
進(jìn)一步地,搜索預(yù)處理器100還可以包括預(yù)鏈接模塊40,用于當(dāng)判定用戶有搜索 意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;所述搜索預(yù)啟動模塊 30采用該預(yù)鏈接將查詢詞(包括用戶正式提交的查詢詞或者預(yù)測查詢詞)發(fā)送至相應(yīng)的搜 索引擎。
在具體實(shí)現(xiàn)時,可以采用檢測模塊通過對用戶動作的檢測來判斷用戶是否有搜索 意圖。例如,用戶打開搜索引擎,或者瀏覽器的搜索頁面、或者在搜索欄中鍵入了字符等操 作,均可以認(rèn)為用戶具有搜索意圖。
檢測模塊與動作捕獲模塊可以是獨(dú)立的兩個模塊,也可以是互相關(guān)聯(lián)的模塊,兩 者可以共享部分信息,例如用戶在搜索欄進(jìn)行的輸入等操作的信息,從而節(jié)省判斷的時間, 同時也可以減少對內(nèi)存等空間的占用。
通常情況下,搜索引擎返回搜索結(jié)果的時間在200ms至500ms之間,而用戶在開始 輸入查詢詞或者輸入完成查詢詞,到正式發(fā)送查詢詞給搜索引擎之前的間隔時間通常會大 于搜索引擎返回結(jié)果的時間。例如,用戶移動鼠標(biāo)的速度相比于搜索引擎返回的時間,是比 較慢的。通常用戶的鼠標(biāo)離開搜索框啟動搜索(假設(shè)移動3厘米并對準(zhǔn)“搜索”按鈕點(diǎn)擊下 去),通常需要消耗在200ms以上的時間。假定搜索結(jié)果返回時間500ms左右,提前200ms發(fā)送,可以節(jié)約40 %的時間,會大大改善用戶的搜索體驗(yàn)。
因此若在此間隔時間內(nèi)將查詢詞進(jìn)行提前發(fā)送,搜索引擎可以提前進(jìn)行搜索,當(dāng) 用戶提交查詢詞后,則可以更快的返回搜索結(jié)果。同時,與各搜索引擎建立鏈接是搜索過程 中較為費(fèi)時的一個操作,因此,若能對用戶的搜索意圖進(jìn)行判斷并提前與搜索引擎建立一 個預(yù)鏈接,當(dāng)用戶正式提交時,便可以直接通過之前建立的預(yù)鏈接進(jìn)行鏈接,從而節(jié)省了鏈 接的時間,進(jìn)一步地減少了搜索的時間。因此,本發(fā)明的搜索預(yù)處理方法和搜索預(yù)處理器通 過在用戶正式提交查詢之前,將用戶的查詢詞發(fā)送出去及建立預(yù)鏈接,可以使搜索結(jié)果更 快的返回給用戶,提高用戶的搜索體驗(yàn)。
具體的,本發(fā)明通過keep-alive方式實(shí)現(xiàn)的預(yù)鏈接技術(shù),使得應(yīng)用在鏈接下載過 程中省卻了鏈接建立的時間。而http請求過程中,鏈接建立的三次握手協(xié)議過程是比較耗 時的,極端情況下,三次握手階段出現(xiàn)網(wǎng)絡(luò)丟包,TCP協(xié)議0棧默認(rèn)的重新啟動三次握手協(xié) 議的過程為3s,這就意味著應(yīng)用需要等待至少3s才能開始下載內(nèi)容。預(yù)鏈接技術(shù)將在元搜 索等待的非必要階段首先建立長連接,而后所有針對該服務(wù)器的鏈接請求都可以復(fù)用此長 連接從而大大降低了元搜索整體過程的時間消耗。
在前面的描述中已經(jīng)提及,查詢詞的預(yù)發(fā)送方案和搜索引擎的預(yù)鏈接方案是可以 分別獨(dú)立執(zhí)行。即本發(fā)明可以分別采用兩個方案中的一個作為搜索前的預(yù)處理,以縮短搜 索時間。當(dāng)然,在本發(fā)明的優(yōu)選實(shí)施例中,可以將二者組合起來,以期得到更佳的效果。
即本發(fā)明可以提供下面的一個實(shí)施例,在搜索之前進(jìn)行預(yù)鏈接,當(dāng)判定用戶有搜 索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生時, 從保有的預(yù)鏈接中獲取對應(yīng)搜索引擎的鏈接進(jìn)行查詢詞的發(fā)送和搜索結(jié)果的下載。
本發(fā)明也可以提供一個搜索預(yù)處理器,與客戶端瀏覽器相連,參照圖5,其包括預(yù) 鏈接模塊,用于當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接, 并保有之;所保有的預(yù)鏈接用于當(dāng)搜索行為發(fā)生時,直接利用該鏈接與相應(yīng)搜索引擎進(jìn)行 查詢詞的發(fā)送和搜索結(jié)果的下載。
這些建立好的預(yù)鏈接由后臺的鏈接管理器進(jìn)行管理,以便維持與搜索引擎1、2、3、 4的鏈接,當(dāng)用戶啟動搜索時,本發(fā)明的搜索預(yù)處理器對檢索請求進(jìn)行處理,然后通過檢索 接口代理找到鏈接管理器,假設(shè)選擇了搜索引擎1、2,則通過已經(jīng)建立好的搜索引擎1、2的 預(yù)鏈接進(jìn)行查詢詞的發(fā)送和搜索結(jié)果的下載。搜索結(jié)果返回后經(jīng)過去重、合并以及重排序 等操作,返回個客戶端瀏覽器進(jìn)行顯示。即通過鏈接管理器對各個鏈接的提前握手和維持, 可以節(jié)約客戶端瀏覽器與各個搜索引擎的鏈接時間,提高搜索效率。
對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān) 之處參見方法實(shí)施例的部分說明即可。
本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似的部分互相參見即可。
以上對本發(fā)明所提供的一種搜索預(yù)處理方法和搜索預(yù)處理器,進(jìn)行了詳細(xì)介紹, 本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用 于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的 思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為 對本發(fā)明的限制。
權(quán)利要求
1.一種搜索預(yù)處理方法,其特征在于,包括以下步驟 捕獲用戶輸入查詢詞的相關(guān)動作;分析所述用戶輸入查詢詞的相關(guān)動作;在滿足預(yù)置條件的情況下,在用戶正式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索 引擎。
2.如權(quán)利要求1所述的方法,其特征在于,所述動作包括鼠標(biāo)動作、鍵盤動作和/或 復(fù)制粘貼動作。
3.如權(quán)利要求1所述的方法,其特征在于,所述滿足預(yù)置條件包括如果用戶在搜索框中輸入了查詢詞后開始移動鼠標(biāo),且鼠標(biāo)進(jìn)入“搜索”按鈕周邊的預(yù) 定區(qū)域,并逐漸靠近“搜索”按鈕,則滿足預(yù)置條件;所發(fā)送的預(yù)測查詢詞為用戶在搜索框中 輸入的查詢詞。
4.如權(quán)利要求1所述的方法,其特征在于,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若移動鼠標(biāo)到“輸入提示”的區(qū)域,則滿足預(yù)置條件; 所發(fā)送的預(yù)測查詢詞為“輸入提示”的首條提示。
5.如權(quán)利要求1所述的方法,其特征在于,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若通過鼠標(biāo)或鍵盤在“輸入提示”區(qū)域選擇了一提示詞,則滿足 預(yù)置條件;所發(fā)送的預(yù)測查詢詞為該提示詞。
6.如權(quán)利要求1所述的方法,其特征在于,所述滿足預(yù)置條件包括用戶在輸入查詢詞時,若鼠標(biāo)進(jìn)入“輸入提示”區(qū)域,并在一提示詞區(qū)域有停頓,則滿足 預(yù)置條件;所發(fā)送的預(yù)測查詢詞為停頓區(qū)域的提示詞。
7.如權(quán)利要求4、5、6所述的方法,其特征在于,所述“輸入提示”包括查詢詞推薦提示、 查詢詞糾錯提示或相關(guān)搜索提示中的一種或多種。
8.如權(quán)利要求1所述的方法,其特征在于,所述滿足預(yù)置條件包括若用戶將字符粘貼于搜索框中,則滿足預(yù)置條件;所發(fā)送的預(yù)測查詢詞為該粘貼的字符。
9.如權(quán)利要求1所述的方法,其特征在于,所述將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎 包括將預(yù)測查詢詞發(fā)送至多個相應(yīng)的搜索引擎。
10.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括當(dāng)收到用戶正式提交的 查詢詞時,比較其與提前發(fā)送的預(yù)測查詢詞是否相同;若相同,則忽略用戶正式提交的查詢詞;若不同,則采用用戶正式提交的查詢詞發(fā)送至相應(yīng)搜索引擎,忽略或者丟棄提前發(fā)送 的預(yù)測查詢詞的搜索結(jié)果。
11.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生時,從保有的預(yù)鏈接中獲取對應(yīng)搜索引擎的鏈接進(jìn)行查詢詞的發(fā)送和 搜索結(jié)果的下載。
12.如權(quán)利要求11所述的方法,其特征在于,所述用戶是否有搜索意圖通過以下方式 判斷若用戶打開搜索頁面,則判斷為有搜索意圖;和/或,若用戶在瀏覽器的地址欄輸入中文字符時,則判斷為有搜索意圖; 和/或,若用戶在搜索框開始輸入字符時,則判斷為有搜索意圖; 和/或,若用戶將光標(biāo)移動至搜索框中,則判斷為有搜索意圖。
13.一種搜索預(yù)處理器,其特征在于,包括動作捕獲模塊,用于捕獲用戶輸入查詢詞的相關(guān)動作; 分析模塊,用于分析所述用戶輸入查詢詞的相關(guān)動作;搜索預(yù)啟動模塊,用于當(dāng)分析模塊確定用戶輸入查詢詞的相關(guān)動作滿足預(yù)置條件時, 則在用戶正式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎。
14.如權(quán)利要求13所述的搜索預(yù)處理器,其特征在于,所述動作包括鼠標(biāo)動作、鍵盤 動作和/或復(fù)制粘貼動作。
15.如權(quán)利要求13所述的搜索預(yù)處理器,其特征在于,所述搜索預(yù)啟動模塊將預(yù)測查 詢詞發(fā)送至多個相應(yīng)的搜索引擎。
16.如權(quán)利要求13所述的搜索預(yù)處理器,其特征在于,所述搜索預(yù)處理器還包括比較 模塊,用于當(dāng)收到用戶正式提交的查詢詞時,比較用戶正式提交的查詢詞與提前發(fā)送的預(yù) 測查詢詞是否相同,若相同,則忽略用戶正式提交的查詢詞;若不同,則采用用戶正式提交的查詢詞發(fā)送至相應(yīng)搜索引擎,忽略或者丟棄提前發(fā)送 的預(yù)測查詢詞的搜索結(jié)果。
17.如權(quán)利要求13所述的搜索預(yù)處理器,其特征在于,所述搜索預(yù)處理器還包括預(yù)鏈接模塊,用于當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一 預(yù)鏈接,并保有之;所述搜索預(yù)啟動模塊采用該預(yù)鏈接將查詢詞發(fā)送至相應(yīng)的搜索引擎。
18.如權(quán)利要求13所述的搜索預(yù)處理器,其特征在于,所述搜索預(yù)處理器還包括中止 模塊,用于當(dāng)用戶已提交了查詢請求時,則中止搜索預(yù)啟動模塊的查詢詞發(fā)送過程。
19.一種搜索預(yù)處理方法,其特征在于,包括當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一預(yù)鏈接,并保有之;當(dāng)搜索行為發(fā)生時,從保有的預(yù)鏈接中獲取對應(yīng)搜索引擎的鏈接進(jìn)行查詢詞的發(fā)送和 搜索結(jié)果的下載。
20.如權(quán)利要求19所述的方法,其特征在于,所述用戶是否有搜索意圖通過以下方式 判斷若用戶打開搜索頁面,則判斷為有搜索意圖;和/或,若用戶在瀏覽器的地址欄輸入中文字符時,則判斷為有搜索意圖; 和/或,若用戶在搜索框開始輸入字符時,則判斷為有搜索意圖; 和/或,若用戶將光標(biāo)移動至搜索框中,則判斷為有搜索意圖。
21.一種搜索預(yù)處理器,其特征在于,包括預(yù)鏈接模塊,用于當(dāng)判定用戶有搜索意圖時,對可能發(fā)起鏈接請求的搜索引擎建立一 預(yù)鏈接,并保有之;所保有的預(yù)鏈接用于當(dāng)搜索行為發(fā)生時,直接利用該鏈接與相應(yīng)搜索引擎進(jìn)行查詢詞 的發(fā)送和搜索結(jié)果的下載。
全文摘要
本發(fā)明提供了一種搜索預(yù)處理方法和裝置,所述搜索預(yù)處理方法可以包括以下步驟捕獲用戶輸入查詢詞的相關(guān)動作;分析所述用戶輸入查詢詞的相關(guān)動作;在滿足預(yù)置條件的情況下,在用戶正式提交搜索之前將預(yù)測查詢詞發(fā)送至相應(yīng)的搜索引擎。本發(fā)明的搜索預(yù)處理方案可以在用戶輸入完成查詢詞,到正式發(fā)送查詢詞之前的間隔時間內(nèi)將查詢詞提前發(fā)送給搜索引擎,使搜索引擎可以盡快進(jìn)行搜索;即本發(fā)明可以更快的返回搜索結(jié)果。
文檔編號G06F17/30GK102033911SQ20101055914
公開日2011年4月27日 申請日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者佟子健, 劉龍濤, 吳明達(dá), 林燦 申請人:北京搜狗科技發(fā)展有限公司