總體來說,搜索引擎主要會面對以下幾方面的挑戰
1.頁面抓取需要快而全面
互聯網是一個動態的內容網絡,每天有無數頁面被更新、創建,無數用戶在網站上發布內容、溝通聯系,要返回最有用的內容,搜索引擎就要抓取最新的頁面,但是由于頁面數量巨大,搜索引擎蜘蛛更新一次數據庫中的頁面要花很長時間,搜索引擎剛誕生時,這個抓取周期往往以幾個月計算,這也就是Google在 2003 年以前每個月有一次大更新的原因所在。
現在主流搜索引擎都已經能在幾天之內更新重要頁面,權重高的網站上的新文件幾小時甚至幾分鐘之內就會被收錄,不過,這種快速收錄和更新也只能局限于高權重網站,很多頁面幾個月不被重新抓取和更新,也是非常常見的。
要返回最好的結果,搜索引擎也必須抓取盡量全面的頁面,這就需要解決很多技術問題。一些網站并不利于搜索引擎蜘蛛爬行和抓取,諸如網站鏈接結構的缺陷、大量使用Flash,JavaScript 腳本,或者把內容放在用戶必須登錄以后才能訪問的部分,都增大了搜索引擎抓取內容的難度。
2.海量數據存儲
一些大型網站單是一個網站就有百萬千萬個頁面,可以想象網上所有網站的頁面加起來是一個什么數據量。搜索引擎蜘蛛抓取頁面后,還必須有效存儲這些數據,數據結構必須合理,具備極高的擴展性,寫入及訪問速度要求也很高。
除了頁面數據,搜索引擎還需要存儲頁面之間的鏈接關系及大量歷史數據,這樣的數據量是用戶無法想象的,據說 Google 有幾十個數據中心,上百萬臺服務器,這樣大規模的數據存儲和訪問必然存在很多技術挑戰 。
我們經常在搜索結果中看到,排名會沒有明顯原因地上下波動,甚至可能刷新一下頁面,就看到不同的排名,有的時候網站數據也可能丟失。這些都可能與大規模數據存儲的技術難題有關。
3.索引處理快速有效,具可擴展性
搜索引擎將頁面數據抓取和存儲后,還要進行索引處理,包括鏈接關系的計算、正向索引、倒排索引等。由于數據庫中頁面數量大,進行PR 之類的迭代計算也是耗時費力的要想及時提供相關又及時的搜索結果,僅僅抓取沒有用,還必須進行大量索引計算。由于隨時都有新數據、新頁面加入,因此索引處理也要具備很好的擴展性。
4.查詢處理快速準確
查詢是普通用戶唯一能看到的搜索引擎工作步驟。用戶在搜索框輸入關鍵詞,單擊“搜索”按鈕后,通常不到一秒鐘就會看到搜索結果。表面最簡單的過程,實際上涉及非常復雜的后臺處理。在最后的查詢階段,最重要的難題是怎樣在不到一秒鐘的時間內,快速從幾十萬、幾百萬,甚至幾千萬包含搜索詞的頁面中,找到最合理、最相關的 1000個頁面并且按照相關性、權威性排列。
5.判斷用戶意圖及人工智能
應該說前4個挑戰現在的搜索引擎都已經能夠比較好地解決,但判斷用戶意圖還處在初級階段,不同用戶搜索相同的關鍵詞,很可能是在尋找不同的東西。比如搜索“蘋果”,用戶到底是想了解蘋果這個水果,還是蘋果電腦? 還是電影《蘋果》的信息? 沒有上下文,沒有對用戶個人搜索習慣的了解,就完全無從判斷。
搜索引擎目前正在致力于基于用戶搜索習慣及歷史數據的了解上,判斷搜索意圖,返回更相關的結果。蕪湖網站建設今后搜索引擎是否能達到人工智能水平,真正了解用戶搜索詞的意義和目的,讓我們拭目以待。
本文地址:http://m.knowyourextract.com//article/2718.html