專利名稱:數(shù)據(jù)搜索方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及搜索領(lǐng)域,具體涉及一種數(shù)據(jù)搜索方法及系統(tǒng)。
背景技術(shù):
目前,隨著計(jì)算機(jī)技術(shù)的發(fā)展和互聯(lián)網(wǎng)用戶規(guī)模的不斷擴(kuò)大,越來越多的互聯(lián)網(wǎng)用戶使用個(gè)人計(jì)算機(jī)通過互聯(lián)網(wǎng)獲得各種各樣所需的信息。同時(shí),為互聯(lián)網(wǎng)用戶提供信息服務(wù)的網(wǎng)站也越來越多,互聯(lián)網(wǎng)網(wǎng)頁的數(shù)量每天都在以驚人的速度增長,互聯(lián)網(wǎng)信息呈現(xiàn)出爆發(fā)式的增長。因此,對于用戶來說,經(jīng)常需要通過一定的手段(比如,通過搜索引擎服務(wù)),才能在浩如煙海的互聯(lián)網(wǎng)信息中迅速定位最適合自己需求的網(wǎng)站或者需要的信息。
搜索引擎的服務(wù)器通常需要根據(jù)用戶輸入的搜索詞去數(shù)據(jù)來源服務(wù)器搜索對應(yīng)的結(jié)果,并將結(jié)果提供給用戶。這里提到的數(shù)據(jù)來源服務(wù)器是指第三方服務(wù)器,用于存儲原始的網(wǎng)頁資源。
采用上述的搜索引擎服務(wù),雖然可以滿足用戶搜索數(shù)據(jù)的需求,但是,由于每次都需要去數(shù)據(jù)來源服務(wù)器查詢,因此,延長了搜索引擎搜索時(shí)耗費(fèi)的時(shí)間,導(dǎo)致用戶等待時(shí)間較長。發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)搜索方法及相應(yīng)的系統(tǒng)。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)搜索方法,包括以下步驟預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果, 將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中;獲取客戶端發(fā)送的包含搜索詞的搜索請求,將搜索請求分發(fā)到緩存數(shù)據(jù)庫中,在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果;將關(guān)鍵詞對應(yīng)的查詢結(jié)果發(fā)送給客戶端。
依據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)搜索系統(tǒng),包括通信設(shè)備、緩存數(shù)據(jù)庫以及抓取服務(wù)器,其中,抓取服務(wù)器,適于預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中;通信設(shè)備,適于接收獲取客戶端發(fā)送的包含搜索詞的搜索請求, 將搜索請求分發(fā)到緩存數(shù)據(jù)庫中,在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果,還適于將查詢結(jié)果發(fā)送給客戶端。
根據(jù)本發(fā)明的數(shù)據(jù)搜索方法及系統(tǒng),可以預(yù)先設(shè)置緩存數(shù)據(jù)庫以及匹配規(guī)則,并預(yù)先在緩存數(shù)據(jù)庫中存儲所有關(guān)鍵詞以及每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,具體搜索時(shí)只需去緩存數(shù)據(jù)庫中即可查找到對應(yīng)的結(jié)果,無需訪問數(shù)據(jù)來源服務(wù)器,由此解決了現(xiàn)有技術(shù)中搜索耗時(shí)過多,導(dǎo)致用戶等待時(shí)間過長的問題,取得了直接查詢緩存數(shù)據(jù)庫即可迅速查找4到匹配的數(shù)據(jù)的有益效果。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中
圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)搜索方法的流程圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)搜索系統(tǒng)的結(jié)構(gòu)圖;以及
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的查詢結(jié)果的示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖I示出了本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法的流程圖,如圖I所示,該方法包括以下步驟
步驟SllO :預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中。
步驟S120 :獲取客戶端發(fā)送的包含搜索詞的搜索請求,將該搜索請求分發(fā)到緩存數(shù)據(jù)庫中,在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則(例如自然語言處理分析規(guī)則,和/或正則表達(dá)式規(guī)則)查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果。
可選地,為了便于查找,緩存數(shù)據(jù)庫中存儲的關(guān)鍵詞以及每一關(guān)鍵詞對應(yīng)的查詢結(jié)果以鍵值對的方式存儲,且關(guān)鍵詞對應(yīng)的查詢結(jié)果可以是包含該關(guān)鍵詞的網(wǎng)頁對應(yīng)的數(shù)據(jù)快照,該數(shù)據(jù)快照用于存儲網(wǎng)頁的裸數(shù)據(jù)或html數(shù)據(jù)。
另外,緩存數(shù)據(jù)庫中的所有關(guān)鍵詞還可以進(jìn)一步按照預(yù)設(shè)的分類進(jìn)行存儲,則客戶端發(fā)送的搜索請求中進(jìn)一步包括搜索詞所屬的分類。相應(yīng)地,在查找與搜索詞相匹配的關(guān)鍵詞時(shí),只需在分類類別與搜索詞所屬類別相同的關(guān)鍵詞中查找,從而進(jìn)一步簡化了查找時(shí)的工作量,節(jié)約了查找時(shí)間。
而且,當(dāng)關(guān)鍵詞的查詢結(jié)果與地域相關(guān)時(shí),緩存數(shù)據(jù)庫中存儲的關(guān)鍵詞的查詢結(jié)果還可以進(jìn)一步包括與各個(gè)地域相對應(yīng)的查詢結(jié)果,這樣,在預(yù)先設(shè)置的緩存數(shù)據(jù)庫中查找關(guān)鍵詞對應(yīng)的查詢結(jié)果時(shí)進(jìn)一步包括根據(jù)客戶端發(fā)送的搜索請求中攜帶的IP地址來確定該客戶端所處的地域,并在緩存數(shù)據(jù)庫中查找與該地域相對應(yīng)的查詢結(jié)果,從而可以為客戶端發(fā)送與其所處的地域相符合的查詢結(jié)果。
步驟S130 :將步驟S120中查找到的關(guān)鍵詞對應(yīng)的查詢結(jié)果發(fā)送給該客戶端。
通過本發(fā)明的數(shù)據(jù)搜索方法,可以預(yù)先設(shè)置緩存數(shù)據(jù)庫以及匹配規(guī)則,并在緩存數(shù)據(jù)庫中存儲所有關(guān)鍵詞以及每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,因此,根據(jù)預(yù)設(shè)的緩存數(shù)據(jù)庫和匹配規(guī)則可以迅速查找到匹配的數(shù)據(jù)。
下面以一個(gè)優(yōu)選實(shí)施例詳細(xì)描述一下本發(fā)明提供的數(shù)據(jù)搜索方法。
可選地,為了提高數(shù)據(jù)搜索的精準(zhǔn)性,縮短搜索時(shí)間,在本優(yōu)選實(shí)施例中,預(yù)先將用戶可能會搜索的關(guān)鍵詞按照一定的分類規(guī)則進(jìn)行分類,相應(yīng)地,在提供給用戶的搜索界面中,可以針對每一類別,分別為用戶提供一個(gè)搜索框。例如,可以預(yù)先將搜索詞分為以下類別生活服務(wù)、投資理財(cái)以及娛樂資訊等,這樣,在搜索界面中可以進(jìn)一步包括生活服務(wù)對應(yīng)的搜索框、投資理財(cái)對應(yīng)的搜索框,以及娛樂資訊對應(yīng)的搜索框。這樣,當(dāng)用戶需要輸入搜索詞進(jìn)行搜索時(shí),會先判斷該搜索詞屬于哪一類別,然后,在該類別對應(yīng)的搜索框中輸入搜索詞。例如,當(dāng)用戶要查詢股票信息時(shí),會選擇投資理財(cái)對應(yīng)的搜索框進(jìn)行搜索,這樣, 由于在搜索時(shí)限定了搜索詞所屬的分類,搜索時(shí)僅對同一分類中的關(guān)鍵詞進(jìn)行查找,因此, 既提高了查找速度,又使得查找結(jié)果更加準(zhǔn)確,不易出現(xiàn)偏差。另外,還可以按照其他的分類方式進(jìn)行分類,例如,按照視頻、文本、圖片等方式進(jìn)行分類。而且,還可以進(jìn)一步對一個(gè)大的分類中的數(shù)據(jù)進(jìn)行細(xì)小的分類,例如,“生活服務(wù)”分類又可以進(jìn)一步細(xì)分為“天氣預(yù)報(bào)”、“車票預(yù)定”等,甚至“車票預(yù)定”又可以進(jìn)一步細(xì)分為“飛機(jī)票預(yù)定”、“火車票預(yù)定”等, 從而進(jìn)一步方便查找。
下面以生活服務(wù)這一分類為例詳細(xì)描述一下本優(yōu)選實(shí)施例中的數(shù)據(jù)搜索方法。該方法主要包括以下步驟
步驟一、預(yù)先提取“生活服務(wù)”這一分類中的關(guān)鍵詞,組成關(guān)鍵詞列表,針對該關(guān)鍵詞列表中的每一關(guān)鍵詞,將包含該關(guān)鍵詞的網(wǎng)頁所對應(yīng)的URL與該關(guān)鍵詞一起關(guān)聯(lián)存儲在該關(guān)鍵詞列表里。
具體地,在提取“生活服務(wù)”這一分類中的關(guān)鍵詞時(shí),可以根據(jù)用戶的搜索頻率來確定要提取的關(guān)鍵詞,例如,將預(yù)定時(shí)段內(nèi)(例如,上一星期之內(nèi))用戶搜索的頻率較高的搜索詞篩選出來作為關(guān)鍵詞。具體實(shí)現(xiàn)時(shí),可以設(shè)定一個(gè)搜索閾值,將預(yù)定時(shí)段內(nèi)的搜索次數(shù)大于該搜索閾值的搜索詞篩選出來作為關(guān)鍵詞。然后,針對每一關(guān)鍵詞,獲取包含該關(guān)鍵詞的網(wǎng)頁所對應(yīng)的URL信息,并將該URL信息與該關(guān)鍵詞關(guān)聯(lián)存儲。其中,對于每一關(guān)鍵詞,包含該關(guān)鍵詞的網(wǎng)頁的數(shù)量可能是一個(gè),也可能是多個(gè),當(dāng)網(wǎng)頁數(shù)量為多個(gè)時(shí),還可以進(jìn)一步判定多個(gè)網(wǎng)頁中的內(nèi)容是否重復(fù),當(dāng)多個(gè)網(wǎng)頁中的內(nèi)容重復(fù)時(shí),只要挑選其中的一個(gè)網(wǎng)頁的URL進(jìn)行存儲即可,這樣,既可以避免因存儲的數(shù)據(jù)量過大而占用存儲空間過多的問題, 也可以在用戶搜索時(shí)縮短查詢時(shí)間。
步驟二、根據(jù)步驟一中生成的關(guān)鍵詞列表,訪問外部的數(shù)據(jù)來源服務(wù)器,獲取該數(shù)據(jù)來源服務(wù)器中存儲的與URL對應(yīng)的網(wǎng)頁數(shù)據(jù),并根據(jù)獲取的網(wǎng)頁數(shù)據(jù)生成該網(wǎng)頁對應(yīng)的數(shù)據(jù)快照,將該數(shù)據(jù)快照作為與URL對應(yīng)的關(guān)鍵詞的查詢結(jié)果,每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中。
具體地,網(wǎng)絡(luò)爬蟲根據(jù)關(guān)鍵詞列表中存儲的與關(guān)鍵詞對應(yīng)的URL,到數(shù)據(jù)來源服務(wù)器中抓取與URL對應(yīng)的網(wǎng)頁數(shù)據(jù),抓取后會對網(wǎng)頁數(shù)據(jù)進(jìn)行分析并拍照,形成該網(wǎng)頁對應(yīng)的數(shù)據(jù)快照。該數(shù)據(jù)快照中包含該URL對應(yīng)的關(guān)鍵詞,因此,將該數(shù)據(jù)快照作為該關(guān)鍵詞對應(yīng)的查詢結(jié)果,與該關(guān)鍵詞一起關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中。其中,數(shù)據(jù)快照具體用來存儲網(wǎng)頁的裸數(shù)據(jù)或html數(shù)據(jù),采用數(shù)據(jù)快照進(jìn)行存儲的方式具有訪問速度快、便于顯示的優(yōu)
具體存儲時(shí),為了 方便查找,可以通過鍵值對(key-value)的方式存儲,S卩,將關(guān)鍵詞作為key,將該關(guān)鍵詞對應(yīng)的查詢結(jié)果(即數(shù)據(jù)快照)作為value。或者,也可以對關(guān)鍵詞及該關(guān)鍵詞所屬的分類進(jìn)行加密運(yùn)算,將得到的加密結(jié)果作為key,將該關(guān)鍵詞對應(yīng)的查詢結(jié)果作為value。例如,假設(shè)關(guān)鍵詞為“楓葉”,其所屬的分類為圖片,加密運(yùn)算為md5運(yùn)算, 則只需對“楓葉”和“圖片”進(jìn)行md5運(yùn)算,將得到的運(yùn)算結(jié)果作為key即可。鍵值對其實(shí)是指一種數(shù)據(jù)存儲方式,該數(shù)據(jù)存儲方式能夠通過key-value的模式實(shí)現(xiàn)直接映射,具體實(shí)現(xiàn)時(shí),按照redis結(jié)構(gòu)將鍵值對存儲在內(nèi)存中即可。通過鍵值對的方式進(jìn)行存儲的存儲速度快,且讀取效率高。
步驟三、獲取用戶通過客戶端發(fā)送的包含搜索詞的搜索請求,將搜索請求分發(fā)到上述的緩存數(shù)據(jù)庫中,并在上述的緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與輸入的搜索詞相匹配的關(guān)鍵詞,以及該關(guān)鍵詞對應(yīng)的查詢結(jié)果。
具體地,在接收到包含搜索詞的搜索請求后,需要在緩存數(shù)據(jù)庫中查找與該搜索詞相匹配的關(guān)鍵詞。本實(shí)施例中在判斷搜索詞與關(guān)鍵詞是否匹配時(shí),是根據(jù)預(yù)設(shè)的匹配規(guī)則進(jìn)行判斷的。
其中,該預(yù)設(shè)的匹配規(guī)則可以是自然語言處理分析規(guī)則(簡稱NLP),或者,也可以是正則表達(dá)式規(guī)則,或者,也可以是二者的結(jié)合。其中,自然語言處理分析規(guī)則大致分為兩個(gè)層面,一個(gè)是淺層分析,如分詞,詞性標(biāo)注,通常只需對句子的局部范圍進(jìn)行分析處理;另一個(gè)層面是對語言進(jìn)行深層的處理,需要對句子進(jìn)行全局分析,在分析時(shí)通常對句法、語義以及語用這三個(gè)層次進(jìn)行分析。正則表達(dá)式規(guī)則一般是通過一些具有特定含義的字符來表示匹配規(guī)則的,例如,字符“ ~ ”匹配一個(gè)輸入或一行的開頭,如“ ~a”匹配“an A”,而不匹配 “An a”;字符“$”匹配一個(gè)輸入或一行的結(jié)尾,如“a$”匹配“An a”,而不匹配“an A”;字符匹配前面元字符O次或多次,如“ba*”將匹配“b”,“ba”,“baa”以及“baaa”等。通常情況下,自然語言處理分析規(guī)則主要用來解決同義詞的問題,正則表達(dá)式規(guī)則主要用來處理長尾詞。另外,還可以自定義一些匹配規(guī)則。例如,在本實(shí)施例中,可以預(yù)先定義“手機(jī)衛(wèi)士”以及“手機(jī)衛(wèi)士”都對應(yīng)“360手機(jī)衛(wèi)士”。通過匹配規(guī)則的設(shè)置,可以準(zhǔn)確地確定與用戶輸入的搜索詞相匹配的關(guān)鍵詞,而且,當(dāng)用戶輸入搜索詞時(shí)有少許偏差,例如,搜索詞中有一個(gè)錯(cuò)別字或丟掉了一個(gè)字,這時(shí),根據(jù)自然語言處理分析規(guī)則,仍然可以確定出用戶實(shí)際想要的關(guān)鍵詞。
通俗地說,這種按照預(yù)設(shè)的匹配規(guī)則在緩存數(shù)據(jù)庫中查找與該搜索詞相匹配的關(guān)鍵詞的實(shí)現(xiàn)方式,就相當(dāng)于預(yù)先在緩存數(shù)據(jù)庫中建立了一個(gè)“詞池”(即步驟二中以鍵值對方式存儲的關(guān)鍵詞的集合),該“詞池”中預(yù)先存儲了所有熱門的關(guān)鍵詞,這些關(guān)鍵詞可以按照redis結(jié)構(gòu)分類存儲。當(dāng)獲取到搜索請求中的搜索詞之后,按照一定的模式識別方式(例如正則表達(dá)式匹配)在這個(gè)“詞池”中查找與該搜索詞匹配的關(guān)鍵詞,并獲取該關(guān)鍵詞對應(yīng)的查詢結(jié)果。
通過上述匹配規(guī)則確定出與輸入的搜索詞相匹配的關(guān)鍵詞之后,進(jìn)一步在緩存數(shù)據(jù)庫中查找該關(guān)鍵詞的查詢結(jié)果。
步驟四、將查找到的與輸入的搜索詞相匹配的關(guān)鍵詞以及該關(guān)鍵詞的查詢結(jié)果發(fā)送給該客戶端。
客戶端接收到該關(guān)鍵詞以及該關(guān)鍵詞的查詢結(jié)果后,將查詢結(jié)果顯示給用戶。
通過上面的步驟就實(shí)現(xiàn)了本發(fā)明提供的數(shù)據(jù)搜索方法??蛇x地,由于某些類型的關(guān)鍵詞的查詢結(jié)果是與地域相關(guān)的,例如,對于“天氣預(yù)報(bào)”這一關(guān)鍵詞來說,北京的天氣與深圳的天氣通常是不同的,因此,“天氣預(yù)報(bào)”這一關(guān)鍵詞的查詢結(jié)果就是與地域相關(guān)的,對于這樣的關(guān)鍵詞,在緩存數(shù)據(jù)庫中存儲對應(yīng)的查詢結(jié)果時(shí),需要分別存儲與各個(gè)地域相對應(yīng)的查詢結(jié)果,即需要同時(shí)存儲北京、深圳甚至其他地區(qū)的天氣情況。相應(yīng)地,當(dāng)用戶輸入的搜索詞與地域相關(guān)時(shí),例如,當(dāng)用戶輸入“天氣”時(shí),本實(shí)施例中的方法進(jìn)一步包括根據(jù)包含“天氣”這一搜索詞的搜索請求中攜帶的IP地址來確定發(fā)送搜索請求的客戶端所處的地域,然后,在緩存數(shù)據(jù)庫中查找與該地域相對應(yīng)的查詢結(jié)果。例如,如果發(fā)送搜索請求的客戶端的IP地址顯示為北京,則向該客戶端返回的查詢結(jié)果默認(rèn)為北京的天氣情況。通過判斷客戶端的IP地址,并提供與該IP地址相對應(yīng)的查詢結(jié)果,可以使查詢結(jié)果更加符合用戶的需求。
另外,本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法還可以進(jìn)一步為用戶提供補(bǔ)全搜索詞的服務(wù),即,當(dāng)用戶輸入的搜索詞僅為一部分時(shí),可以自動地根據(jù)存儲的關(guān)鍵詞將搜索詞補(bǔ)全并提示給用戶。例如,當(dāng)用戶在生活服務(wù)類別的搜索框中輸入“火車”時(shí),可以自動為用戶提示“火車票”以供用戶選擇,或者,也可以進(jìn)一步向用戶推薦多個(gè)與“火車”相關(guān)的詞匯供用戶選擇。
另外,為了進(jìn)一步確保查詢結(jié)果的全面性,本發(fā)明實(shí)施例中提供的數(shù)據(jù)搜索方法在獲取到客戶端發(fā)送的包含搜索詞的搜索請求的步驟之后,進(jìn)一步包括步驟將搜索請求分發(fā)到搜索服務(wù)器,獲取搜索服務(wù)器從外部的數(shù)據(jù)來源服務(wù)器查找到的搜索詞對應(yīng)的查詢結(jié)果。相應(yīng)地,當(dāng)在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找到的與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果的數(shù)量少于預(yù)設(shè)數(shù)量時(shí),該方法進(jìn)一步包括將獲取的搜索服務(wù)器的查詢結(jié)果發(fā)送給客戶端,其中,搜索服務(wù)器的查詢結(jié)果用于作為緩存數(shù)據(jù)庫的查詢結(jié)果的補(bǔ)充。具體地,每當(dāng)獲取到搜索請求后,同時(shí)將該搜索請求分發(fā)給搜索服務(wù)器,由該搜索服務(wù)器直接訪問外部的數(shù)據(jù)來源服務(wù)器,得到查詢結(jié)果,然后,對從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果以及搜索服務(wù)器中獲取的查詢結(jié)果進(jìn)行合并,并根據(jù)需要選擇是否采用自然搜索服務(wù)器的查詢結(jié)果作為對緩存數(shù)據(jù)庫中的查詢結(jié)果的補(bǔ)充。例如,當(dāng)從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果的數(shù)量少于預(yù)設(shè)數(shù)量時(shí),將獲取的搜索服務(wù)器的查詢結(jié)果發(fā)送給客戶端作為補(bǔ)充。 舉例來說,假設(shè)客戶端的結(jié)果顯示頁面中通常在一頁上顯示10條查詢結(jié)果,這樣,如果從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果不足十個(gè)(例如查詢結(jié)果小于10個(gè),甚至查詢結(jié)果為0),則需要從搜索服務(wù)器獲取的查詢結(jié)果中挑選一定數(shù)量的查詢結(jié)果進(jìn)行補(bǔ)充,具體挑選時(shí),可以根據(jù)查詢結(jié)果的相關(guān)度或熱門度確定挑選順序。通過這樣的方式,由于搜索服務(wù)器可以從外部的數(shù)據(jù)來源服務(wù)器進(jìn)行更廣泛地搜索,因而既可以在通常情況下(即緩存數(shù)據(jù)庫緩存了用戶要查找的詞匯)為用戶提供更加高效快捷的服務(wù),又可以在特殊情況下(即緩存數(shù)據(jù)庫沒有緩存用戶要查找的詞匯或緩存內(nèi)容的數(shù)量不夠豐富),實(shí)現(xiàn)更加全面地搜索,以滿足用戶多樣化的搜索需求。
圖2示出了本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,該數(shù)據(jù)搜索系統(tǒng)200包括通信設(shè)備210、緩存數(shù)據(jù)庫220以及抓取服務(wù)器230。其中,抓取服務(wù)器230預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器300獲取關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中。通信設(shè)備210獲取客戶端100發(fā)送的包含搜索詞的搜索請求,將搜索請求分發(fā)到緩存數(shù)據(jù)庫中,在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果,將查詢結(jié)果發(fā)送給客戶端100。
可選地,為了便于查找,緩存數(shù)據(jù)庫中存儲的關(guān)鍵詞以及每一關(guān)鍵詞對應(yīng)的查詢結(jié)果以鍵值對的方式存儲,且關(guān)鍵詞對應(yīng)的查詢結(jié)果可以是包含該關(guān)鍵詞的網(wǎng)頁對應(yīng)的數(shù)據(jù)快照。
而且,當(dāng)關(guān)鍵詞的查詢結(jié)果與地域相關(guān)時(shí),緩存數(shù)據(jù)庫230中存儲的關(guān)鍵詞的查詢結(jié)果還可以進(jìn)一步包括與各個(gè)地域相對應(yīng)的查詢結(jié)果,這樣,查找模塊220在預(yù)先設(shè)置的緩存數(shù)據(jù)庫230中查找關(guān)鍵詞對應(yīng)的查詢結(jié)果時(shí),進(jìn)一步根據(jù)客戶端100發(fā)送的搜索請求中攜帶的IP地址來確定該客戶端100所處的地域,并在緩存數(shù)據(jù)庫230中查找與該地域相對應(yīng)的查詢結(jié)果,從而可以為客戶端100發(fā)送與其所處的地域相符合的查詢結(jié)果。
下面詳細(xì)描述一下本發(fā)明提供的數(shù)據(jù)搜索系統(tǒng)。
可選地,為了提高數(shù)據(jù)搜索的精準(zhǔn)性,縮短搜索時(shí)間,在本實(shí)施例中,預(yù)先將用戶可能會搜索的關(guān)鍵詞按照一定的分類規(guī)則進(jìn)行分類,相應(yīng)地,在提供給用戶的搜索界面中, 針對每一類別,分別為用戶提供一個(gè)搜索框。例如,可以預(yù)先將搜索詞分為以下類別生活服務(wù)、投資理財(cái)以及娛樂資訊等,這樣,在搜索界面中可以進(jìn)一步包括生活服務(wù)對應(yīng)的搜索框、投資理財(cái)對應(yīng)的搜索框,以及娛樂資訊對應(yīng)的搜索框。這樣,當(dāng)用戶需要輸入搜索詞進(jìn)行搜索時(shí),會先判斷該搜索詞屬于哪一類別,然后,在該類別對應(yīng)的搜索框中輸入搜索詞。 例如,當(dāng)用戶要查詢股票信息時(shí),會選擇投資理財(cái)對應(yīng)的搜索框進(jìn)行搜索,這樣,由于在搜索時(shí)限定了搜索詞所屬的分類,搜索時(shí)僅對同一分類中的關(guān)鍵詞進(jìn)行查找,因此,既提高了查找速度,又使得查找結(jié)果更加準(zhǔn)確,不易出現(xiàn)偏差。另外,還可以按照其他的分類方式進(jìn)行分類,例如,按照視頻、文本、圖片等方式進(jìn)行分類。
下面以生活服務(wù)這一分類為例詳細(xì)描述一下本實(shí)施例中的數(shù)據(jù)搜索系統(tǒng)的工作原理。
首先,需要由抓取服務(wù)器230預(yù)先提取“生活服務(wù)”這一分類中的關(guān)鍵詞,組成關(guān)鍵詞列表,針對該關(guān)鍵詞列表中的每一關(guān)鍵詞,將包含該關(guān)鍵詞的網(wǎng)頁所對應(yīng)的URL與該關(guān)鍵詞一起關(guān)聯(lián)存儲在該關(guān)鍵詞列表里。
具體地,在提取“生活服務(wù)”這一分類中的關(guān)鍵詞時(shí),抓取服務(wù)器230可以根據(jù)用戶的搜索頻率來確定要提取的關(guān)鍵詞,例如,將預(yù)定時(shí)段內(nèi)(例如,上一星期之內(nèi))用戶搜索的頻率較高的搜索詞篩選出來作為關(guān)鍵詞,其中,可以通過通信設(shè)備來完成對搜索詞的搜索頻率的統(tǒng)計(jì)。具體實(shí)現(xiàn)時(shí),可以設(shè)定一個(gè)搜索閾值,將預(yù)定時(shí)段內(nèi)的搜索次數(shù)大于該搜索閾值的搜索詞篩選出來作為關(guān)鍵詞。然后,針對每一關(guān)鍵詞,由抓取服務(wù)器230獲取包含該關(guān)鍵詞的網(wǎng)頁所對應(yīng)的URL信息,并將該URL信息與該關(guān)鍵詞關(guān)聯(lián)存儲。其中,對于每一關(guān)鍵詞,包含該關(guān)鍵詞的網(wǎng)頁的數(shù)量可能是一個(gè),也可能是多個(gè),當(dāng)網(wǎng)頁數(shù)量為多個(gè)時(shí),還可以進(jìn)一步判定多個(gè)網(wǎng)頁中的內(nèi)容是否重復(fù),當(dāng)多個(gè)網(wǎng)頁中的內(nèi)容重復(fù)時(shí),只要挑選其中的一個(gè)網(wǎng)頁的URL進(jìn)行存儲即可,這樣,既可以避免因存儲的數(shù)據(jù)量過大而占用存儲空間過多的問題,也可以在用戶搜索時(shí)縮短查詢時(shí)間。
然后,抓取服務(wù)器230根據(jù)生成的關(guān)鍵詞列表,訪問外部的數(shù)據(jù)來源服務(wù)器300, 獲取該數(shù)據(jù)來源服務(wù)器300中存儲的與URL對應(yīng)的網(wǎng)頁數(shù)據(jù),并根據(jù)獲取的網(wǎng)頁數(shù)據(jù)生成該網(wǎng)頁對應(yīng)的數(shù)據(jù)快照,將該數(shù)據(jù)快照與URL對應(yīng)的關(guān)鍵詞關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫220中。
具體地,網(wǎng)絡(luò)爬蟲根據(jù)關(guān)鍵詞列表中存儲的與關(guān)鍵詞對應(yīng)的URL,到數(shù)據(jù)來源服務(wù)器300中抓取與URL對應(yīng)的網(wǎng)頁數(shù)據(jù),抓取后會對網(wǎng)頁數(shù)據(jù)進(jìn)行分析并拍照,形成該網(wǎng)頁對應(yīng)的數(shù)據(jù)快照。該數(shù)據(jù)快照中包含該URL對應(yīng)的關(guān)鍵詞,因此,將該數(shù)據(jù)快照作為該關(guān)鍵詞對應(yīng)的查詢結(jié)果,與該關(guān)鍵詞一起關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中。具體存儲時(shí),為了方便查找, 可以在緩存數(shù)據(jù)庫230中通過鍵值對(key-value)的方式存儲,S卩,將關(guān)鍵詞作為key,將該關(guān)鍵詞對應(yīng)的查詢結(jié)果(即數(shù)據(jù)快照)作為value。
通過上面的方式,該數(shù)據(jù)搜索系統(tǒng)就建立起了緩存數(shù)據(jù)庫220,上面只是以“生活服務(wù)”這一個(gè)類別為例進(jìn)行說明的,實(shí)際上,對于其他類別的關(guān)鍵詞以及查詢結(jié)果的獲取, 也是通過類似的方式實(shí)現(xiàn)的。
緩存數(shù)據(jù)庫220建立好之后,該系統(tǒng)就可以通過通信設(shè)備210獲取用戶通過客戶端100發(fā)送的包含搜索詞的搜索請求,將搜索請求分發(fā)到緩存數(shù)據(jù)庫220中,在上述的緩存數(shù)據(jù)庫220中按照預(yù)設(shè)的匹配規(guī)則查找與輸入的搜索詞相匹配的關(guān)鍵詞,以及該關(guān)鍵詞對應(yīng)的查詢結(jié)果。
具體地,在通信設(shè)備210接收到包含搜索詞的搜索請求后,需要在緩存數(shù)據(jù)庫220 中查找與該搜索詞相匹配的關(guān)鍵詞。本實(shí)施例中在判斷搜索詞與關(guān)鍵詞是否匹配時(shí),是根據(jù)預(yù)設(shè)的匹配規(guī)則進(jìn)行判斷的。
其中,該預(yù)設(shè)的匹配規(guī)則可以是自然語言處理分析規(guī)則(簡稱NLP),或者,也可以是正則表達(dá)式規(guī)則,或者,也可以是二者的結(jié)合。其中,自然語言處理分析規(guī)則大致分為兩個(gè)層面,一個(gè)是淺層分析,如分詞,詞性標(biāo)注,通常只需對句子的局部范圍進(jìn)行分析處理;另一個(gè)層面是對語言進(jìn)行深層的處理,需要對句子進(jìn)行全局分析,在分析時(shí)通常對句法、語義以及語用這三個(gè)層次進(jìn)行分析。正則表達(dá)式規(guī)則一般是通過一些具有特定含義的字符來表示匹配規(guī)則的,例如,字符“ ~ ”匹配一個(gè)輸入或一行的開頭,如“ ~a”匹配“an A”,而不匹配 “An a”;字符“$”匹配一個(gè)輸入或一行的結(jié)尾,如“a$”匹配“An a”,而不匹配“an A”;字符匹配前面元字符O次或多次,如“ba*”將匹配“b”,“ba”,“baa”以及“baaa”等。另外,還可以自定義一些匹配規(guī)則。例如,在本實(shí)施例中,可以預(yù)先定義“手機(jī)衛(wèi)士”以及“手機(jī)衛(wèi)士”都對應(yīng)“360手機(jī)衛(wèi)士”。通過匹配規(guī)則的設(shè)置,可以準(zhǔn)確地確定與用戶輸入的搜索詞相匹配的關(guān)鍵詞,而且,當(dāng)用戶輸入搜索詞時(shí)有少許偏差,例如,搜索詞中有一個(gè)錯(cuò)別字或丟掉了一個(gè)字,這時(shí),根據(jù)自然語言處理分析規(guī)則,仍然可以確定出用戶實(shí)際想要的關(guān)鍵ο
通信設(shè)備210通過上述匹配規(guī)則確定出與輸入的搜索詞相匹配的關(guān)鍵詞之后,進(jìn)一步在緩存數(shù)據(jù)庫230中查找該關(guān)鍵詞的查詢結(jié)果,然后,通信設(shè)備210將查找到的與輸入的搜索詞相匹配的關(guān)鍵詞以及該關(guān)鍵詞的查詢結(jié)果發(fā)送給該客戶端100??蛻舳?00接收到該關(guān)鍵詞以及該關(guān)鍵詞的查詢結(jié)果后,將查詢結(jié)果顯示給用戶。
圖3示出了當(dāng)客戶端發(fā)送的搜索請求中包含的搜索詞為“蜘蛛俠”時(shí)顯示的查詢結(jié)果的示意圖。通過圖3可以看出,當(dāng)用戶輸入“蜘蛛俠”時(shí),本發(fā)明提供的數(shù)據(jù)搜索方法及系統(tǒng)會為用戶提供圖3中的四個(gè)包含蜘蛛俠的視頻內(nèi)容。這四個(gè)視頻的共同特點(diǎn)是在內(nèi)容簡介部分都包含“蜘蛛俠”三個(gè)字,與搜索詞匹配,因此,作為查詢結(jié)果提供給用戶。
在上面描述的數(shù)據(jù)搜索系統(tǒng)中,抓取服務(wù)器230還可以進(jìn)一步按照預(yù)設(shè)的頻率對關(guān)鍵詞列表中的關(guān)鍵詞和/或關(guān)鍵詞對應(yīng)的查詢結(jié)果進(jìn)行更新。例如,可以設(shè)置每天或每星期進(jìn)行一次更新,具體實(shí)現(xiàn)時(shí),可以從如下兩方面進(jìn)行更新第一個(gè)方面為,每隔一段時(shí)間后,將近期用戶搜索頻率較高的搜索詞添加到關(guān)鍵詞列表中,并獲取新添加的關(guān)鍵詞的查詢結(jié)果,也就是對關(guān)鍵詞列表中的關(guān)鍵詞數(shù)量進(jìn)行更新,以確保及時(shí)加入近期較熱門的搜索詞;第二個(gè)方面為,每隔一段時(shí)間后,針對關(guān)鍵詞列表中現(xiàn)有的關(guān)鍵詞,重新從數(shù)據(jù)來源服務(wù)器上獲取每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,也就是對關(guān)鍵詞列表中每一關(guān)鍵詞的查詢結(jié)果進(jìn)行更新,以確保所有關(guān)鍵詞的查詢結(jié)果都是比較新的。
而且,在上面描述的數(shù)據(jù)搜索系統(tǒng)中,緩存數(shù)據(jù)庫中還可以進(jìn)一步包括排序模塊, 用于對緩存數(shù)據(jù)庫中的關(guān)鍵詞進(jìn)行排序。具體排序時(shí),可以根據(jù)一定的時(shí)間段內(nèi)(例如一天、一月等)用戶的點(diǎn)擊頻次來確定關(guān)鍵詞的排列順序。或者,也可以為每個(gè)關(guān)鍵詞設(shè)置一個(gè)權(quán)重,根據(jù)權(quán)重的大小來確定關(guān)鍵詞的排列順序。具體地,在確定每個(gè)關(guān)鍵詞的權(quán)重時(shí), 可以結(jié)合多方面的因素來確定,例如,結(jié)合關(guān)鍵詞的搜索頻率、關(guān)鍵詞的重要性和/或一定時(shí)間段內(nèi)用戶的點(diǎn)擊頻次來確定。通過對緩存數(shù)據(jù)庫中的關(guān)鍵詞進(jìn)行排序,可以使用戶優(yōu)選找到最符合需求的關(guān)鍵詞,能夠提高查找效率。
另外,為了進(jìn)一步確保查詢結(jié)果的全面性,本發(fā)明實(shí)施例中提供的數(shù)據(jù)搜索系統(tǒng)還可以進(jìn)一步包括搜索服務(wù)器(圖中未示出)。該搜索服務(wù)器一端與通信設(shè)備210相連,另一端與外部的數(shù)據(jù)來源服務(wù)器相連,用于從外部的數(shù)據(jù)來源服務(wù)器查找搜索詞對應(yīng)的查詢結(jié)果。具體地,每當(dāng)通信設(shè)備210接收到搜索請求后,同時(shí)將該搜索請求分發(fā)給該搜索服務(wù)器,由該搜索服務(wù)器直接訪問外部的數(shù)據(jù)來源服務(wù)器,得到查詢結(jié)果,并將該查詢結(jié)果提供給通信設(shè)備210,由通信設(shè)備210對從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果以及搜索服務(wù)器中獲取的查詢結(jié)果進(jìn)行合并,并根據(jù)需要選擇是否采用自然搜索服務(wù)器的查詢結(jié)果作為對緩存數(shù)據(jù)庫中的查詢結(jié)果的補(bǔ)充。也就是說,通信設(shè)備210具有分發(fā)合并的功能。例如,當(dāng)通信設(shè)備210從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果的數(shù)量少于預(yù)設(shè)數(shù)量時(shí),將獲取的搜索服務(wù)器的查詢結(jié)果發(fā)送給客戶端作為補(bǔ)充。舉例來說,假設(shè)客戶端的結(jié)果顯示頁面中通常在一頁上顯示10條查詢結(jié)果,這樣,如果通信設(shè)備210從緩存數(shù)據(jù)庫中獲取的查詢結(jié)果不足十個(gè)(例如查詢結(jié)果小于10個(gè),甚至查詢結(jié)果為0),則需要從搜索服務(wù)器獲取的查詢結(jié)果中挑選一定數(shù)量的查詢結(jié)果進(jìn)行補(bǔ)充,具體挑選時(shí),可以根據(jù)查詢結(jié)果的相關(guān)度或熱門度確定挑選順序。通過這樣的方式,可以實(shí)現(xiàn)更加全面地搜索,從而為用戶提供更多的搜索結(jié)果。
本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法及系統(tǒng),在搜索之前,可以預(yù)先對所有的關(guān)鍵詞進(jìn)行分類,然后,在緩存數(shù)據(jù)庫中將關(guān)鍵詞按照類別進(jìn)行存儲,這樣,用戶在輸入搜索詞時(shí),可以在該搜索詞所屬分類對應(yīng)的搜索框中進(jìn)行搜索,這樣,本發(fā)明中的數(shù)據(jù)搜索方法及系統(tǒng)則只對該分類中的關(guān)鍵詞進(jìn)行查詢,這一方式也被稱為垂直領(lǐng)域搜索。采用這種方式, 一方面,由于只查詢一個(gè)分類中的關(guān)鍵詞,無需檢索全部的關(guān)鍵詞,因此,提高了查詢的速度。另一方面,由于確定了搜索詞所屬的分類,不會錯(cuò)誤地將其他類別的查詢結(jié)果誤當(dāng)作用戶輸入的搜索詞的查詢結(jié)果,因此,還提高了查詢的精準(zhǔn)度,關(guān)于這一點(diǎn),當(dāng)搜索詞有可能同時(shí)屬于多個(gè)類別時(shí)尤為重要。
而且,本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法及系統(tǒng),在緩存數(shù)據(jù)庫中通過鍵值對的11方式存儲關(guān)鍵詞和對應(yīng)的查詢結(jié)果,這種存儲方式簡單明了,占用存儲空間小,且算法簡單、檢索速度快,從而進(jìn)一步提高了查詢的速度。
另外,本實(shí)施例提供的數(shù)據(jù)搜索方法及系統(tǒng),預(yù)先將關(guān)鍵詞及其對應(yīng)的查詢結(jié)果以數(shù)據(jù)快照的方式存儲在了本地的緩存數(shù)據(jù)庫中,因此,向用戶提供服務(wù)時(shí),無需再訪問數(shù)據(jù)來源服務(wù)器,只需訪問本地的緩存數(shù)據(jù)庫即可,由此降低了合作數(shù)據(jù)服務(wù)(即數(shù)據(jù)來源服務(wù)器)的壓力。而且,由于有了緩存數(shù)據(jù)庫,網(wǎng)絡(luò)爬蟲只需在向緩存數(shù)據(jù)庫中存儲關(guān)鍵詞的階段去數(shù)據(jù)來源服務(wù)器上抓取數(shù)據(jù)即可,而在后續(xù)處理用戶搜索請求時(shí),該系統(tǒng)只要根據(jù)緩存數(shù)據(jù)庫上已經(jīng)存儲的數(shù)據(jù)就可以為用戶提供查詢服務(wù),不必像常規(guī)的搜索方式那樣, 需要每次在處理用戶搜索請求時(shí)都由網(wǎng)絡(luò)爬蟲去數(shù)據(jù)來源服務(wù)器上抓取數(shù)據(jù),從而也減輕了網(wǎng)絡(luò)爬蟲的爬取壓力。而且,由于本發(fā)明中的緩存數(shù)據(jù)庫中的關(guān)鍵詞可以按照分類進(jìn)行存儲,因此還進(jìn)一步減輕了網(wǎng)絡(luò)爬蟲爬取垂直數(shù)據(jù)(同一分類下的數(shù)據(jù))的壓力。通過上述方式,有利于提高查詢速度。
另外,本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法及系統(tǒng),在確定與搜索詞相匹配的關(guān)鍵詞時(shí),預(yù)先定義了匹配規(guī)則,例如,自然語言處理分析規(guī)則或正則表達(dá)式規(guī)則,這樣,在匹配時(shí)即使用戶輸入的搜索詞有少許誤差,也可以精準(zhǔn)地匹配到合適的關(guān)鍵詞,從而提高了查詢的精準(zhǔn)度。
綜上所述,本發(fā)明實(shí)施例提供的數(shù)據(jù)搜索方法及系統(tǒng),提高了查詢速度以及查詢的精準(zhǔn)度。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此, 遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)搜索系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種數(shù)據(jù)搜索方法,包括以下步驟預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取所述關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中;獲取客戶端發(fā)送的包含搜索詞的搜索請求,將所述搜索請求分發(fā)到所述緩存數(shù)據(jù)庫中,在所述緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與所述搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果;將所述關(guān)鍵詞對應(yīng)的查詢結(jié)果發(fā)送給所述客戶端。
2.如權(quán)利要求I所述的方法,所述預(yù)設(shè)的匹配規(guī)則包括自然語言處理分析規(guī)則,和/ 或正則表達(dá)式規(guī)則。
3.如權(quán)利要求I或2所述的方法,所述緩存數(shù)據(jù)庫中的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果以鍵值對的方式存儲。
4.如權(quán)利要求3所述的方法,其中,所述緩存數(shù)據(jù)庫中的關(guān)鍵詞按照預(yù)設(shè)的分類存儲, 則所述將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中進(jìn)一步包括確定每一關(guān)鍵詞所屬的分類;針對每一關(guān)鍵詞,對該關(guān)鍵詞及其所屬的分類進(jìn)行加密運(yùn)算,將得到的加密結(jié)果作為鍵,將該關(guān)鍵詞對應(yīng)的查詢結(jié)果作為所述鍵對應(yīng)的值。
5.如權(quán)利要求1-4中任一個(gè)所述的方法,當(dāng)所述緩存數(shù)據(jù)庫中的關(guān)鍵詞按照預(yù)設(shè)的分類存儲時(shí),所述搜索請求中進(jìn)一步包括搜索詞所屬的分類;則查找與所述搜索詞相匹配的關(guān)鍵詞時(shí),在分類與所述搜索詞所屬分類相同的關(guān)鍵詞中查找。
6.如權(quán)利要求1-5中任一個(gè)所述的方法,所述關(guān)鍵詞對應(yīng)的查詢結(jié)果是包含所述關(guān)鍵詞的網(wǎng)頁對應(yīng)的數(shù)據(jù)快照,所述數(shù)據(jù)快照用于存儲網(wǎng)頁的裸數(shù)據(jù)或html數(shù)據(jù)。
7.如權(quán)利要求1-6中任一個(gè)所述的方法,當(dāng)所述關(guān)鍵詞的查詢結(jié)果與地域相關(guān)時(shí),所述緩存數(shù)據(jù)庫中存儲的所述關(guān)鍵詞的查詢結(jié)果進(jìn)一步包括與各個(gè)地域相對應(yīng)的查詢結(jié)果,則在緩存數(shù)據(jù)庫中查找所述關(guān)鍵詞對應(yīng)的查詢結(jié)果進(jìn)一步包括根據(jù)所述搜索請求中攜帶的IP地址確定所述客戶端所處的地域,在緩存數(shù)據(jù)庫中查找與所述地域相對應(yīng)的查詢結(jié)果。
8.如權(quán)利要求1-7中任一個(gè)所述的方法,所述獲取客戶端發(fā)送的包含搜索詞的搜索請求的步驟之后,進(jìn)一步包括將所述搜索請求分發(fā)到搜索服務(wù)器,獲取所述搜索服務(wù)器從外部的數(shù)據(jù)來源服務(wù)器查找到的所述搜索詞對應(yīng)的查詢結(jié)果;當(dāng)在所述緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找到的與所述搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果的數(shù)量少于預(yù)設(shè)數(shù)量時(shí),該方法進(jìn)一步包括將獲取的搜索服務(wù)器的查詢結(jié)果發(fā)送給所述客戶端,其中,所述搜索服務(wù)器的查詢結(jié)果用于作為所述緩存數(shù)據(jù)庫的查詢結(jié)果的補(bǔ)充。
9.一種數(shù)據(jù)搜索系統(tǒng),包括通信設(shè)備、緩存數(shù)據(jù)庫以及抓取服務(wù)器,其中,抓取服務(wù)器,適于預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取所述關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在所述緩存數(shù)據(jù)庫中;通信設(shè)備,適于獲取客戶端發(fā)送的包含搜索詞的搜索請求,將所述搜索請求分發(fā)到所述緩存數(shù)據(jù)庫中,在所述緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與所述搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果,還適于將所述查詢結(jié)果發(fā)送給所述客戶端。
10.如權(quán)利要求9所述的系統(tǒng),所述預(yù)設(shè)的匹配規(guī)則包括自然語言處理分析規(guī)則,和/ 或正則表達(dá)式規(guī)則。
11.如權(quán)利要求9或10所述的系統(tǒng),所述緩存數(shù)據(jù)庫適于將所述關(guān)鍵詞及其對應(yīng)的查詢結(jié)果以鍵值對的方式存儲。
12.如權(quán)利要求11中任一個(gè)所述的系統(tǒng),所述緩存數(shù)據(jù)庫中的關(guān)鍵詞按照預(yù)設(shè)的分類存儲,則所述緩存數(shù)據(jù)庫進(jìn)一步適于確定每一關(guān)鍵詞所屬的分類;針對每一關(guān)鍵詞,對該關(guān)鍵詞及其所屬的分類進(jìn)行加密運(yùn)算,將得到的加密結(jié)果作為鍵,將該關(guān)鍵詞對應(yīng)的查詢結(jié)果作為所述鍵對應(yīng)的值。
13.如權(quán)利要求9-12中任一個(gè)所述的系統(tǒng),所述關(guān)鍵詞對應(yīng)的查詢結(jié)果是包含所述關(guān)鍵詞的網(wǎng)頁對應(yīng)的數(shù)據(jù)快照,所述數(shù)據(jù)快照用于存儲網(wǎng)頁的裸數(shù)據(jù)或html數(shù)據(jù)。
14.如權(quán)利要求9-13中任一個(gè)所述的系統(tǒng),當(dāng)所述關(guān)鍵詞的查詢結(jié)果與地域相關(guān)時(shí), 所述緩存數(shù)據(jù)庫中存儲的所述關(guān)鍵詞的查詢結(jié)果進(jìn)一步包括與各個(gè)地域相對應(yīng)的查詢結(jié)果,則所述查找模塊進(jìn)一步適于根據(jù)所述搜索請求中攜帶的IP地址確定所述客戶端所處的地域,在預(yù)先設(shè)置的緩存數(shù)據(jù)庫中查找與所述地域相對應(yīng)的查詢結(jié)果。
15.如權(quán)利要求9-14中任一個(gè)所述的系統(tǒng),還包括搜索服務(wù)器,適于從外部的數(shù)據(jù)來源服務(wù)器查找搜索詞對應(yīng)的查詢結(jié)果;則所述通信設(shè)備進(jìn)一步適于將所述搜索請求分發(fā)到所述搜索服務(wù)器,獲取所述搜索服務(wù)器查找到的所述搜索詞對應(yīng)的查詢結(jié)果;以及當(dāng)在所述緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找到的與所述搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果的數(shù)量少于預(yù)設(shè)數(shù)量時(shí),將獲取的搜索服務(wù)器的查詢結(jié)果發(fā)送給所述客戶端,其中,所述搜索服務(wù)器的查詢結(jié)果用于作為所述緩存數(shù)據(jù)庫的查詢結(jié)果的補(bǔ)充。
16.如權(quán)利要求9-15中任一個(gè)所述的系統(tǒng),所述抓取服務(wù)器按照預(yù)設(shè)的頻率對所述關(guān)鍵詞列表中的關(guān)鍵詞和/或所述關(guān)鍵詞對應(yīng)的查詢結(jié)果進(jìn)行更新。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)搜索方法及系統(tǒng),該方法包括預(yù)先提取關(guān)鍵詞列表,通過訪問外部的數(shù)據(jù)來源服務(wù)器獲取關(guān)鍵詞列表中每一關(guān)鍵詞對應(yīng)的查詢結(jié)果,將每一關(guān)鍵詞及其對應(yīng)的查詢結(jié)果關(guān)聯(lián)存儲在緩存數(shù)據(jù)庫中;獲取客戶端發(fā)送的包含搜索詞的搜索請求,將搜索請求分發(fā)到緩存數(shù)據(jù)庫中,在緩存數(shù)據(jù)庫中按照預(yù)設(shè)的匹配規(guī)則查找與搜索詞相匹配的關(guān)鍵詞及其對應(yīng)的查詢結(jié)果;將關(guān)鍵詞對應(yīng)的查詢結(jié)果發(fā)送給客戶端。本發(fā)明的數(shù)據(jù)搜索方法及系統(tǒng)可以解決現(xiàn)有技術(shù)中同時(shí)設(shè)置信息數(shù)據(jù)庫和索引數(shù)據(jù)庫兩個(gè)數(shù)據(jù)庫時(shí)需要用復(fù)雜的算法才能完成數(shù)據(jù)匹配過程,導(dǎo)致用戶等待時(shí)間過長的問題,能夠取得根據(jù)預(yù)設(shè)的緩存數(shù)據(jù)庫和匹配規(guī)則迅速查找到匹配的數(shù)據(jù)的有益效果。
文檔編號G06F17/30GK102930054SQ20121046976
公開日2013年2月13日 申請日期2012年11月19日 優(yōu)先權(quán)日2012年11月19日
發(fā)明者李天華 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司