這就是搜尋引擎:核心技術詳解

這就是搜尋引擎:核心技術詳解

《這就是搜尋引擎:核心技術詳解》是2012年1月電子工業出版社出版的圖書,作者是張俊林。本書主要是對實際搜尋引擎所涉及的各種核心技術全面細緻的介紹。

內容簡介

這就是搜尋引擎:核心技術詳解

改變全世界人們生活方式的“信息之門”

搜尋引擎作為網際網路發展中至關重要的一種套用,已經成為網際網路各個領域的制高點,其重要性不言而喻。搜尋引擎領域也是網際網路套用中不多見的以核心技術作為其命脈的領域,搜尋引擎各個子系統是如何設計的?這成為廣大技術人員和搜尋引擎最佳化人員密切關注的內容。

本書的最大特點是內容新穎全面而又通俗易懂。除了作為搜尋系統核心的網路爬蟲、索引系統、排序系統、連結分析及用戶分析外,還包括網頁反作弊、快取管理、網頁去重技術等實際搜尋引擎必須關注的技術,同時用相當大的篇幅講解了雲計算與雲存儲的核心技術原理。另外,本書也密切關注搜尋引擎發展的前沿技術:Google的咖啡因系統及Megastore 等雲計算新技術、百度的暗網抓取技術阿拉丁計畫、內容農場作弊、機器學習排序等。諸多新技術在相關章節都有詳細講解,同時對於社會化搜尋、實時搜尋及情境搜尋等搜尋引擎的未來發展方向做了技術展望。為了增進讀者的理解,全書大量引入形象的圖片來講解算法原理,相信讀者會發現原來搜尋引擎的核心技術的理解比原先想像的要簡單得多。

本書適合所有對搜尋引擎技術感興趣的人們,尤其對於相關領域的學生、對搜尋引擎核心技術感到好奇的技術人員、從事搜尋引擎最佳化的相關人員及中小網站站長等更有參考價值。了解、溝通世界從搜尋開始。

作者簡介

張俊林:本科畢業於天津大學管理學院,2004年於中科院軟體所直接獲得博士學位並留所從事科研工作,研究方向為搜尋引擎與自然語言處理。2005年在CSDN部落格發布系列博文“搜尋引擎設計實用教程:以百度為例”,在網路上獲得了廣泛轉載與良好口碑。2006年作為聯合創始人建立了智慧型信息聚合網站“玩聚網”,曾先後於阿里巴巴搜尋技術中心任資深搜尋技術研究員、房價網首席研究員,現任職於新浪微博,從事微博搜尋與語義分析及推薦方面的研發工作。

圖書目錄

第 1 章 搜尋引擎及其技術架構......................................... 1

第2 章 網路爬蟲..................................... 12

第3 章 搜尋引擎索引.......................................... 36

第4 章 索引壓縮..................................... 76

第5 章 檢索模型與搜尋排序.............................. 99

第6 章 連結分析.................................... 131

第7 章 雲存儲與雲計算.................................... 166

第8 章 網頁反作弊............................................ 224

第9 章 用戶查詢意圖分析................................ 246

第10 章 網頁去重.............................................. 259

第11 章 搜尋引擎快取機制.............................. 276

第12 章 搜尋引擎發展趨勢.............................. 288

圖書前言

網際網路產品形形色色,有產品導向的,有行銷導向的,也有技術導向的,但是以技術見長的網際網路產品比例相對小些。搜尋引擎是目前網際網路產品中最具技術含量的產品,如果不是唯一,至少也是其中之一。

經過十幾年的發展,搜尋引擎已經成為網際網路的重要入口之一,Twitter 聯合創始人埃文·威廉士提出了“域名已死論”:好記的域名不再重要,因為人們會通過搜尋進入網站。搜尋引擎排名對於中小網站流量來說至關重要。了解搜尋引擎簡單界面背後的技術原理其實對很多人都很重要。

為什麼會有這本書

