亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于抽樣的分布式搜索結果合并翻頁方法及系統(tǒng)的制作方法

文檔序號:6546575閱讀:300來源:國知局
一種基于抽樣的分布式搜索結果合并翻頁方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于抽樣的分布式搜索結果合并翻頁方法及系統(tǒng),旨在顯著降低分布式搜索結果合并翻頁過程中,存在的網(wǎng)絡帶寬和計算消耗較大的問題,同時本發(fā)明亦可改良后應用于其它分布式查詢系統(tǒng)的結果合并翻頁中。其技術方案為:對索引數(shù)據(jù)切片,形成索引文件切片,然后分到各個切片搜索服務器(shard-search?server)上,完成了索引文件的初始化工作;搜索結果合并節(jié)點(gather)接收外部系統(tǒng)的合并翻頁請求,進入基于抽樣的分布式搜索結果合并翻頁具體步驟。
【專利說明】一種基于抽樣的分布式搜索結果合并翻頁方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于海量數(shù)據(jù)處理【技術領域】,具體涉及一種針對分布式搜索結果合并翻頁問題的方法及系統(tǒng)。
【背景技術】
[0002]電子商務平臺(B2B、B2C等)的出現(xiàn)極大地方便了人們的生活,當人們越來越多地依賴這些平臺時,也對平臺本身提出了更高的要求:比如,在淘寶、京東等交易平臺上,人們希望能夠更多、更快、更精準地發(fā)現(xiàn)自己需要的商品;而對于電商企業(yè)而言,要滿足人們的這些要求,在技術層面上通常需要一款高效、精準的海量搜索系統(tǒng)。由于檢索數(shù)據(jù)龐大且快速增長,傳統(tǒng)的集中式的搜索系統(tǒng)已經越來越不能勝任大型電商平臺的檢索任務。
[0003]隨著分布式及數(shù)據(jù)切片技術的發(fā)展,市面上出現(xiàn)了基于數(shù)據(jù)切片的分布式搜索系統(tǒng),其中以apache開源的solr及Elasticsearch公司的elasticsearch較具代表性。這些分布式的搜索系統(tǒng)都具備較好的可擴展性,能夠將數(shù)據(jù)分片索引于龐大的機器集群上,這為解決海量數(shù)據(jù)的檢索問題提供了方案。然而由于切片技術本身的局限性,這些搜索系統(tǒng)也存在著一些問題,搜索結果的合并翻頁就是其中較為突出的一個問題。試想這樣一個需求:用戶需要獲取某次搜索結果中,排序位次是第951名到第1000名的50條記錄。
[0004]對于這樣一個問題,現(xiàn)有的分布式搜索系統(tǒng)的解決辦法通常有兩個:其一,向每個搜索切片發(fā)送檢索請求,并獲取各自檢索結果的前1000名,然后在一個合并節(jié)點上,對來自于各個切片的搜索進行合并,最后取出其中位于第951名到第1000名間的50條記錄;其二,忽略排名的嚴格要求,近似地認為各個切片上對等位次的記錄在合并結果中的排名基本相當,如此即可簡單地從各個切片上對等地獲取少量記錄“湊”成目標翻頁。然而,這兩個方案都存在著各自嚴重的問題。對于方案一,目標翻頁的記錄數(shù)只有50,而搜索系統(tǒng)卻需要從各個切片上各自獲取1000條記錄,如果切片數(shù)量為n,那么一次搜索請求需要傳輸和重排序的記錄數(shù)就是nX 1000 ;如此拓展開來,當用戶所需的翻頁很深時,就會帶來巨大的網(wǎng)絡帶寬和計算開銷;而對于方案二,很明顯它犧牲了排名的準確性,這對于類似于B2B的電商平臺來說,由于排名涉及到其會員的重要利益,顯然是不能容忍的。那么,一個高效且精確的、針對分布式搜索結果的合并、排序、翻頁方案就成了當前迫切需要解決的問題。
[0005]在這個問題上,專利“合并排序分布式數(shù)據(jù)的方法”(申請?zhí)?CN03152258.0)做了相關研究,其提出的方法主要為:切片節(jié)點分別完成查詢及排序工作,然后由合并節(jié)點逐次向切片節(jié)點順序地預取一個小批量的結果集(如:每批次40條記錄);每獲取一個批次的記錄后,合并節(jié)點對現(xiàn)有記錄集進行一次排序,并根據(jù)排序結果決定向哪些切片請求下一批次的記錄;如此往復,直到合并節(jié)點獲取到用戶所需的全部記錄為止。該專利提出的方法在一定程度上解決了數(shù)據(jù)過度傳輸和合并的問題。然而該專利在使用場景上卻存在著明顯的局限性,首先該專利是針對主從式可堆棧網(wǎng)絡裝置的排序性能問題提出的,因此它所解決的是如何高效地獲取前若干個記錄的問題;而本發(fā)明所提出的問題是:如何高效地獲取指定翻頁,即獲取排序結果中一個特定片段的問題,此問題實際上具有更強的“隨機性”。
【發(fā)明內容】

