![](http://static.javashuo.com/static/loading.gif)
下載地址:http://pan.baidu.com/s/1bwTniQ算法
互聯網產品形形色色,有產品導向的,有營銷導向的,也有技術導向的,可是以技術見長的互聯網產品比例相對小些。搜索引擎是目前互聯網產品中最具技術含量的產品,若是不是惟一,至少也是其中之一。緩存
通過十幾年的發展,搜索引擎已經成爲互聯網的重要入口之一,Twitter聯合創始人埃文?威廉姆斯提出了「域名已死論」:好記的域名再也不重要,由於人們會經過搜索進入網站。搜索引擎排名對於中小網站流量來講相當重要。瞭解搜索引擎簡單界面背後的技術原理其實對不少人都很重要。網絡
爲何會有這本書
最初寫本搜索引擎技術書籍的想法萌生於兩年前,當時的場景是要給團隊成員作搜索技術培訓,可是我找遍了相關圖書,卻沒有發現很是合適的搜索技術入門書籍。當時市面上的書籍,要麼是信息檢索理論方面的專著,理論性太強不易懂,並且真正講搜索引擎技術的章節並不太多;要麼是Lucene代碼分析這種過於實務的書籍,像搜索引擎這種充滿算法的應用,直接分析開源系統代碼並非很是高效的學習方式。因此當時萌生了寫一本既通俗易懂,適合沒有相關技術背景的人員閱讀,又比較全面,且融入最新技術的搜索引擎書籍,可是真正動手開始寫是一年前的事情了。架構
寫書前我給本身定了幾個目標。首先內容要全面,即全面覆蓋搜索引擎相關技術的主要方面,不只要包含倒排索引、檢索模型和爬蟲等常見內容,也要詳細講解連接分析、網頁反做弊、用戶搜索意圖分析、雲存儲及網頁去重,甚至是搜索引擎緩存等內容,這些都是一個完整搜索引擎的有機構成部分,可是詳述其原理的書籍並很少,我但願可以儘量全面些。框架
第二個目標是通俗易懂。我但願沒有任何相關技術背景的人也可以經過閱讀這本書有所收穫,最好是不懂技術的同窗也能大體看懂。這個目標看似簡單,其實很不容易達到,我也不敢說這本書已經達到了此目的,可是確實已經盡本身所能去作了。至於具體的措施,則包含如下三個方面。機器學習
- 一個是儘量減小數學公式的出現次數,除非不得已不羅列公式。雖然說數學公式具簡潔之美,可是大多數人其實對於數學符號是有恐懼和逃避心理的,多年前我也有相似心理,因此但凡可能,儘可能不用數學公式。
- 一個是儘量多舉例子,尤爲是一些比較難理解的地方,須要例子來增進理解。
- 還有一個是多畫圖。就我我的的經驗來講,儘管算法或者技術是很抽象的,可是若是深刻理解其原理,去繁就簡,那麼必定能夠把算法轉換成形象的圖片。若是不能在頭腦中造成算法直觀的圖形表示,說明並未透徹瞭解其原理。這是我判斷本身是否深刻理解算法的一個私有標準。鑑於此,本書中在講解算法的地方,大量採用了算法原理圖,全書包含了超過300幅算法原理講解圖,相信這對於讀者深刻理解算法會有很大的幫助。
第三個目標是強調新現象新技術,好比Google的咖啡因系統及Megastore等雲存儲系統、Pregel雲圖計算模型、暗網爬取技術、Web 2.0網頁做弊、機器學習排序、情境搜索、社會化搜索等在相關章節都有講解。分佈式
第四個目標是強調原理,不糾纏技術細節。對於新手一個易犯的毛病是喜歡摳細節,只見樹木不見森林,搞明白了一個公式卻不瞭解其背後的基本思想和出發點。我接觸的技術人員不少,十有七八會有這個特色。這裏有個「道術孰優」的問題,何爲「道」?何爲「術」?舉個例子的話,《孫子兵法》是道,而《三十六計》則爲術。「道」所述,是宏觀的、原理性的、長久不變的基本原理,而「術」則是在遵循基本原理基礎上的具體手段和措施,具備易變性。技術也是如此,算法自己的細節是「術」,算法體現的基本思想則是「道」,知「道」而學「術」,二者雖不可偏廢,可是若要選擇優先級的話,無疑我會選擇先「道」後「術」。oop
以上四點是寫書前定下的目標,如今書寫完了,也許不少地方不能達到最初的指望,可是盡了力就好。寫書的過程很辛苦,起碼比我原先想象的要辛苦,由於工做繁忙,因此只能天天早早起牀,再加上週末及節假日的時間來完成。也許書中還存在這樣那樣的缺點,可是我能夠無愧地說寫這本書是有誠意的。學習
這本書是寫給誰的
若是您是下列人員之一,那麼本書就是寫給您的。優化
- 對搜索引擎核心算法有興趣的技術人員
- 搜索引擎的總體框架是怎樣的?包含哪些核心技術?
- 網絡爬蟲的基本架構是什麼?常見的爬取策略是什麼?什麼是暗網爬取?如何構建分佈式爬蟲?百度的阿拉丁計劃是什麼?
- 什麼是倒排索引?如何對倒排索引進行數據壓縮?
- 搜索引擎如何對搜索結果排序?
- 什麼是向量空間模型?什麼是機率模型?什麼是BM25模型?什麼是機器學習排序?它們之間有何異同?
- PageRank和HITS算法是什麼關係?有何異同?SALSA算法是什麼?Hilltop算法又是什麼?各類連接分析算法之間是什麼關係?
- 如何識別搜索用戶的真實搜索意圖?用戶搜索目的能夠分爲幾類?什麼是點擊圖?什麼是查詢會話?相關搜索是如何作到的?
- 爲何要對網頁進行去重處理?如何對網頁進行去重?哪一種算法效果較好?
- 搜索引擎緩存有幾級結構?核心策略是什麼?
- 什麼是情境搜索?什麼是社會化搜索?什麼是實時搜索?
- 搜索引擎有哪些發展趨勢?
- 若是您對其中三個以上的問題感興趣,那麼這本書就是爲您而寫的。
- 對雲計算與雲存儲有興趣的技術人員
- 什麼是CAP原理?什麼是ACID原理?它們之間有什麼異同?
- Google的整套雲計算框架包含哪些技術?Hadoop系列和Google的雲計算框架是什麼關係?
- Google的三駕馬車GFS、BigTable、MapReduce各自表明什麼含義?是什麼關係?
- Google的咖啡因系統的基本原理是什麼?
- Google的Pregel計算模型和MapReduce計算模型有什麼區別?
- Google的Megastore雲存儲系統和BigTable是什麼關係?
- 亞馬遜公司的Dynamo系統是什麼?
- 雅虎公司的PNUTS系統是什麼?
- Facebook公司的Haystack存儲系統適合應用在什麼場合?
- 若是您對上述問題感興趣,相信能夠從書中找到答案。
- 從事搜索引擎優化的網絡營銷人員及中小網站站長
- 搜索引擎的反做弊策略是怎樣的?如何進行優化避免被認爲是做弊?
- 搜索引擎如何對搜索結果排序?連接分析和內容排序是什麼關係?
- 什麼是內容農場?什麼是連接農場?它們是什麼關係?
- 什麼是Web 2.0做弊?有哪些常見手法?
- 什麼是SpamRank?什麼是TrustRank?什麼又是BadRank?它們是什麼關係?
- 咖啡因系統對網頁排名有何影響?
- 最近有一批電子商務網站針對搜索引擎優化,結果被Google認爲是黑帽SEO而致使搜索排名降權,如何避免這種狀況?從事相關行業的營銷人員和網站站長應該深刻了解搜索引擎反做弊的基本策略和方法,甚至是網頁排名算法等搜索引擎核心技術。SEO技術說到底其實很簡單,雖然不斷髮生變化,可是不少原理性的策略老是類似的,萬變不離其宗,深刻了解搜索引擎相關技術原理將造成您的行業競爭優點。
- 做者本身
做者: 張俊林