搜索引擎面對(duì)的挑戰(zhàn)
搜索引擎系統(tǒng)是復(fù)雜的計(jì)算系統(tǒng)之一,當(dāng)今主流搜索引擎服務(wù)商都是財(cái)力,人力,技術(shù)雄厚的大公司。即使是實(shí)力雄厚的大公司,也還是要面臨很多技術(shù)挑戰(zhàn)。
總的來(lái)說(shuō),搜索引擎主要面臨以下幾方面的挑戰(zhàn)。
1、頁(yè)面抓取需要快而全面
互聯(lián)網(wǎng)是一個(gè)動(dòng)態(tài)的內(nèi)容網(wǎng)絡(luò),每天有無(wú)數(shù)頁(yè)面被更新、創(chuàng)建、無(wú)數(shù)用戶在網(wǎng)站上發(fā)布內(nèi)容、溝通聯(lián)系。想要返回最有用的內(nèi)容,搜索引擎就要抓取最新的頁(yè)面。但由于頁(yè)面數(shù)量巨大,搜索引擎蜘蛛每更新一次數(shù)據(jù)庫(kù)中地頁(yè)面都要花很長(zhǎng)時(shí)間。
主流的搜索引擎能在幾天之內(nèi)更新重要頁(yè)面了,高權(quán)重網(wǎng)站上的新文件在幾小時(shí)甚至幾分鐘之內(nèi)就會(huì)被收錄。不過(guò),這種快速被收錄和更新的情況也只局限于高權(quán)重網(wǎng)站,很多頁(yè)面幾個(gè)月不被重新抓取和更新也是常見的。
2、海量數(shù)據(jù)存儲(chǔ)
搜索引擎蜘蛛抓取頁(yè)面后,還必須有效的存儲(chǔ)這些數(shù)據(jù)。
除了頁(yè)面數(shù)據(jù),搜索引擎還需要存儲(chǔ)頁(yè)面之間的鏈接關(guān)系和大量歷史數(shù)據(jù),這樣的數(shù)據(jù)量是用戶無(wú)法想象的。據(jù)估測(cè),百度有三四十萬(wàn)臺(tái)服務(wù)器,Google有幾十個(gè)數(shù)據(jù)中心,上百萬(wàn)臺(tái)服務(wù)器。這樣大規(guī)模的數(shù)據(jù)存儲(chǔ)和訪問必然存在很多技術(shù)挑戰(zhàn)。
我們經(jīng)常在搜索結(jié)果中看到,排名會(huì)沒有明顯原因地上下波動(dòng),甚至可能刷新一下頁(yè)面,就會(huì)看到不同的排名,有的時(shí)候網(wǎng)站數(shù)據(jù)也可能丟失。這些情況有時(shí)候與大規(guī)模數(shù)據(jù)存儲(chǔ)、同步的技術(shù)難題有關(guān)。
3、索引處理快速有效,具有可擴(kuò)展性
搜索引擎將頁(yè)面數(shù)據(jù)抓取和存儲(chǔ)后,還要進(jìn)行索引處理,包括鏈接關(guān)系的計(jì)算、正向索引、倒排索引等。由于數(shù)據(jù)庫(kù)中頁(yè)面數(shù)量大,進(jìn)行PR值之類的迭代計(jì)算也是耗時(shí)費(fèi)力的。要想提供相關(guān)又及時(shí)的搜索結(jié)果,僅靠抓取是沒有用的,還必須進(jìn)行大量的索引計(jì)算。由于隨時(shí)有新數(shù)據(jù),新頁(yè)面加入,索引處理也要具備很好的擴(kuò)展性。
4、查詢處理快速準(zhǔn)確
查詢是普通用戶唯一能看到的搜索引擎工作步驟。用戶在搜索框輸入查詢?cè)~,點(diǎn)擊搜索按鈕后,通常不到一秒,搜索結(jié)果頁(yè)面就會(huì)顯示相關(guān)、質(zhì)量高、有用的信息,并按照相關(guān)性、權(quán)威性排列。
這考驗(yàn)了搜索引擎怎樣在不到一秒的時(shí)間內(nèi),從可能多達(dá)上億個(gè)包含查詢?cè)~的頁(yè)面中,快速找到最合適的頁(yè)面并計(jì)算排名。
5、準(zhǔn)確判斷用戶的搜索意圖
搜索引擎目前下在致力于基于對(duì)用戶搜索習(xí)慣的了解、歷史數(shù)據(jù)的積累,在語(yǔ)義搜索技術(shù)的基礎(chǔ)上,判斷搜索意圖,返回更相關(guān)的結(jié)果。