[0006]為解決上述問題,本發(fā)明設計了一種基于抽樣的分布式搜索結果合并翻頁方法及系統(tǒng),旨在顯著降低分布式搜索結果合并翻頁過程中,存在的網(wǎng)絡帶寬和計算消耗較大的問題,同時本發(fā)明亦可改良后應用于其它分布式查詢系統(tǒng)的結果合并翻頁中。
[0007]本專利提供的具體技術方案如下:
[0008]一種基于抽樣的分布式搜索結果排序翻頁方法,包括:
[0009]對索引數(shù)據(jù)切片(通?;谝恢滦詇ash值),形成索引文件切片,然后分到各個切片搜索服務器(下文稱shard-search server)上,完成了索引文件的初始化工作。
[0010]搜索結果合并節(jié)點(下文稱gather)接收外部系統(tǒng)的合并翻頁請求,進入步驟I。
[0011]步驟1:gather分別向shard-search server發(fā)送查詢及針對搜索結果的抽樣請求,并等待響應結果。
[0012]步驟2:shard-search server依照查詢條件檢索,并對命中結果排序,最后從排序結果中獲取能夠涵蓋當前翻頁的前若干條記錄,若這些記錄數(shù)量并不巨大,可將這些記錄數(shù)據(jù)存放于臨時緩存中(以備步驟6的記錄召回);針對這些記錄,shard-search server以固定步長(如:50)做整數(shù)倍抽樣,并將抽樣記錄返回。
[0013]步驟3:gather在獲取到各shard-search server的抽樣結果后,將它們按照排序域值做統(tǒng)一排序。
[0014]步驟4:基于步驟3的排序結果,gather進一步計算出所需目標翻頁的記錄在各個切片上的大致開始位置(以下稱startpoint),同時將肯定不屬于目標翻頁的記錄排除在外。
[0015]步驟5:基于步驟4的結果,gather向各個切片發(fā)起召回記錄的請求,這些請求只召回從startpoint向下的少量記錄,其數(shù)量是抽樣步長與翻頁尺寸的和,其中翻頁尺寸指的是一頁包含搜索記錄的數(shù)量。
[0016]步驟6:各shard-search server接收到記錄召回請求后,優(yōu)先從步驟2中所述的記錄緩存中獲取所需記錄,并將其所對應的緩存清空;如緩存中不存在相應記錄,則可進行二次查找,最后返回目標記錄。
[0017]步驟7:gather在獲取到各shard-search server的召回結果后,將其再次按照排序域值排序,再結合各個切片對應的startpoint從排序結果中截取出目標翻頁記錄,至此整個過程完畢。
[0018]一種基于抽樣的分布式搜索結果合并翻頁系統(tǒng),包括:
[0019]gather (搜索結果合并節(jié)點)和shard-search server (搜索切片服務器)兩個大部分,其中gather進一步細化為TopSamplesFetcher (記錄抽樣抓取器)、TopSamplesMerger (記錄抽樣合并器)>ApproximateStartPointsCalculator (翻頁近似起點計算器)、PageFetcher (指定翻頁抓取器)、PageMerger (指定翻頁合并截取器)幾個主要部件;而shard-search server則主要包括TopSampler (記錄抽樣器)、TopSearcher (記錄查詢器)、TopResultTmpCache (記錄結果臨時緩存器)、PageGetter (翻頁獲取器)幾個主要部件。
[0020]整體上,gather與shard-search server通過網(wǎng)絡進行通信(本發(fā)明省略說明),它們按照不同的請求各自調用內部部件進行處理,并交換計算結果,最終由gather完成最后翻頁結果的計算并返回。
[0021]gather,是整個系統(tǒng)的樞紐,用于接收外部系統(tǒng)的排序翻頁請求,并按請求信息向shard-search server分兩次發(fā)送抽樣、召回請求,其中召回請求需基于gather對于抽樣
集合的計算結果-startpoint ;最后,gather從召回的結果中準確計算出當前的目標翻
頁記錄并返回給外部系統(tǒng)。
[0022]TopSamplesFetcher,用于抓取shard-search server查詢請求結果的抽樣,包括并發(fā)地向shard-search server發(fā)送抽樣請求,并接收抽樣結果。
[0023]TopSamplesMerger,用于按查詢域排序合并TopSamplesFetcher的抓取結果。
[0024]ApproximateStartPointsCalculator,根據(jù) TopSamplesMerger 的合并結果,計算出各個 shard-search server 對應的 startpoint。
[0025]PageFetcher,根據(jù) ApproximateStartPointsCalculator 的計算結果,向各個shard-search server發(fā)起記錄召回請求,并接收召回結果。
[0026]PageMerger,對PageFetcher的結果做最后的合并,并按照startpoint準確地從排序結果中截取出目標翻頁記錄,將結果返回gather。
[0027]shard-search server,負責接收并協(xié)調內部部件處理來自于gather的抽樣和召回請求,最后將處理結果返回gather。
[0028]TopSearcher,用于執(zhí)行具體的記錄查詢任務,它將命中結果進行初始排序,并截取出能夠覆蓋當前翻頁的前若干條記錄。
[0029]TopResultTmpCache,用于緩存TopSearcher的最終截取結果,該緩存與具體的
排序翻頁請求--對應,即一次完整的排序翻頁請求完成后,其對應緩存將被一并清除;
此外,為防止內存的無限制開銷,本發(fā)明對緩存中存放實體的數(shù)目做了上限控制,一旦達到了緩存上限將按照LRU算法自動將部分實體數(shù)據(jù)驅逐出緩存。其中,LRU算法是LeastRecently Used的縮寫,即最少使用頁面置換算法,是為虛擬頁式存儲管理服務的。
[0030]TopSampler,接受 shard-search server 的調用,并分別調用 TopSearcher 和TopResultTmpCache獲取并緩存能夠覆蓋當前翻頁的前若干條記錄,最后對這些記錄按固定步長進行抽樣并返回抽樣結果。
[0031]PageGetter,接受shard-search server的調用,負責取出需要召回的記錄,它將根據(jù)實際情況決定從TopResultTmpCache直接獲取目標記錄,或是發(fā)起二次查詢獲取目標記錄。
[0032]本發(fā)明與現(xiàn)有技術相比,其顯著優(yōu)點:
[0033]I)能夠支持分布式搜索領域的大結果集的合并及高深度翻頁,同時本發(fā)明并不局限于搜索領域,具有較高的通用性。
[0034]2)通過將合并翻頁的過程所需的數(shù)據(jù),分解為抽樣和召回兩次請求來獲取,一方面避免了大量的記錄數(shù)據(jù)從shard-search server向gather傳輸,同時也避免了 gather對它們的完全再排序,極大地降低網(wǎng)絡帶寬和計算消耗。
[0035]3)在保證效率的同時,本發(fā)明仍不失排序的嚴格性,這滿足了那些對排序有著嚴格要求的應用場景。
[0036]4)本發(fā)明中,shard-search server在抽樣階段對命中的記錄結果做了選擇性緩存,這很好地避免了記錄召回階段二次查詢操作的發(fā)生,極大提升了整個合并翻頁過程的效率。
【專利附圖】

