-
搜尋引擎雖然已經發展得很不錯了,但是還是面臨很多技術挑戰,主要有:
1.頁面抓取需要快而全面
我們知道,網路是一個動態的內容更新,每天都會有很多人在網路上發布新內容,或者更新舊內容,搜尋引擎就是要從這些海量的資訊中抓取最符合用戶搜尋意圖的網頁,面對已經存在的海量資訊而且每秒鐘還在幾何級增長的資訊量,搜尋引擎的工作量是非常大的,搜尋引擎程式每更新一次程式要花許多時間的,特別是在剛誕生的時候,更新的周期有時候竟然能達到幾個月更新一次,試想一下,在幾月內又會有多少網頁更新和新產生了呢?這樣的搜尋結果往往是滯後的。要返回最好的搜尋結果,搜尋蜘蛛必須抓取盡量比較全面的網頁,這就需要搜尋引擎解決許多技術上的問題。也是它面臨的主要挑戰。
2、海量儲存數據
網路上的資訊是巨大的,大的幾乎你不能想像,而且每天還會有許多新的資訊產生,搜尋引擎再抓取了這些頁面後,還必須以一定的資料格式儲存起來,資料結構要求合理,而且要具備非常高的擴展性。資料寫入速度要很快,存取的速度也經夠快。搜尋引擎除了要儲存大量的頁面本身資訊外,為了更好的進行索引及排序,還必須要儲存頁面與頁面之間的連結關係,頁面的歷史數據,以及許多索引資訊。這些數據量都是非常巨大的。這樣大規模的資料儲存和讀取肯定存在著許多技術方面的挑戰。
3.索引處理快速有效,而且要有可擴展性
搜尋引擎將頁面資料抓取和儲存後,還要進行許多頁面的索引處理。例如頁面之間連結關係的計算,正向索引、反向索引等。例如還有Google的PR計算等,搜尋引擎必須進行大量的索引工作才能快速的返回搜尋結果,而且進行索引的過程中,還有大量的新頁面在產生,搜尋引擎的索引處理程序還要有比較好的擴展性。
4.查詢處理快速準確
前邊那幾步都是在搜尋引擎的後台程式運行的,而查詢階段是使用者能夠看到結果的一個步驟。我們在搜尋引擎的搜尋框中輸入關鍵字點擊搜尋後,往往不到一秒鐘時間搜尋引擎就能夠返回結果給我們,雖然表面看起來簡單,可是對於搜尋引擎來說,卻是一個非常複雜的過程。裡邊牽涉很多演算法。它需要在不到一秒的時間內快速從符合基本條件的網頁中找到合理的頁面,排名在搜尋引擎的前邊。我們知道,百度是最多我們可以看到76頁的結果,Google要多一點,可以看到最多100頁的結果。
文章來源: http://www.suptb.cn/轉載請註明出處,謝謝
感謝danieldu2008 的投稿