新四季網

一種信息搜索的方法、系統及信息搜索設備的製作方法

2023-09-21 20:29:40 4

專利名稱:一種信息搜索的方法、系統及信息搜索設備的製作方法
技術領域:
本申請涉及計算機技術領域,尤其涉及一種信息搜索的方法、系統及信息搜索設備。
背景技術:
在大型的搜索集群系統中,由於用於搜索的集群文檔數量巨大,因此為大量的集群文檔建立索引文件,在索引文件中進行信息搜索。由於索引文件數據量也很大,為了提高信息搜索效率,可以將索引文件劃分成多個部份,分別存儲在多臺搜索伺服器(searcher) 中,在多臺搜索伺服器中並行搜索以提高效率。例如將一份的索引文件劃分為η個部分, 在每臺搜索伺服器中存儲一部分索引文件,η臺搜索伺服器中存儲的內容組合在一起成為一份完整的索引文件。進一步考慮到搜索集群系統需要為大量用戶並行提供搜索服務,一臺搜索伺服器很難提供高並發的搜索服務,因此,可以設置m臺搜索伺服器存儲相同的索引文件。將存儲有相同索引文件的m臺搜索伺服器作為一個子集合,η個子集合組成一個搜索伺服器集合。為了方便從圖形上直觀地看出搜索伺服器集合內mXn臺搜索伺服器的結構,可以以矩陣形式來表示mXn臺搜索伺服器。將存儲有相同索引文件的m臺搜索伺服器的一個子集合看作是一列,η個子集合依次排列形成η行,得到m行η列結構的搜索伺服器集合,如圖1 所示。在利用搜索集群系統進行信息搜索時,為了提高搜索集群系統的性能,降低信息搜索的查詢時間,可以採用分級緩存(cache)搜索方式。目前常見的分級緩存搜索方式是兩級緩存搜索方式,其中一級緩存中緩存了之前一段時間內已使用的搜索請求(query)以及為該搜索請求返回的查詢結果,一級緩存可以採用高性能分布式內存對象緩存系統(Memcached)來緩存搜索請求以及對應的查詢結果,一級緩存對於整個搜索集群系統而言是全局的;二級緩存中緩存了之前一段時間內利用搜索請求進行查詢後將查詢結果進行集合運算後得到的文檔列表(doclist),二級緩存的內容緩存在搜索伺服器中,只對接收到搜索請求且進行集合運算的搜索伺服器可見。如圖2所示,為兩級緩存搜索方式下的搜索集群系統結構示意圖,假設用戶以「電腦包」 + 「價格區間50元 100元」為搜索請求進行信息搜索,則通過圖2所示的搜索集群系統的信息搜索過程如下第一步搜索集群系統中的合併(merger)伺服器接收來自用戶(user)的搜索請求,其中,關鍵字為「電腦包」,搜索條件為「價格區間50元 100元」。第二步合併伺服器搜索作為一級緩存的Memcached,如果有查詢結果,則表示之前已有其他用戶使用相同搜索請求進行過搜索,因此,可以直接從Memcached中讀取搜索結果並返回給用戶;如果沒有搜索結果,則執行第三步。第三步合併伺服器從圖1所示的搜索伺服器集合的每列中隨機選取一臺搜索伺服器,選取的η臺搜索伺服器存儲各部分索引文件組合在一起成為一份完整的索引文件。 其中,由於位於同一列的搜索伺服器被選取的概率是基本相同的,以實現同一列的搜索伺服器負載的基本均衡。第四步合併伺服器將搜索請求發送給選取的各臺搜索伺服器。第五步針對接收到搜索請求的每個搜索伺服器,以第一列的搜索伺服器_1為例,搜索伺服器_1根據其中的關鍵字「電腦包」搜索二級緩存中是否有匹配的搜索結果,如果有,則讀取二級緩存中「電腦包」對應的文檔列表,並利用搜索請求中的搜索條件對讀取的文檔列表做集合運算,查詢出符合搜索條件的內容。例如,讀取的文檔列表中包括多種價位電腦包的文檔列表集合,則按照「價格區間50元 100元」的搜索條件對讀取的文檔列表做集合運算,從中查詢出「價格區間50元 100元」的文檔列表。搜索伺服器_1將查詢出的內容進行統計、分級和排序後返回給合併伺服器,並跳轉至第八步;如果搜索伺服器_1未搜索出與「電腦包」匹配的搜索結果,則執行第六步。第六步搜索伺服器_1將關鍵字「電腦包」分詞為兩個子關鍵字「電腦」 + 「包」,並分別利用「電腦」和「包」這兩個子關鍵字從搜索伺服器_1中存儲的索引文件中進行搜索, 並將搜索結果進行集合運算,得到利用「電腦」和「包」這兩個子關鍵字的搜索結果的交集, 將得到的交集作為關鍵字「電腦包」的文檔列表並寫入搜索伺服器_1的二級緩存內。第七步搜索伺服器_1利用搜索條件對寫入二級緩存的文檔列表做集合運算,查詢出符合搜索條件的內容,並將查詢出的內容進行統計、分級和排序後返回給合併伺服器。其他的η-1臺搜索伺服器按照與上述第五步至第七步的方式向合併伺服器返回查詢出的內容。第八步合併伺服器對接收到的η臺搜索伺服器返回的查詢內容進行匯總,並將匯總結果作為搜索請求的搜索結果返回給用戶,同時合併服務還將搜索結果寫入作為一級緩存的Memcached,以便於其他用戶利用相同搜索請求進行查詢時可以直接從Memcached 獲得搜索結果。在上述通過搜索集群系統的搜索過程中,在一級緩存中沒有搜索請求_1對應的搜索結果的情況下,合併伺服器按照隨機方式從搜索伺服器集合的每列中選取一臺搜索伺服器,並要求每臺搜索伺服器根據搜索請求中的關鍵字進行查詢;若之後再有用戶以搜索請求_2發起搜索請求,且搜索請求_2中的關鍵字與搜索請求_1中的關鍵字相同時,合併伺服器按照隨機方式選取的搜索伺服器很可能與針對搜索請求_1選取的搜索伺服器不同,此時,針對搜索請求_2選取的搜索伺服器需要重新查詢、統計、分級和排序得到搜索請求_2中關鍵字的文檔列表,導致在搜索伺服器中的二級緩存搜索佔用的查詢時間過長。例如搜索伺服器集合由2行2列的搜索伺服器組成,假設依次有用戶A、用戶B和用戶C以「電腦包」作為搜索請求中的關鍵字進行搜索,並且假設一級緩存中沒有對應的搜索條件。由於合併伺服器隨機地選擇同一列中的搜索伺服器,因此,以第一列中的2臺搜索伺服器(搜索伺服器_1和搜索伺服器為例,用戶A、用戶B和用戶C在一列的搜索伺服器中直接在二級緩存中查詢出對應結果的情況有以下幾種可能,如表1所示
用戶AI用戶BI用戶C命中率出現概率
"S^l搜索伺服器—1 搜索伺服器—1 搜索伺服器—1 273ITs
搜索伺服器—1 搜索伺服器—1 搜索伺服器—2 1 3178
搜索伺服器—1 搜索伺服器—2 搜索伺服器—1 173ITs
搜索伺服器—1 搜索伺服器—2 搜索伺服器—2 0 3178
搜索伺服器—2 搜索伺服器—1 搜索伺服器—1 0 3178
"W6搜索伺服器—2 搜索伺服器—1 搜索伺服器—2 1 3178
搜索伺服器-2 搜索伺服器—2 搜索伺服器—1 1 3178
搜索伺服器—2 搜索伺服器—2 搜索伺服器—2 Til178表1合併伺服器為用戶A、用戶B和用戶C選擇搜索伺服器_1或搜索伺服器_2的概率是相同的,因此,合併伺服器為依次發起搜索請求的用戶A、用戶B和用戶C選擇搜索伺服器 _1或搜索伺服器_2的情況有表1所示的8種情況,且每種情況出現的概率都為1/8。以情況1為例,當用戶A首先發起關鍵字為「電腦包」的搜索請求時,搜索伺服器 _1按照上述第六步的方式運算出「電腦包」的文檔列表並寫入搜索伺服器_1的二級緩存內。之後,當用戶B也以「電腦包」為關鍵字發起搜索請求時,由於搜索伺服器_1內已緩存 「電腦包」對應的文檔列表,因此,可以按照第五步的方式直接讀取對應的文檔列表,而無需再次按照第六步的方式重新運算「電腦包」的文檔列表。用戶C發起的關鍵字為「電腦包」 的搜索請求操作與用戶B相同。此時,三位用戶的搜索請求中,只有用戶A需要按照第六步的方式運算「電腦包」的文檔列表,而用戶B和用戶C可以在二級緩存中直接命中「電腦包」 的文檔列表,因此,在情況1時的命中率為2/3。類似地,在情況2中,用戶A需要按照第六步的方式運算「電腦包」的文檔列表,用戶B在二級緩存中直接命中「電腦包」的文檔列表,而用戶C的搜索請求由搜索伺服器_2執行,而搜索伺服器—2中雖然存儲了與搜索伺服器_1相同的索引文件,但並沒有緩存搜索伺服器_1中的二級緩存(即「電腦包」的文檔列表),因此,用戶C的搜索請求需要由搜索伺服器—2按照第六步的方式運算「電腦包」的文檔列表後響應。在情況2中,只有用戶B可以按照搜索伺服器_1內的二級緩存直接命中「電腦包」的文檔列表,因此,在情況2時的命中率為1/3。情況3 情況8的命中率計算方式與上述方式相同。在表1所示的8種隨機選取搜索伺服器的情況下,在二級緩存中的平均命中率= (0/3 X 2+1/3 X 4+2/3 X 2)/8 = 1/3,可見,在目前通過搜索集群系統的信息搜索過程中,在二級緩存中針對相同關鍵字的搜索請求搜索的平均命中率較低,導致針對相同關鍵字的搜索請求的大多數搜索過程都要分別按照上述第六步的方式運算關鍵字的文檔列表,導致搜索過程佔用的查詢時間過長,且運算關鍵字的文檔列表需要佔用較多的系統資源,這降低搜索集群系統的性能。

發明內容
本申請目的在於提供一種信息搜索的方法、系統及信息搜索設備,用以解決現有技術中存在二級緩存搜索中佔用的查詢時間過長、搜索集群系統的性能低的問題。一種信息搜索的方法,包括接收包含關鍵字和搜索條件的搜索請求;在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器;將所述搜索請求發送給選取的搜索伺服器,指示選取的搜索伺服器返回利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。一種信息搜索設備,包括請求接收模塊,用於接收包含關鍵字和搜索條件的搜索請求;運算模塊,用於在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,按照設定算法對所述關鍵字進行運算得到運算結果;選取模塊,用於根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別得到的運算結果對應的搜索伺服器;發送模塊,用於將所述搜索請求發送給選取的搜索伺服器;結果接收模塊,用於接收選取的搜索伺服器返回的利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。一種信息搜索系統,包括信息搜索設備和至少一臺搜索伺服器,其中信息搜索設備,用於接收包含關鍵字和搜索條件的搜索請求,在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,並將所述搜索請求發送給選取的搜索伺服器;搜索伺服器,用於向信息搜索設備返回利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。本申請有益效果如下本申請實施例在搜索集群系統中進行二級緩存搜索時,針對搜索伺服器集合的各子集合,根據運算結果與子集合內各搜索伺服器的對應關係,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,利用選取的搜索伺服器來響應搜索請求,由於選取的搜索伺服器除了第一次響應包含某一關鍵字的搜索請求外,該搜索伺服器中已緩存了該關鍵字對應的文檔列表,因此,選取的搜索伺服器可以直接讀取緩存的文檔列表,無需再重新對相同的關鍵字進行分詞、從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作,節約了搜索時長,減少了信息搜索過程中佔用的搜索集群系統資源,提高了搜索集群系統的性能。


圖1為背景技術中搜索集群系統的搜索伺服器集合示意圖;圖2為背景技術中搜索集群系統結構示意圖;圖3為本申請實施例一信息搜索方法流程示意圖;圖4為本申請實施例三信息搜索設備結構示意圖。
具體實施例方式為了提高在二級緩存中針對相同關鍵字的搜索請求的搜索命中率,減少在搜索伺服器中的搜索時長,本申請實施例提出一種新的信息搜索方案,在針對二級緩存的搜索過程中,合併伺服器不將搜索請求隨機發送給子集合內的搜索伺服器,而是在每次針對相同關鍵字的搜索請求時,按照設定算法對該關鍵字進行運算,並根據運算結果與子集合內各搜索伺服器的對應關係,從子集合的搜索伺服器中選取運算得到的運算結果對應的搜索伺服器,指示選取的搜索伺服器執行相應的信息搜索操作,由於針對相同關鍵字採用的設定算法以及運算結果與搜索伺服器的對應關係相同,因此,在多次出現相同關鍵字的搜索請求時,最終選取的搜索伺服器相同,而選取的搜索伺服器在之前執行相應的信息搜索操作時已緩存了相應的文檔列表,因此,選取的搜索伺服器無需再重新對關鍵字進行分詞、從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作,節約了搜索時長,減少了信息搜索過程中佔用的搜索集群系統資源,提高了搜索集群系統的性能。本申請各實施例中涉及的搜索集群系統的結構與圖2所示的系統示意圖相同,也是由合併伺服器接收用戶發起的搜索請求後,從Memcached和搜索伺服器集合中分別進行一級緩存搜索和二級緩存搜索,最終得到搜索結果的架構。本申請各實施例中涉及的子集合是指包含m臺搜索伺服器的集合,同一子集合內各搜索伺服器存儲的索引文件相同,但二級緩存內緩存的內容(關鍵字對應的文檔列表) 不一定相同。η個子集合組成搜索伺服器集合,從η個子集合中隨機挑選的η個搜索伺服器存儲的索引文件組成一份完整的索引文件。本申請各實施例中涉及的文檔列表是搜索伺服器的二級緩存中緩存的內容,是某一關鍵字在該搜索伺服器緩存的索引文件進行搜索並通過集合運算後得到的內容。下面結合說明書附圖對本申請實施例進行詳細描述。實施例一本申請實施例一提供一種信息搜索的方法,如圖3所示,本實施例一的信息搜索方法包括以下步驟步驟101 合併伺服器接收用戶發送的搜索請求,所述搜索請求中包含關鍵字和搜索條件。步驟102 合併伺服器搜索作為一級緩存的Memcached,判斷是否能夠命中搜索結果,若是,則向用戶返回搜索結果並結束信息搜索過程;否則,執行步驟103。步驟103 合併伺服器針對搜索伺服器集合的各子集合,分別選取搜索伺服器。本步驟的具體操作如下首先,合併伺服器按照設定算法對所述關鍵字進行運算,得到該關鍵字的運算結果;
然後,合併伺服器根據預先設定的運算結果與子集合內各搜索伺服器的對應關係,分別從各子集合中選取關鍵字的運算結果對應的搜索伺服器。如果合併伺服器首次收到包括某一關鍵字的搜索請求時,按照本步驟的方案選取的搜索伺服器內也未緩存該關鍵字對應的文檔列表,因此,需要為該關鍵字執行分詞、從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作,得到並緩存該關鍵字對應的文檔列表;此後,當合併伺服器再次收到包含該關鍵字的搜索請求時,按照本步驟的方案選取子集合中相同的搜索伺服器,此時,該搜索伺服器中已緩存該關鍵字對應的文檔列表,選取的搜索伺服器可以直接向合併伺服器返回該文檔列表。步驟104 合併伺服器將所述搜索請求發送給選取的搜索伺服器。步驟105 搜索伺服器從二級緩存中讀取搜索請求中的關鍵字對應的文檔列表, 並利用搜索請求中的搜索條件對讀取的文檔列表做集合運算,查詢出符合搜索條件的內容。步驟106 合併伺服器對選取的各搜索伺服器返回的查詢內容進行匯總,將匯總得到的搜索結果返回給用戶。通過上述步驟101 步驟106的方案,合併伺服器不再是從各子集合中隨機地選取搜索伺服器,而是根據對搜索請求中關鍵字的運算結果選取對應的搜索搜索伺服器,由於對關鍵字採用相同的算法以及運算結果與搜索伺服器的對應關係相同,因此,針對相同的關鍵字在子集合中選取的搜索伺服器相同,而搜索伺服器在首次響應包含該關鍵字的搜索請求時就緩存了對應的文檔列表,因此,之後每次選取該搜索伺服器後文檔列表搜索伺服器可以直接讀取緩存的文檔列表,減少二級緩存搜索佔用的時長,避免為重複執行分詞、 從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作而佔用的系統資源,提高了搜索集群系統的性能。在上述步驟103中搜索請求涉及的設定算法包括但不限於各種運算方式,本申請實施例二以哈希算法為例,對本申請實施例一的方案進行詳細描述。實施例二假設本申請實施例二的方案中,在Tl時刻之前,一級緩存和二級緩存中都沒有緩存關鍵字「電腦包」對應的文檔列表。在Tl時刻,用戶A發起的搜索請求_1中關鍵字為 「電腦包」,搜索條件為「價格區間50元 100元」,在之後的T2時刻,用戶B發起的搜索請求_2中關鍵字為「電腦包」,搜索條件為「紅色」。本申請實施例二中信息搜索的方法包括以下步驟第一步合併伺服器接收用戶A發送的搜索請求_1,所述搜索請求_1中包含關鍵字「電腦包」和搜索條件「價格區間50元 100元」。第二步合併伺服器從搜索請求_1中提取出關鍵字「電腦包」。本步驟中,由於用戶在發出搜索請求_1時通常對其中包含的信息進行了 URL編碼,因此,本步驟中,優選進行統一資源定位符(URL)解碼,在進行解碼後可以方便識別搜索請求_1中的內容。第三步合併伺服器按照哈希算法對關鍵字「電腦包」進行運算得到哈希值。在本步驟中,合併伺服器可以通過用於對關鍵字(keyword)進行調度的 Dispatch (keyword)函數,調用哈希算法對內存中緩存的字符串形式的關鍵字「電腦包」進行運算,得到哈希值(Hash Value) 0第四步合併伺服器確定搜索伺服器集合的子集合數量以及各子集合中的搜索伺服器數量。如果本實施例中將搜索伺服器集合看作是mXn臺搜索伺服器表示的矩陣形式, 則本步驟中確定的子集合數量即矩陣中n,每個子集合中的搜索伺服器數量即矩陣中的m。第五步確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值。假設第三步中運算得到的哈希值為5,一列中搜索伺服器數量為3,則本步驟中得到的數值為5/3 = 2。第六步針對每一子集合,合併伺服器根據數值與子集合內各搜索伺服器的對應關係,確定第五步中數值對應的搜索伺服器。在本實施例中,可以為同一子集合中的搜索伺服器分配索引號,如同一子集合中有3臺搜索伺服器,則可以分別為每臺搜索伺服器分配一個索引號,分別為索引號_1、索引號_2和索引號_3。建立數值與索引號的對應關係,如果在第五步中運算得到的數值為2, 則可以確定其對應的搜索伺服器是索引號為2的搜索伺服器。在本步驟中,合併伺服器可以將依次運算得到的數值分別應用到每一列中,按照相同的算法確定每一列中的應該選取的搜索伺服器。本實施例也不限於合併伺服器針對不同列採用不同的算法進行運算,但針對不同搜索請求在同一列中採用的算法應相同。第七步合併伺服器將搜索請求_1發送給在各子集合中選取的搜索伺服器。本申請實施例不限於按照上述第五步的方式進行運算,也可以採用其他算法計算與搜索伺服器對應的數值,只要相同的關鍵字採用相同的算法能夠得到相同的數值即可。針對選取的每個搜索伺服器,執行以下第八步 第十步。第八步由於沒有在二級緩存中緩存「電腦包」對應的文檔列表,因此,搜索伺服器執行對「電腦包」進行分詞、從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作,得到「電腦包」對應的文檔列表。第九步搜索伺服器將得到的「電腦包」對應的文檔列表緩存至二級緩存內。第十步搜索伺服器利用「價格區間50元 100元」對寫入二級緩存的文檔列表做集合運算,查詢出符合搜索條件的內容,並將查詢出的內容進行統計、分級和排序後返回給合併伺服器。第十一步合併伺服器對接收到的η臺搜索伺服器返回的查詢內容進行匯總,並將匯總結果作為搜索請求_1的搜索結果返回給用戶Α,同時還將搜索請求_1對應的搜索結果寫入一級緩存中。此時,完成了針對搜索請求_1的信息搜索過程,在Τ2時刻到達後,用戶B發起搜索請求_2。第十二步合併伺服器接收用戶B發送的搜索請求_2,所述搜索請求_2中包含關鍵字「電腦包」和搜索條件「紅色」。第十三步 第十八步與上述第二步 第七步相同。由於搜索請求_1和搜索請求_2中的關鍵字相同、採用的算法都是哈希算法,因此,合併伺服器為搜索請求_1和搜索請求_2從同一列中選取的搜索伺服器相同。較優地,為了保證同一列中的搜索伺服器的負載相對均衡,可以對選取的搜索伺服器在設定時長內的負載情況進行判定,並根據判定結果進行相應的操作,具體過程為如果選取的搜索伺服器的負載不大於設定值,則向選取的搜索伺服器發送搜索請求_2;如果選取的搜索伺服器的負載大於設定值,則合併伺服器需要重新選擇搜索伺服器,包括但不限於以下兩種重新選取搜索伺服器的方式第一種重新選取搜索伺服器的方式合併伺服器中存儲多種關鍵字的運算結果與搜索伺服器的對應關係,通過更改採用的對應關係來達到重新選取搜索伺服器的目的。例如在本實施例針對搜索請求_1的第六步中採用第一對應關係,且針對搜索請求_2時發現根據第一對應關係選取的搜索伺服器負載大於設定值時,可以採用第二對應關係,為搜索請求—2內的關鍵字的運算結果重新選取對應的搜索伺服器。第二種重新選取搜索伺服器的方式合併伺服器中存儲多種運算關鍵字的算法,通過更改採用的算法來達到重新選取搜索伺服器的目的。例如在本實施例針對搜索請求_1的第三步中採用哈希算法,且針對搜索請求_2 時發現根據哈希算法選取的搜索伺服器負載大於設定值時,可以採用其他算法對搜索請求 _2內的關鍵字重新進行運算,並根據新的運算結果重新選取對應的搜索伺服器。通過上述重新選取搜索伺服器的方式,可以使子集合中各搜索伺服器的負載相對均衡,避免某些熱門關鍵字的經常出現導致子集合中搜索伺服器的負載不均衡。合併伺服器可以對設定時長內生成的搜索日誌信息的內容進行統計分析,以確定各搜索伺服器的負載量。進一步地,如果合併伺服器選取的搜索伺服器出現故障、機器下線等異常情況時, 可以採用一致性哈希方式解決,即將本應該發送給選取的搜索伺服器的搜索請求_2轉發給其他正常狀態下且負載最小的搜索伺服器。針對選取的每個搜索伺服器,執行以下第十九步 第二十步。第十九步搜索伺服器直接從二級緩存內讀取「電腦包」對應的文檔列表。第二十步搜索伺服器利用「紅色」對讀取的文檔列表做集合運算,查詢出符合搜索條件的內容,並將查詢出的內容進行統計、分級和排序後返回給合併伺服器。第二十一步合併伺服器對接收到的η臺搜索伺服器返回的查詢內容進行匯總, 並將匯總結果作為搜索請求_2的搜索結果返回給用戶B,同時還將搜索請求_2對應的搜索結果寫入一級緩存中。將本實施例二的方案與背景技術中通過搜索集群系統的信息搜索過程相比,可以看出除了首次針對新的關鍵字進行二級緩存搜索外,針對已進行過二級緩存搜索的關鍵字搜索,本申請實施例二的方案不再是隨機地從子集合中選取搜索伺服器,而是儘量選取已緩存相同關鍵字對應文檔列表的搜索伺服器,以減少重複進行分詞、從索引文件進行搜索以及運算得到各分詞搜索結果交集的操作造成的搜索時延,提高搜索集群系統的性能。仍以搜索伺服器集合由2行2列的搜索伺服器組成的情況為例,假設依次有用戶 Α、用戶B和用戶C以「電腦包」作為搜索請求中的關鍵字進行搜索,並且假設一級緩存中沒有對應的搜索條件。由於合併伺服器按照本申請實施例一夥實施例二的方式選擇同一列中的搜索伺服器,因此,以第一列中的2臺搜索伺服器(搜索伺服器_1和搜索伺服器_2)為例,用戶A、用戶B和用戶C在一列的搜索伺服器中直接在二級緩存中查詢出對應結果的情況有以下幾種可能,如表2所示
I用戶A I用戶BI用戶C命中率~~出現概率
"S^l~搜索伺服器—1 ~搜索伺服器—1搜索伺服器—1273ITs
~搜索伺服器—1 ~搜索伺服器—1搜索伺服器—1273ITs
~搜索伺服器—1 ~搜索伺服器—1搜索伺服器—1273ITs
~搜索伺服器—1 ~搜索伺服器—1搜索伺服器—1273ITs
~搜索伺服器—2~搜索伺服器—2搜索伺服器—22 3ITs
~搜索伺服器—2~搜索伺服器—2搜索伺服器—2Til178
~搜索伺服器—2~搜索伺服器—2搜索伺服器—22 3178
~搜索伺服器—2~搜索伺服器—2搜索伺服器—22 3178表2在表2所示的8種選取搜索伺服器的情況下,在二級緩存中的平均命中率= (2/3X8)/8 = 2/3,相對於隨機選取搜索伺服器的情況,利用本申請實施例的方案得到的平均命中率提高一倍,即使為保證負載均衡或選取的搜索伺服器出現異常時,不能完全實現表2所示的情況,在大部分情況下命中率仍可達到2/3,平均命中率相較於隨機選取搜索伺服器的情況仍有大幅度提高,可以有效地減少搜索過程的佔用時長,提高搜索集群系統的性能。實施例三本申請實施例三提供一種應用於搜索集群系統中的信息搜索設備,如圖4所示, 包括請求接收模塊11、運算模塊12、選取模塊13、發送模塊14和結果接收模塊15,其中請求接收模塊11用於接收包含關鍵字和搜索條件的搜索請求;運算模塊12用於在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,按照設定算法對所述關鍵字進行運算得到運算結果;選取模塊13用於根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別得到的運算結果對應的搜索伺服器;發送模塊14用於將所述搜索請求發送給選取的搜索伺服器;結果接收模塊15用於接收選取的搜索伺服器返回的利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。以哈希算法作為設定算法時,所述運算模塊12具體用於按照哈希算法對所述關鍵字進行運算得到哈希值;所述選取模塊13具體用於確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值,並將確定的所述數值對應的搜索伺服器作為選取的搜索伺服器。所述選取模塊13還用於判斷選取的搜索伺服器在設定時長內的負載是否大於設定值;若不大於,則觸發發送模塊將搜索請求發送給選取的搜索伺服器;否則,更改運算結果與子集合內各搜索伺服器的對應關係,根據更改後的對應關係重新選取搜索伺服器,或者,更改設定算法後對關鍵字重新進行運算,根據得到的運算結果重新選取對應的搜索伺服器,並觸發發送模塊將搜索請求發送給重新選取的搜索伺服器。
所述選取模塊13還用於判斷選取的搜索伺服器是否出現異常;若未出現異常,則觸發發送模塊將搜索請求發送給選取的搜索伺服器;否則,將觸發發送模塊搜索請求發送給未出現異常且負載最小的搜索伺服器。本實施例三中涉及的信息搜索設備可以是實施例一和實施例二中涉及的合併伺服器,也可以是能夠實現上述功能的其他功能實體。本申請實施例一和實施例二中以合併伺服器為執行主體是優選的實施例,實施例一和實施例二也不限於以其他能夠實現相應功能的執行主體。實施例四本申請實施例四還提供一種應用於搜索集群系統的信息搜索系統,該搜索系統的架構可以如圖2所示,包括信息搜索設備和至少一臺搜索伺服器,其中信息搜索設備用於接收包含關鍵字和搜索條件的搜索請求,在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,並將所述搜索請求發送給選取的搜索伺服器;搜索伺服器用於向信息搜索設備返回利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。所述信息搜索設備具體用於按照哈希算法對所述關鍵字進行運算得到哈希值,並確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值,將確定的所述數值對應的搜索伺服器作為選取的搜索伺服器。本實施例四中的信息搜索設備還具有根據負載情況重新選取搜索伺服器,以及根據搜索伺服器是否出現異常的情況重新選取搜索伺服器的功能。本實施例四中的信息搜索設備可以是合併伺服器,或是其他能夠實現實施例一至實施例四方案的網元。本領域內的技術人員應明白,本申請的實施例可提供為方法、系統、或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。儘管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請範圍的所有變更和修改。顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和範圍。這樣,倘若本申請的這些修改和變型屬於本申請權利要求及其等同技術的範圍之內,則本申請也意圖包含這些改動和變型在內。
權利要求
1.一種信息搜索的方法,其特徵在於,包括 接收包含關鍵字和搜索條件的搜索請求;在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器;將所述搜索請求發送給選取的搜索伺服器,指示選取的搜索伺服器返回利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。
2.如權利要求1所述的方法,其特徵在於,選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,具體包括按照哈希算法對所述關鍵字進行運算得到哈希值;確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值;將確定的所述數值對應的搜索伺服器作為選取的搜索伺服器。
3.如權利要求1或2所述的方法,其特徵在於,選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器之後,且將搜索請求發送給選取的搜索伺服器之前,所述方法還包括判斷選取的搜索伺服器在設定時長內的負載是否大於設定值; 若不大於,則將搜索請求發送給選取的搜索伺服器;否則,更改運算結果與子集合內各搜索伺服器的對應關係,根據更改後的對應關係重新選取搜索伺服器,或者,更改設定算法後對關鍵字重新進行運算,根據得到的運算結果重新選取對應的搜索伺服器,並將搜索請求發送給重新選取的搜索伺服器。
4.如權利要求1或2所述的方法,其特徵在於,選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器之後,且將搜索請求發送給選取的搜索伺服器之前,所述方法還包括判斷選取的搜索伺服器是否出現異常;若未出現異常,則將搜索請求發送給選取的搜索伺服器;否則,將搜索請求發送給未出現異常且負載最小的搜索伺服器。
5.一種信息搜索設備,其特徵在於,包括請求接收模塊,用於接收包含關鍵字和搜索條件的搜索請求; 運算模塊,用於在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,按照設定算法對所述關鍵字進行運算得到運算結果;選取模塊,用於根據運算結果與子集合內各搜索伺服器的對應關係,從搜索伺服器集合的各子集合中,分別得到的運算結果對應的搜索伺服器; 發送模塊,用於將所述搜索請求發送給選取的搜索伺服器;結果接收模塊,用於接收選取的搜索伺服器返回的利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。
6.如權利要求5所述的信息搜索設備,其特徵在於,所述運算模塊,具體用於按照哈希算法對所述關鍵字進行運算得到哈希值; 所述選取模塊,具體用於確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值,並將確定的所述數值對應的搜索伺服器作為選取的搜索伺服器。
7.如權利要求5或6所述的信息搜索設備,其特徵在於,所述選取模塊,還用於判斷選取的搜索伺服器在設定時長內的負載是否大於設定值; 若不大於,則觸發發送模塊將搜索請求發送給選取的搜索伺服器; 否則,更改運算結果與子集合內各搜索伺服器的對應關係,根據更改後的對應關係重新選取搜索伺服器,或者,更改設定算法後對關鍵字重新進行運算,根據得到的運算結果重新選取對應的搜索伺服器,並觸發發送模塊將搜索請求發送給重新選取的搜索伺服器。
8.如權利要求5或6所述的信息搜索設備,其特徵在於, 所述選取模塊,還用於判斷選取的搜索伺服器是否出現異常;若未出現異常,則觸發發送模塊將搜索請求發送給選取的搜索伺服器; 否則,將觸發發送模塊搜索請求發送給未出現異常且負載最小的搜索伺服器。
9.一種信息搜索系統,其特徵在於,包括信息搜索設備和至少一臺搜索伺服器,其中 信息搜索設備,用於接收包含關鍵字和搜索條件的搜索請求,在一級緩存中未搜索出與所述搜索請求對應的搜索結果時,根據運算結果與子集合內各搜索伺服器的對應關係, 從搜索伺服器集合的各子集合中,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,並將所述搜索請求發送給選取的搜索伺服器;搜索伺服器,用於向信息搜索設備返回利用所述搜索條件對所述關鍵字對應的文檔列表運算後得到查詢內容。
10.如權利要求9所述的信息搜索系統,其特徵在於,所述信息搜索設備,具體用於按照哈希算法對所述關鍵字進行運算得到哈希值,並確定以所述哈希值為鍵值對子集合內搜索伺服器數量取模後得到的數值,將確定的所述數值對應的搜索伺服器作為選取的搜索伺服器。
全文摘要
本申請公開了一種信息搜索的方法、系統及信息搜索設備,主要內容包括在搜索集群系統中進行二級緩存搜索時,針對搜索伺服器集合的各子集合,根據運算結果與子集合內各搜索伺服器的對應關係,分別選取按照設定算法對所述關鍵字運算得到的運算結果對應的搜索伺服器,利用選取的搜索伺服器來響應搜索請求,由於選取的搜索伺服器除了第一次響應包含某一關鍵字的搜索請求外,該搜索伺服器中已緩存了該關鍵字對應的文檔列表,因此,選取的搜索伺服器可以直接讀取緩存的文檔列表,節約了搜索時長,減少了信息搜索過程中佔用的搜索集群系統資源,提高了搜索集群系統的性能。
文檔編號G06F17/30GK102479207SQ20101056366
公開日2012年5月30日 申請日期2010年11月29日 優先權日2010年11月29日
發明者孫權 申請人:阿里巴巴集團控股有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