<li id="pf9os"><acronym id="pf9os"></acronym></li>

<button id="pf9os"></button>

<button id="pf9os"><object id="pf9os"><input id="pf9os"></input></object></button>
  •  aihot  2020-11-12 11:22:34  OpenCV |   查看評論   

    SimHash

      基本思路如上圖所示。先通過分組匹配找到與新網頁A/B/C/D塊對應位置范圍內完全相同的網頁,再一一匹配查找是否存在完全相同的文檔指紋,當然我們也可以不以完全相同為標準,比如海明距離3以內即可。

    搜索引擎緩存機制

      搜索引擎通常通過緩存,也即在高速內存硬件設備內開辟一塊數據存儲區,用來容納常見的用戶查詢及搜索結果(或者索引數據及搜索的中間結果),同時采取一定的管理策略來維護存儲區內的數據。

    搜索引擎緩存系統架構

      緩存系統包含兩個部分,即緩存存儲區及緩存管理策略。緩存存儲區是高速內存中的一種數據結構,可以存放某個查詢對應的搜索結果,也可以存放搜索中間結果,比如一個查詢單詞的倒排列表。緩存管理策略又包含兩個子系統,即緩存淘汰策略和緩存更新策略。

      對于一個優秀的緩存系統來說,應該最大化緩存命中率以及保持緩存內容與索引內容一致

      常見的緩存對象可以是搜索結果,或者查詢詞匯對應的倒排列表。對于搜索結果型緩存來說,用戶查詢的響應速度非常快;而倒排列表型緩存的命中率高。有時候我們還可以保存兩個經常搭配出現單詞的倒排列表的交集,以這種中間結果形式作為緩存內容。

      搜索引擎緩存的結構設計可以有多種選擇,最常見的是單級緩存,也可以設計為二級甚至是三級緩存結構,比如二級緩存,就可以第一級緩存是搜索結果型緩存,第二級是倒排列表型緩存,這就兼有了響應速度快和命中率高這兩個優點。

    緩存淘汰策略

      緩存淘汰策略和操作系統中的內存管理策略有相似的地方。

    動態策略

      動態策略的緩存數據完全來自于在線用戶查詢請求,這種緩存策略的基本思路是:對緩存項保留一個權重值,這個權重值根據查詢命中情況動態調整,當緩存已滿的情況出現時,優先淘汰權重值最低的那個緩存項。

      比如LRU策略,就是最近最少使用策略,淘汰掉最近最少使用的緩存內容。Landlord策略是一種加權緩存策略,計算出緩存項目的性價比,然后如果緩存已滿,淘汰掉性價比低的緩存內容。還有SLRU策略,這是對LRU策略的改進,緩存被分為了保護區和非保護區,每個區域的緩存都按使用頻度由高到低排序,如果緩存未命中,則放入非保護區高頻端(MRU),如果命中了,則放入保護區高頻端,這樣保護區的記錄最少要被訪問兩次。

    混合策略

      混合策略是指其緩存數據一方面來自于用戶查詢,另一方面來自于搜索日志等歷史數據。

      比如SDC策略:靜態動態混合緩存策略(Static and Dynamic Caching),靜態緩存就事先根據搜索日志統計出最高頻的那部分查詢請求,動態就結合LRU或者SLRU這些動態策略來搞。SDC策略是目前效果最好的緩存策略之一。還有AC策略,這里就不詳細說了。

    緩存更新策略

     

      目前的緩存更新策略可以分為兩種:緩存--索引密切耦合策略和緩存--索引非耦合策略。

      緩存--索引密切耦合策略就是在索引和緩存之間增加一種直接的變換通知機制,一旦索引內容發生變化則通知系統緩存,然后系統緩存將改變的內容進行更新。

      緩存--索引非耦合策略就是給每個緩存項設置一個過期值,隨著時間流逝,緩存項會逐漸過期。

      當然如果內容更新不頻繁,也可以簡單的,等到夜深人靜的時候統一更新緩存就是了。

     

    除特別注明外,本站所有文章均為 人工智能學習網 原創,轉載請注明出處來自淺談搜索引擎基礎(下)

    留言與評論(共有 0 條評論)
       
    驗證碼:
    日本最新免费二区三区