最初寫本搜尋引擎技術書籍的想法萌生於兩年前,當時的場景是要給團隊成員做搜尋技術培訓,但是我找遍了相關圖書,卻沒有發現非常合適的搜尋技術入門書籍。當時市面上的書籍,要么是信息檢索理論方面的專著,理論性太強不易懂,而且真正講搜尋引擎技術的章節並不太多;要么是Lucene 代碼分析這種過於實務的書籍,像搜尋引擎這種充滿算法的套用,直接分析開源系統代碼並不是非常高效的學習方式。所以當時萌生了寫一本既通俗易懂,適合沒有相關技術背景的人員閱讀,又比較全面,且融入最新技術的搜尋引擎書籍,但是真正動手開始寫是一年前的事情了。

寫書前我給自己定了幾個目標。首先內容要全面,即全面覆蓋搜尋引擎相關技術的主要方面,不僅要包含倒排索引、檢索模型和爬蟲等常見內容,也要詳細講解連結分析、網頁反作弊、用戶搜尋意圖分析、雲存儲及網頁去重,甚至是搜尋引擎快取等內容,這些都是一個完整搜尋引擎的有機構成部分,但是詳述其原理的書籍並不多,我希望能夠儘可能全面些。

第二個目標是通俗易懂。我希望沒有任何相關技術背景的人也能夠通過閱讀這本書有所收穫,最好是不懂技術的同學也能大致看懂。這個目標看似簡單,其實很不容易達到,我也不敢說這本書已經達到了此目的,但是確實已經儘自己所能去做了。至於具體的措施,則包含以下三個方面。

一個是儘可能減少數學公式的出現次數,除非不得已不羅列公式。雖說數學公式具簡潔之美,但是大多數人其實對於數學符號是有恐懼和逃避心理的,多年前我也有類似心理,所以但凡可能,儘量不用數學公式。

一個是儘可能多舉例子,尤其是一些比較難理解的地方,需要例子來增進理解。

還有一個是多畫圖。就我個人的經驗來說,儘管算法或者技術是很抽象的,但是如果深入理解其原理,去繁就簡,那么一定可以把算法轉換成形象的圖片。如果不能在頭腦中形成算法直觀的圖形表示,說明並未透徹了解其原理。這是我判斷自己是否深入理解算法的一個私有標準。鑒於此,本書中在講解算法的地方,大量採用了算法原理圖,全書包含了超過300 幅算法原理講解圖,相信這對於讀者深入理解算法會有很大的幫助。

第三個目標是強調新現象新技術,比如Google 的咖啡因系統及Megastore 等雲存儲系統、Pregel 雲圖計算模型、暗網爬取技術、Web 2.0 網頁作弊、機器學習排序、情境搜尋、社會化搜尋等在相關章節都有講解。

第四個目標是強調原理,不糾纏技術細節。對於新手一個易犯的毛病是喜歡摳細節,只見樹木不見森林,搞明白了一個公式卻不了解其背後的基本思想和出發點。我接觸的技術人員很多,十有七八會有這個特點。這裡有個“道術孰優”的問題,何為“道”?何為“術”?舉個例子的話,《孫子兵法》是道,而《三十六計》則為術。“道”所述,是巨觀的、原理性的、長久不變的基本原理,而“術”則是在遵循基本原理基礎上的具體手段和措施,具有易變性。技術也是如此,算法本身的細節是“術”,算法體現的基本思想則是“道”,知“道”而學“術”,兩者雖不可偏廢,但是若要選擇優先權的話,無疑我會選擇先“道”後“術”。

以上四點是寫書前定下的目標,現在書寫完了,也許很多地方不能達到最初的期望,但是盡了力就好。寫書的過程很辛苦,起碼比我原先想像的要辛苦,因為工作繁忙,所以只能每天早早起床,再加上周末及節假日的時間來完成。也許書中還存在這樣那樣的缺點,但是我可以無愧地說寫這本書是有誠意的。

這本書是寫給誰的

如果您是下列人員之一,那么本書就是寫給您的。

•1. 對搜尋引擎核心算法有興趣的技術人員

· 搜尋引擎的整體框架是怎樣的?包含哪些核心技術?

· 網路爬蟲的基本架構是什麼?常見的爬取策略是什麼?什麼是暗網爬取?如何構建分散式爬蟲?百度的阿拉丁計畫是什麼?

· 什麼是倒排索引?如何對倒排索引進行數據壓縮?

· 搜尋引擎如何對搜尋結果排序?

