專利名稱:實時垂直搜索引擎對象緩存優化方法
技術領域:
本發明涉及實時垂直搜索引擎系統數據緩存與抓取協調相關的技術,特別 涉及基于泊松過程的一種實時垂直搜索引擎對象緩存優化的方法。
背景技術:
實時垂直搜索引擎通過用戶查詢驅動的數據抓取、語義分析等技術,為用 戶提供更貼切、更準確實時、滿意度更高的搜索結果。它從根本上解決了傳統 垂直搜索引擎數據結果過時嚴重的弊病,滿足了用戶對機票、股市等特定領域 的搜索中日益強烈的高實時性需求。
利用爬蟲實時査詢的結果與服務器緩存結果的合并來提高用戶搜索體驗是 實時垂直搜索引擎的核心技術。爬蟲的實時査詢能較好地保證數據的實時性, 卻增大了數據源站點的壓力;適量的數據緩存雖能減少對數據源站點的訪問壓 力,卻無法保證數據的實時性。因此,如何在兼顧數據源站點壓力的前提下提 高實時垂直搜索結果的實時性和性能是緩存策略的重點。
但是由于實時垂直搜索引擎的發展歷史尚短,并且實時垂直搜索引擎緩存 調度比較復雜,因此產業界對此至今沒有一個成熟的解決方案。現有的實時垂 直搜索引擎仍然使用傳統垂直搜索引擎的抓取調度方法,對抓取配額的利用率 不高。
發明內容
本發明的目的在于提供一種實時垂直搜索引擎對象緩存優化方法。主要應 用于實時垂直搜索引擎的抓取資源管理,計算了對抓取配額的自動分配平衡方 法,提供了實時垂直搜索引擎自動調節管理抓取配額的功能。
本發明解決其技術問題采用的技術方案的步驟如下
1) 根據搜索對象之間的關聯關系,預測搜索對象的熱門度趨勢,計算下一 周期內各個搜索對象的緩存權重度;
2) 根據步驟l)中所得各個搜索對象的緩存權重度,將抓取配額分配給不 同搜索對象,并依據用戶對同一搜索對象的訪問規律,初步分配與調整抓取配 額;
3) 計算每個搜索對象的實際數據變化頻率,動態平衡不同搜索對象的抓取 配額。所述步驟1)中搜索對象之間的關聯關系,使用的是搜索對象之間的屬性關 聯,不同搜索對象的緩存權重度的差異標志了不同搜索對象在周期內用戶査詢 量的差異。
所述步驟1)中計算下一周期T內各個搜索對象緩存權重度的步驟如下
3.1) 定義搜索搜索對象的各個屬性,并定義各屬性的取值;
3.2) 計算關系矩陣集合K,其中iQ代表屬性Px的屬性關系矩陣,該屬性關 系矩陣值Ky代表了屬性取值pi與Pj之間的關聯度;
3.3) 處理上一周期內的所有查詢數據,提取出每個屬性不同取值的査詢次 數,計算屬性訪問集合T], Tix表示屬性Px的訪問向量,該訪問向量值Ni代表屬 性某一取值Pi在T內的訪問次數,tx為各個屬性Px的權重度;
3.4) 使用公式
<formula>formula see original document page 5</formula>
計算下一個周期內各個搜索對象的緩存權重度。
所述步驟2)中用戶對搜索對象的訪問符合泊松過程,且用戶對同一搜索對
象的查詢量隨著時間的增長呈線性趨勢,抓取配額的初步分配符合公式
<formula>formula see original document page 5</formula>
其中C代表總抓取次數限制,N代表搜索對象個數,Ci代表搜索對象i分配 到的抓取配額;
針對查詢驅動的特點進行抓取配額的初步調整符合公式
<formula>formula see original document page 5</formula>其中c^d代表以上公式的Ci, T代表計算周期,;w為用戶對搜索對象i的査 詢頻率。
所述步驟3)中動態平衡,計算搜索對象實際數據變化頻率、的計算方法,
依據以下公式<formula>formula see original document page 5</formula>其中tei表示發現第i次變化的間隔,tuj表示第j次沒有發現變化的間隔,在
總共n次重抓中,總共發現了 m次變化。
所述步驟3)中的動態中,使用t表示搜索對象的更新間隔,具體方法為
6.1) 遍歷所有搜索對象,計算每一個搜索對象的^,t值與用戶查詢量值V, 并計算每個搜索對象的V* [(l-e^t)/ Vt]值,定義其為F;
6.2) 對每個搜索對象按照 ^t從大到小排序,同時對每個搜索對象按V從 小到大排序;
6.3) 依次篩選出?ie,t最大,同時V最小的搜索對象與^,t最小,同時V最 大的搜索對象,并將前者的抓取配額平衡給后者,直到這兩個搜索對象的F相 同為止;
6.4) 不斷重復步驟6.3),直到所有搜索對象的F相同。 本發明具有的有益效果是增加了垂直搜索引擎對數據站點抓取配額的利
用率,增加了實時垂直搜索引擎用戶的體驗,實現了實時垂直搜索引擎對不同
數據站點的自適應配置。
圖1是本發明實施步驟流程圖。
圖2是融合本發明的實時垂直搜索引擎系統架構圖。
具體實施例方式
現結合附圖和實施例對本發明作進一步說明。
如圖1所示,本發明具體實施過程和工作原理如下
1) 根據對象之間的關聯關系,預測對象的熱門度趨勢,計算下一周期內 各個對象的緩存權重度;
2) 根據步驟l)中所得各個對象的緩存權重度,將抓取配額分配給不同對 象,并依據用戶對同一對象的訪問規律,初步調整抓取配額;
3) 計算每個對象的實際數據變化頻率,動態平衡不同對象的抓取配額。 如圖1)所示,步驟1)中對象之間的關聯關系使用的是對象之間的屬性
關聯。比如機票對象,包含了{出發城市,到達城市,日期}三個屬性,不同的
機票對象之間在不同的屬性上都有關聯,比如{北京,杭州,距今2天}的對象
與{北京,上海,距今1天}兩個對象僅到達城市不同,并且杭州與上海地理位
置非常接近,可以理解為這兩個機票的關聯比較密切。不同對象的緩存權重度
的差異標志了不同對象在一定周期內用戶查詢量的差異,反應到機票對象上可 以理解為不同機票對象的熱門程度。其中計算下一周期內各個對象緩存權重度的具體步驟如下-
1) 定義對象的各個屬性,并定義各屬性的取值,比如機票對象包含(出發 城市,到達城市,日期}三個屬性,而出發城市和到達城市的取值則為中國各個
具有民用機場的城市;
2) 計算關系矩陣集合K,其中1Q代表屬性Px的屬性關系矩陣,該屬性關系
矩陣值Kij代表了屬性取值Pi與Pj之間的關聯度;
3) 處理上一周期內的所有查詢數據,提取出每個屬性不同取值的査詢次
數。計算屬性訪問集合T1, T^表示屬性Px的訪問向量。該訪問向量值Ni代表屬 性某一取值Pi在T內的訪問次數,tx為各個屬性Px的權重度;
4) 使用公式
w 附
計算各個對象的緩存權重度。
如圖1)所示,進行完步驟l)處理后,步驟2)表征了對搜索對象抓取配
額的初步分配,用戶對相同對象的訪問符合泊松過程,且用戶對同一對象的査
詢量隨著時間的增長呈線性趨勢。抓取配額的初步分配符合公式
! =0
其中C代表總抓取次數限制,N代表對象個數,Ci代表對象i分配到的抓取 配額。比如兩個對象的熱門程度為W「4、 W2=9,則抓取配額的初步分配為 d=C*2/5、 c2=C*3/5。
實時垂直搜索引擎的數據抓取為用戶査詢驅動,因此需要針對查詢驅動的 特點進行抓取配額的初步調整,使用以下公式進行
e — e n i C':oW 、 —- c/_oW 、2 7".入
其中Ci—。w代表上式中的的Ci, T代表計算周期,、為用戶對對象i的查詢頻 率,依此公式調整后的抓取配額考慮了用戶對同一對象査詢的離散型。 如圖l)所示,步驟3)中計算對象實際數據變化頻率^,依據公式
7附 * _附
其中tei表示發現第i次變化的間隔,tuj表示第j次沒有發現變化的間隔。在
總共n次重抓中,總共發現了 m次變化。
給定各個抓取對象的數據變化頻率、后,可以此為依據進行不同對象的動 態平衡,具體方法為
1) 遍歷所有搜索對象,計算每一個搜索對象的^,t值與用戶查詢量值V, 并計算每個搜索對象的F=V* [(l-e^t)/Vt]值;
2) 對每個搜索對象按照?^t從大到小排序,同時對每個搜索對象按V從 小到大排序;該步驟的目的為方便找出所有對象中F最小的搜索對象;
3) 依據各個對象的、n與V,找出F最小的對象和F最大的對象,并將前 者的抓取配額平衡給后者,直到這兩個搜索對象的F相同;
4) 不斷重復步驟3),直到所有搜索對象的F相同。
在經過如上步驟之后,實現了抓取資源在一個周期內在所有搜索對象之間 的最優化分配。
圖2描述了實時垂直搜索引擎的整體抓取架構,方框代表了本緩存優化方 法在整個實時垂直搜索引擎中的應用點,方框中各個節點即代表了緩存優化計 算的各個步驟。計算步驟代表了不同緩存對象的緩存權重度計算,其計算數 據來自網站日志。分配步驟即代表了依據緩存權重度進行抓取配額的初步分 配與調整,分配的計算結果反應到對象信息表,以表征各個對象的實時信息。 在垂直搜索引擎運行過程中,動態平衡步驟實時從對象信息表中讀取對象信 息,并使用動態平衡方法重新調整不同搜索對象的抓取配額。
本發明在實時垂直搜索引擎的切入點為分發器,對每個的査詢請求,分 發器依據本優化方法計算的不同抓取對象抓取配額度來調度決定用戶的査詢結 果為實時從網絡抓取還是數據服務器中數據。
權利要求
1、一種實時垂直搜索引擎對象緩存優化方法,其特征在于,該方法的步驟如下1)根據搜索對象之間的關聯關系,預測搜索對象的熱門度趨勢,計算下一周期內各個搜索對象的緩存權重度;2)根據步驟1)中所得各個搜索對象的緩存權重度,將抓取配額分配給不同搜索對象,并依據用戶對同一搜索對象的訪問規律,初步分配與調整抓取配額;3)計算每個搜索對象的實際數據變化頻率,動態平衡不同搜索對象的抓取配額。
2、 根據權利要求1中所述的一種實時垂搜索引擎對象緩存優化方法,其特征在于所述步驟l)中搜索對象之間的關聯關系,使用的是搜索對象之間的屬性關聯,不同搜索對象的緩存權重度的差異標志了不同搜索對象在周期內用戶查詢量的差異。
3、 根據權利要求1中所述的一種實時垂直搜索引擎對象緩存優化方法,其特征在于所述步驟1)中計算下一周期T內各個搜索對象緩存權重度的步驟如下3.1) 定義搜索搜索對象的各個屬性,并定義各屬性的取值;3.2) 計算關系矩陣集合K,其中i^代表屬性Px的屬性關系矩陣,該屬性關系矩陣值Ky代表了屬性取值pi與pj之間的關聯度;3.3) 處理上一周期內的所有査詢數據,提取出每個屬性不同取值的査詢次數,計算屬性訪問集合Tl, ilx表示屬性P)c的訪問向量,該訪問向量值Ni代表屬性某一取值Pi在T內的訪問次數,tx為各個屬性Px的權重度;3.4) 使用公式附 加計算下一個周期內各個搜索對象的緩存權重度。
4、 根據權利要求1中所述的一種實時垂直搜索引擎對象緩存優化方法,其特征在于所述步驟2)中用戶對搜索對象的訪問符合泊松過程,且用戶對同一搜索對象的查詢量隨著時間的增長呈線性趨勢,抓取配額的初步分配符合公式藝#其中C代表總抓取次數限制,N代表搜索對象個數,Ci代表搜索對象i分配到的抓取配額;針對査詢驅動的特點進行抓取配額的初步調整符合公式<formula>formula see original document page 3</formula>其中Ci。w代表以上公式的Ci, T代表計算周期,、為用戶對搜索對象i的査詢頻率。
5、 根據權利要求1中所述的一種實時垂直搜索引擎對象緩存優化方法,其特征在于所述步驟3)中動態平衡,計算搜索對象實際數據變化頻率、的計算方法,依據以下公式乙札,乙 其中tei表示發現第i次變化的間隔,tuj表示第j次沒有發現變化的間隔,在總共n次重抓中,總共發現了 m次變化。
6、 根據權利要求1中所述的一種實時垂直搜索引擎搜索對象緩存優化方法,其特征在于所述步驟3)中的動態中,使用t表示搜索對象的更新間隔,具體方法為-[6.1) 遍歷所有搜索對象,計算每一個搜索對象的 ^t值與用戶查詢量值V,并計算每個搜索對象的V* [(l-e^t)/Vt]值,定義其為F;[6.2) 對每個搜索對象按照X^t從大到小排序,同時對每個搜索對象按V從小到大排序;[6.3) 依次篩選出、4最大,同時V最小的搜索對象與^,t最小,同時V最大的搜索對象,并將前者的抓取配額平衡給后者,直到這兩個搜索對象的F相同為止;[6.4) 不斷重復步驟6.3),直到所有搜索對象的F相同。
全文摘要
本發明公開了一種實時垂直搜索引擎對象緩存優化方法。利用對象及對象屬性之間的關系,預測不同對象的熱門度趨勢,計算不同對象的緩存權重;利用用戶對同一對象查詢符合泊松過程以及數據抓取為查詢驅動的特點,計算抓取配額在各個對象之間的初始分配和調整方法;利用數據的真實變化頻率符合泊松過程的特點,計算抓取配額在各個對象之間的動態平衡方法。本發明增加了垂直搜索引擎對數據站點抓取配額的利用率,增加了實時垂直搜索引擎用戶的體驗,實現了實時垂直搜索引擎對不同數據站點的自適應配置。
文檔編號G06F17/30GK101667198SQ20091015287
公開日2010年3月10日 申請日期2009年9月18日 優先權日2009年9月18日
發明者周佳慶, 壽黎但, 胡天磊, 剛 陳, 珂 陳 申請人:浙江大學