【附圖說明】
[0037]圖1為本發(fā)明實施例的系統(tǒng)結構圖。
[0038]圖2為本發(fā)明實施例的合并翻頁方法整體時序圖。
[0039]圖3為本發(fā)明實施例的抽樣合并及startpoint計算過程圖。
[0040]圖4為本發(fā)明實施例的召回記錄合并及翻頁截取過程圖。
【具體實施方式】
[0041]為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖和具體實施例對本發(fā)明進行詳細描述。
[0042]如圖1所示,為本發(fā)明實施例的系統(tǒng)結構,為了描述方便,假設本實施例中把索引文件數(shù)據(jù)拆分成兩個切片,分別部署于2個shard-search server,包括:
[0043]一 個 gather serverlOl,其中內置 TopSamplesFetcherl02、TopSamplesMerger 103、ApproximateStartPointsCalculator 104、PageFetcher 105、PageMergerl06 幾個部件;兩個切片搜索服務器 shardl-search serverl07、shardl_searchserverll2,其中 shardl-search serverl07 內置 TopSamplerl08、TopSearcher 109>TopResultTmpCachel 10、PageGetterlll 幾個部件;而另一個切片服務器 shard2_searchserver 112 貝內 置 TopSampler 113> TopSearcherl 14> TopResultTmpCachell5>PageGetterl 16 幾個部件;shardl_search serverl07 與 shard2_search server 112 分別被部署了不同的數(shù)據(jù)切片。
[0044]如圖2所示,為本發(fā)明實施例的合并翻頁方法整體時序圖,為方便下面的圖例制作及闡述方便,這里首先假設外部系統(tǒng)請求的幾個要素:1、搜索結果以記錄評分的降序排列,2、本例一頁包含5條記錄,且目標翻頁為排序結果的第56名至第60名間的5條記錄,
3、抽樣步長為10。需要聲明的是:以上條件并非本發(fā)明的局限場景,純粹為圖例制作及闡述方便而設;另外,由于切片評分的公平性并非本發(fā)明要解決的問題,這里假設各切片的評分是公平的,即可在同一環(huán)境下進行比較。其詳細過程如下:
[0045]步驟201:gather serverlOl接收到外部系統(tǒng)合并翻頁請求,調用TopSamplesFetcher 102 分別向 shardl-search server 107 和 shard2_search server 112 發(fā)送查詢及抽樣請求。
[0046]步驟2O2:shardl-search ServerlO7 和 shard2_search serverll2 接收到請求后,分別調用TopSearcher 109和TopSearcher 114執(zhí)行查詢操作,并各自將命中結果按評分排序,然后各自截取其中的前60條記錄作為結果,并將結果分別返回給TopSamplelOS和TopSamplell3。
[0047]步驟203:TopSamplel08和TopSamplell3分別對前60條記錄做步長為10的等距抽樣,如此各自抽樣出6條記錄作為抽樣集合;同時TopSamplel08和TopSamplel 13分別將各自獲取的前60條記錄緩存于臨時緩存TopResultTmpCachelll和TopResultTmpCachel 16中,以備記錄召回時取回。[0048]步驟204:shardl_search serverl07 和 shard2_search serverll2 分別將TopSamplel08 和 TopSamplell3 的抽樣結果通過網(wǎng)絡返回給 gather serverlOl。
[0049]步驟205:gather serverlOl 收到 shardl-search ServerlO7 和 shard2_searchserverll2返回的抽樣結果后,調用TopSamplesMergerl03對抽樣結果按評分做再次排序。
[0050]步驟206:ApproximateStartPointsCalculator 104 基于步驟 205 對記錄抽樣的排序結果,分別計算出針對 shardl-search serverl07 和 shard2_search serverll2 的startpoint。步驟205與本步驟具體的計算實施例如圖3所示。
[0051]主要內容包括:
[0052]1:來自于shardl-search serverl07的抽樣結果301,其中包含標識為A?F的記錄及其評分。
[0053]2:來自于shard2_search serverll2的抽樣結果302,其中包含標識為G?L的記錄及其評分。
[0054]3:ApproximateStartPointsCalculatorl04 對抽樣集合的排序結果 303,其中除了記錄標識及評分,還加入了每個記錄前置記錄的數(shù)量,以輔助startpoint計算。
[0055]4:shardl-search server 107 與 shard2_search serverl12 各自的startpoint-304 和 305。
[0056]主要計算過程包括:
[0057]1:對抽樣結果301與抽樣結果302按記錄評分重新排序,得到排序結果303。
[0058]2:根據(jù)目標翻頁排除無需召回的記錄,本例中目標翻頁是第56名到第60名間的記錄,借助于303可以確定排名位于記錄B之前的記錄無需召回;*B向上找到最近的分屬shardl-search serverl07與shard2_search serverl 12的兩個抽樣記錄,以它們做為召回記錄的startpoint,很顯然在本例中它們是記錄304和記錄305。
[0059]步驟2O7:gather serverlOl 分別向 shardl-search serverl07 與 shard2_searchserverl 12發(fā)送記錄召回請求,召回請求以各自的startpoint為起點,即startpoint之前的文檔不再召回之列。此外,為保證召回記錄的完整性,召回記錄的數(shù)量為抽樣步長與每個頁面包含搜索記錄數(shù)量的和,本例中應為10+5 = 15。
[0060]步驟208:shardl-search serverl07 與 shard2_search serverll2 分別調用PageGetterllO和PageGetterl 15獲取召回記錄。PageGetter首先嘗試從TopResultTmpCache中獲取抽樣階段記錄緩存,如能成功獲取則從中截取出需召回記錄,最后將記錄緩存從TopResultTmpCache中清除;否則將發(fā)起二次查詢,然后從查詢結果中截取出需召回記錄。
[0061]步驟2O9:shardl-search ServerlO7 與 shard2_search serverll2 分別將步驟208的召回結果通過網(wǎng)絡返回給gather serverlOl。
[0062]步驟210:gather serverlOl接收到所有的召回記錄后,首先調用PageMergerl06對它們做再次排序,然后根據(jù)startpoint從排序結果中準確計算出本次翻頁請求所需的實際記錄集合,并返回到外部系統(tǒng)。本步驟具體的計算實施例如圖4所示。
[0063]主要內容包括:
[0064]1:來自于shardl-search serverl07的記錄召回結果401,其中包含標識為B+n、C及C+n的記錄及其評分,B+n表示排名介于于B記錄與C記錄之間的記錄,而C+n則表示排名位于C記錄之后的記錄。
[0065]2:來自于shard2_search serverll2的記錄召回結果402,其中包含標識為I+n、J及J+n的記錄及其評分,I+n表示排名介于于I記錄與J記錄之間的記錄,而J+n則表示排名位于J記錄之后的記錄。
[0066]3:PageMergerl06對召回記錄集合按評分所作的重排序結果403。
[0067]4:PageMergerl06在重排序結果403基礎上,根據(jù)startpoint截取的目標翻頁結果,其中陰影部分為本例最終所需的5條記錄。
[0068]主要計算過程及原理包括:
[0069]1:對召回結果401與召回結果402按記錄評分重新排序,得到排序結果403。
[0070]2:上一步結果包含30條記錄,需要從中進一步截取出第56名到第60名間的記錄。本例中,向 shardl-search serverl07 和 shard2_search serverll2 發(fā)起召回的startpoint分別為B和I記錄;那么從全局排序上看,位于本次召回記錄集合之前的記錄應包括:位于shardl-search serverl07上的B記錄及其之前的記錄、位于shard2_searchserverll2上的I記錄及其之前的記錄,共50條記錄;因此,本次所需翻頁的第56名應對應到結果403的第6名,以此而下截取5條記錄即為本次的翻頁記錄結果,如圖4中的陰影部分所示。
[0071]本發(fā)明還可有其他多種實施方式,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員可根據(jù)本發(fā)明做出各種相應的改變和變形,這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
【權利要求】
1.一種基于抽樣的分布式搜索結果排序翻頁方法,其特征在于,包括: 對索引數(shù)據(jù)切片,形成索引文件切片,然后分到各個切片搜索服務器(shard-searchserver)上,完成了索引文件的初始化工作; 搜索結果合并節(jié)點(gather)接收外部系統(tǒng)的合并翻頁請求,進入步驟I ; 步驟1:搜索結果合并節(jié)點(gather)分別向各個切片搜索服務器發(fā)送查詢及針對搜索結果的抽樣請求,并等待響應結果; 步驟2:切片搜索服務器(shard-search server)依照查詢條件檢索,并對命中結果排序,最后從排序結果中獲取能夠涵蓋當前翻頁的前若干條記錄,針對這些記錄,切片搜索服務器以固定步長做整數(shù)倍抽樣,并將抽樣記錄返回; 步驟3:搜索結果合并節(jié)點(gather)在獲取到各個切片搜索服務器(shard-searchserver)的抽樣結果后,將它們按照排序域值做統(tǒng)一排序; 步驟4:基于步驟3的排序結果,搜索結果合并節(jié)點(gather)進一步計算出所需目標翻頁的記錄在各個切片上的大致開始位置(startpoint),同時將肯定不屬于目標翻頁的記錄排除在外; 步驟5:基于步驟4的結果,搜索結果合并節(jié)點(gather)向各個切片發(fā)起召回記錄的請求,這些請求只召回從目標翻頁記錄在各個切片上大致開始位置(startpoint)向下的少量記錄; 步驟6:各個切片搜索服務器(shard-search server)接收到記錄召回請求,查找后返回目標記錄; 步驟7:搜索結果合并節(jié)點(gather)在獲取到各個切片搜索服務器(shard-searchserver)的召回結果后,將其再次按照排序域值排序,再結合各個切片對應的目標翻頁記錄在各個切片上大致開始位置(startpoint)從排序結果中截取出目標翻頁記錄,至此整個過程完畢。
2.根據(jù)權利要求1所述的基于抽樣的分布式搜索結果排序翻頁方法,其特征在于: 步驟I中,索引數(shù)據(jù)切片是基于一致性hash值。
3.根據(jù)權利要求1所述的基于抽樣的分布式搜索結果排序翻頁方法,其特征在于: 步驟2中,若這些記錄數(shù)量并不巨大,則將這些記錄數(shù)據(jù)存放于臨時緩存中,以備步驟6的記錄召回。
4.根據(jù)權利要求1所述的基于抽樣的分布式搜索結果排序翻頁方法,其特征在于: 步驟5中,請求召回少量記錄的數(shù)量是抽樣步長與翻頁尺寸的和。
5.根據(jù)權利要求1所述的基于抽樣的分布式搜索結果排序翻頁方法,其特征在于: 步驟6中,各個切片搜索服務器(shard-search server)接收到記錄召回請求后,優(yōu)先從步驟2中所述的記錄緩存中獲取所需記錄,并將其所對應的緩存清空;如緩存中不存在相應記錄,則可進行二次查找,最后返回目標記錄。
6.一種基于抽樣的分布式搜索結果合并翻頁系統(tǒng),其特征在于,包括: 搜索結果合并節(jié)點(gather) 和搜索切片服務器(shard-search server)兩個大部分,其中所述搜索結果合并節(jié)點(gather)由記錄抽樣抓取器(TopSamplesFetcher)、記錄抽樣合并器(TopSamplesMerger)、翻頁近似起點計算器(ApproximateStartPointsCalculator)、指定翻頁抓取器(PageFetcher)、指定翻頁合并截取器(PageMerger)構成;所述搜索切片服務器(shard-search server)包括記錄抽樣器(TopSampler)、記錄查詢器(TopSearcher)、記錄結果臨時緩存器(TopResultTmpCache)、翻頁獲取器(PageGetter)。
7.根據(jù)權利要求6所述的基于抽樣的分布式搜索結果合并翻頁系統(tǒng),其特征在于: 所述搜索結果合并節(jié)點(gather)和搜索切片服務器(shard-search server)通過網(wǎng)絡進行通信,它們按照不同的請求各自調用內部部件進行處理,并交換計算結果,最終由所述搜索結果合并節(jié)點(gather)完成最后翻頁結果的計算并返回; 所述搜索結果合并節(jié)點(gather),是整個系統(tǒng)的樞紐,用于接收外部系統(tǒng)的排序翻頁請求,并按請求信息向所述搜索切片服務器(shard-search server)分兩次發(fā)送抽樣、召回請求,其中召回請求需基于所述搜索結果合并節(jié)點(gather)對于抽樣集合的計算結果——目標翻頁記錄在各個切片上大致開始位置(startpoint);最后,所述搜索結果合并節(jié)點(gather)從召回的結果中準確計算出當前的目標翻頁記錄并返回給外部系統(tǒng)。
8.根據(jù)權利要求7所述的基于抽樣的分布式搜索結果合并翻頁系統(tǒng),其特征在于: 所述記錄抽樣抓取器(TopSamplesFetcher),用于抓取所述搜索切片服務器(shard-search server) 查詢請求結果的抽樣,包括并發(fā)地向所述搜索切片服務器(shard-search server)發(fā)送抽樣請求,并接收抽樣結果; 所述記錄抽樣合并器(TopSamplesMerger),用于按查詢域排序合并所述記錄抽樣抓取器(TopSamplesFetcher)的抓取結果; 所述翻頁近似起點計算器(ApproximateStartPointsCalculator),根據(jù)所述記錄抽樣合并器(TopSamplesMerger)的合并結果,計算出各個所述搜索切片服務器(shard-searchserver)對應的目標翻頁記錄在各個切片上大致位置開始(startpoint); 所述指定翻頁抓取器(PageFetcher),根據(jù)所述翻頁近似起點計算器(ApproximateStartPointsCalculator)的計算結果,向各個所述搜索切片服務器(shard-search server)發(fā)起記錄召回請求,并接收召回結果; 所述指定翻頁合并截取器(PageMerger),對所述指定翻頁抓取器(PageFetcher)的結果做最后的合并,并按照目標翻頁記錄在各個切片上大致開始位置(startpoint)準確地從排序結果中截取出目標翻頁記錄,將結果返回所述搜索結果合并節(jié)點(gather)。
9.根據(jù)權利要求6所述的基于抽樣的分布式搜索結果合并翻頁系統(tǒng),其特征在于: 所述搜索結果合并節(jié)點(gather)和搜索切片服務器(shard-search server)通過網(wǎng)絡進行通信,它們按照不同的請求各自調用內部部件進行處理,并交換計算結果,最終由所述搜索結果合并節(jié)點(gather)完成最后翻頁結果的計算并返回; 所述搜索切片服務器(shard-search server),負責接收并協(xié)調內部部件處理來自于所述搜索結果合并節(jié)點(gather)的抽樣和召回請求,最后將處理結果返回所述搜索結果合并節(jié)點(gather)。
10.根據(jù)權利要求9所述的基于抽樣的分布式搜索結果合并翻頁系統(tǒng),其特征在于: 所述記錄查詢器(TopSearcher),用于執(zhí)行具體的記錄查詢任務,它將命中結果進行初始排序,并截取出能夠覆蓋當前翻頁的前若干條記錄; 所述記錄結果臨時緩存器(TopResultTmpCache),用于所述緩存記錄查詢器(TopSearcher)的最終截取結果,該緩存與具體的排序翻頁請求一一對應,即一次完整的排序翻頁請求完成后,其對應緩存將被一并清除;同時,緩存中存放實體的數(shù)目一旦達到了緩存上限將按照最少使用頁面置換算法(LRU)自動將部分實體數(shù)據(jù)驅逐出緩存; 所述記錄抽樣器(TopSampler),接受所述搜索切片服務器(shard-search server)的調用,并分別調用所述記錄查詢器(TopSearcher)和所述記錄結果臨時緩存器(TopResultTmpCache)獲取并緩存能夠覆蓋當前翻頁的前若干條記錄,最后對這些記錄按固定步長進行抽樣并返回抽樣結果; 所述翻頁獲取器 (PageGetter),接受所述搜索切片服務器(shard-search server)的調用,負責取出需要召回的記錄,它將根據(jù)實際情況決定從所述記錄結果臨時緩存器(TopResultTmpCache)直接獲取目標記錄,或是發(fā)起二次查詢獲取目標記錄。
【文檔編號】G06F17/30GK103942346SQ201410204444
【公開日】2014年7月23日 申請日期:2014年5月14日 優(yōu)先權日:2014年5月14日
【發(fā)明者】梁峰 申請人:焦點科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1