· 什麼是向量空間模型?什麼是機率模型?什麼是BM25 模型?什麼是機器學習排序?它們之間有何異同?

· PageRank 和HITS 算法是什麼關係?有何異同?SALSA 算法是什麼?Hilltop 算法又是什麼?各種連結分析算法之間是什麼關係?

· 如何識別搜尋用戶的真實搜尋意圖?用戶搜尋目的可以分為幾類?什麼是點擊圖?什麼是查詢會話?相關搜尋是如何做到的?

· 為什麼要對網頁進行去重處理?如何對網頁進行去重?哪種算法效果較好?

· 搜尋引擎快取有幾級結構?核心策略是什麼?

· 什麼是情境搜尋?什麼是社會化搜尋?什麼是實時搜尋?

· 搜尋引擎有哪些發展趨勢?

如果您對其中三個以上的問題感興趣,那么這本書就是為您而寫的。

•2. 對雲計算與雲存儲有興趣的技術人員

· 什麼是 CAP 原理?什麼是ACID 原理?它們之間有什麼異同?

· Google 的整套雲計算框架包含哪些技術?Hadoop 系列和Google 的雲計算框架是什麼關係?

· Google 的三駕馬車GFS、BigTable、MapReduce 各自代表什麼含義?是什麼關係?

· Google 的咖啡因系統的基本原理是什麼?

· Google 的Pregel 計算模型和MapReduce 計算模型有什麼區別?

· Google 的Megastore 雲存儲系統和BigTable 是什麼關係?

· 亞馬遜公司的 Dynamo 系統是什麼?

· 雅虎公司的 PNUTS 系統是什麼?

· Facebook 公司的Haystack 存儲系統適合套用在什麼場合?

如果您對上述問題感興趣,相信可以從書中找到答案。

•3. 從事搜尋引擎最佳化的網路行銷人員及中小網站站長

· 搜尋引擎的反作弊策略是怎樣的?如何進行最佳化避免被認為是作弊?

· 搜尋引擎如何對搜尋結果排序?連結分析和內容排序是什麼關係?

· 什麼是內容農場?什麼是連結農場?它們是什麼關係?

· 什麼是Web 2.0 作弊?有哪些常見手法?

· 什麼是 SpamRank?什麼是TrustRank?什麼又是BadRank?它們是什麼關係?

· 咖啡因系統對網頁排名有何影響?

最近有一批電子商務網站針對搜尋引擎最佳化,結果被Google 認為是黑帽SEO 而導致搜尋排名降權,如何避免這種情況?從事相關行業的行銷人員和網站站長應該深入了解搜尋引擎反作弊的基本策略和方法,甚至是網頁排名算法等搜尋引擎核心技術。SEO 技術說到底其實很簡單,雖然不斷發生變化,但是很多原理性的策略總是相似的,萬變不離其宗,深入了解搜尋引擎相關技術原理將形成您的行業競爭優勢。

•4. 作者自己

我的記性不太好,往往一段時間內了解的技術,時隔幾年後就很模糊了,所以這本書也是為我自己寫的,以作為技術備查手冊。沈利也參與了本書的部分編寫工作。

致謝

感謝博文視點的付睿編輯,沒有她也就沒有本書的面世,付編輯在閱稿過程中提出的細緻入微的改進點對我幫助甚大。

感謝翻開此書的讀者,如果您在閱讀本書的過程中發現一些紕漏或者錯誤,或者是意見建議,希望您能夠不吝讓我知曉,我會守在信箱旁敬候您的來信,如果給我微博發信也非常歡迎。

特別感謝我的妻子,在近一年的寫作過程中,我幾乎把能用的所有業餘時間都投入在本書的寫作上,她為了不讓我分心,承擔了所有的家務,不介意沒有時間陪她,這本書的誕生且算是送她的一個禮物吧。

於我而言,這本書的寫作是一個辛苦而欣喜的過程,有如旅人遠行,涉水跋山之際抬頭遠眺,總能看到曾經忽略的旖旎麗景,若您在閱讀本書的過程中也能有此體會,那就是我的榮幸了。

張俊林

2011 年6 月

相關詞條

熱門詞條

聯絡我們