搜索引擎的難點包括如下幾點:
1) 是否支持并發(fā)的爬取數(shù)據(jù),如果要并發(fā),要保證所有采集器能合作采集,不會出現(xiàn)重復(fù)采集的情況.
2) 采集的數(shù)據(jù)還要有一個排重的過程. 只需要采集一個網(wǎng)站更新的數(shù)據(jù)
3) 對于需要cookie數(shù)據(jù)的網(wǎng)頁如何采集的問題,部分網(wǎng)站需要通過cookie數(shù)據(jù)登陸網(wǎng)站
4) 自動通過識別碼的驗證
5) 一些網(wǎng)站對于密集訪問的請求會拒絕,技術(shù)上也要進行處理
6) 對于一些特殊網(wǎng)頁的采集問題, 比如flash網(wǎng)頁,一些游戲網(wǎng)頁等,很多網(wǎng)站會讓采集程序陷入其中,采集數(shù)萬無效數(shù)據(jù),顯然是浪費了采集程序的精力
7) 大數(shù)據(jù)量的存儲也是個難點,據(jù)說Google的存儲是自己開發(fā)的架構(gòu),沒用任何的數(shù)據(jù)庫,因為數(shù)據(jù)庫的查詢效率還是有一定損失. 可以采用數(shù)據(jù)塊的模式,然后通過散列表的模式連接.
以上主要列出的是后臺采集器的相關(guān)技術(shù)難點,在前臺檢索、查詢效率等方面仍有許多難點.
搜索引擎的工作原理大致可以分為:
1、搜集信息:搜索引擎的信息搜集基本都是自動的。搜索引擎利用稱為網(wǎng)絡(luò)蜘蛛(spider)的自動搜索機器人程序來連上每一個網(wǎng)頁上的超連結(jié)。機器人程序根據(jù)網(wǎng)頁鏈到其他中的超鏈接,就象日常生活中所說的“一傳十,十傳百……”一樣,從少數(shù)幾個網(wǎng)頁開始,連到數(shù)據(jù)庫上所有到其他網(wǎng)頁的鏈接。理論上,若網(wǎng)頁上有適當(dāng)?shù)某B結(jié),機器人便可以遍歷絕大部分網(wǎng)頁。
2、整理信息:搜索引擎整理信息的過程稱為“建立索引”。搜索引擎不僅要保存搜集起來的信息,還要將它們按照一定的規(guī)則進行編排。這樣,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的資料。想象一下,如果信息是不按任何規(guī)則地隨意堆放在搜索引擎的數(shù)據(jù)庫中,那么它每次找資料都得把整個資料庫完全翻查一遍,如此一來再快的計算機系統(tǒng)也沒有用。
3、接受查詢:用戶向搜索引擎發(fā)出查詢,搜索引擎接受查詢并向用戶返回資料。搜索引擎每時每刻都要接到來自大量用戶的幾乎是同時發(fā)出的查詢,它按照每個用戶的要求檢查自己的索引,在極短時間內(nèi)找到用戶需要的資料,并返回給用戶。目前,搜索引擎返回主要是以網(wǎng)頁鏈接的形式提供的,這些通過這些鏈接,用戶便能到達(dá)含有自己所需資料的網(wǎng)頁。通常搜索引擎會在這些鏈接下提供一小段來自這些網(wǎng)頁的摘要信息以幫助用戶判斷此網(wǎng)頁是否含有自己需要的內(nèi)容。
八卦說事:互動百科斗法百度百科的新武器