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