發表於2024-09-12
《這就是搜索引擎:核心技術詳解》適閤所有對搜索引擎技術感興趣的人們,尤其對於相關領域的學生、對搜索引擎核心技術感到好奇的技術人員、從事搜索引擎優化的相關人員及中小網站站長等更有參考價值。
搜索引擎作為互聯網發展中至關重要的一種應用,已經成為互聯網各個領域的製高點,其重要性不言而喻。搜索引擎領域也是互聯網應用中不多見的以核心技術作為其命脈的領域,搜索引擎各個子係統是如何設計的?這成為廣大技術人員和搜索引擎優化人員密切關注的內容。
《這就是搜索引擎:核心技術詳解》的特點是內容新穎全麵而又通俗易懂。對於實際搜索引擎所涉及的各種核心技術都有全麵細緻的介紹,除瞭作為搜索係統核心的網絡爬蟲、索引係統、排序係統、鏈接分析及用戶分析外,還包括網頁反作弊、緩存管理、網頁去重技術等實際搜索引擎必須關注的技術,同時用相當大的篇幅講解瞭雲計算與雲存儲的核心技術原理。另外,本書也密切關注搜索引擎發展的前沿技術:Google的咖啡因係統及Megastore等雲計算新技術、百度的暗網抓取技術阿拉丁計劃、內容農場作弊、機器學習排序等。諸多新技術在相關章節都有詳細講解,同時對於社會化搜索、實時搜索及情境搜索等搜索引擎的未來發展方嚮做瞭技術展望。為瞭增進讀者的理解,全書大量引入形象的圖片來講解算法原理,相信讀者會發現原來搜索引擎的核心技術理解起來比原先想象的要簡單得多。
張俊林,是技術書籍《這就是搜索引擎:核心技術詳解》的作者,目前擔任暢捷通智能平颱總監。在此之前,張俊林曾經在阿裏巴巴搜索技術中心、百度商務搜索部鳳巢廣告平颱以及新浪微博搜索部及數據係統部擔任資深技術專傢,新浪微博技術委員會成員,負責算法策略方嚮。張俊林還曾是智能信息聚閤網站“玩聚網”的聯閤創始人之一。他的研發興趣集中在:搜索技術、推薦係統、社交挖掘、自然語言處理與大數據算法架構等方麵,並在以上領域有多年工業界實踐經驗。張俊林本科畢業於天津大學管理學院,1999年至2004年在中科院軟件所直接攻讀博士學位,研究方嚮是信息檢索理論與自然語言處理,就學期間曾在ACL/COLING/IJCNLP等國際會議發錶多篇學術論文,另外,他在此期間領導設計的搜索係統曾在美國國防部DARPA主持的TREC第二屆高精度檢索係統評測中在17隻國際高水平研究團隊激烈競爭中勝齣並取得綜閤名的優異成績。
第1章 搜索引擎及其技術架構
1.1 搜索引擎為何重要
1.1.1 互聯網的發展
1.1.2 商業搜索引擎公司的發展
1.1.3 搜索引擎的重要地位
1.2 搜索引擎技術發展史
1.2.1 史前時代:分類目錄的一代
1.2.2 第一代:文本檢索的一代
1.2.3 第二代:鏈接分析的一代
1.2.4 第三代:用戶中心的一代
1.3 搜索引擎的3個目標
1.4 搜索引擎的3個核心問題
1.4.1 3個核心問題
1.4.2 與技術發展的關係
1.5 搜索引擎的技術架構
第2章 網絡爬蟲
2.1 通用爬蟲框架
2.2 優秀爬蟲的特性
2.3 爬蟲質量的評價標準
2.4 抓取策略
2.4.1 寬度優先遍曆策略(Breath First)
2.4.2 非完全PageRank策略(Partial PageRank)
2.4.3 OCIP策略(Online Page Importance Computation)
2.4.4 大站優先策略(Larger Sites First)
2.5 網頁更新策略
2.5.1 曆史參考策略
2.5.2 用戶體驗策略
2.5.3 聚類抽樣策略
2.6 暗網抓取(Deep Web Crawling)
2.6.1 查詢組閤問題
2.6.2 文本框填寫問題
2.7 分布式爬蟲
2.7.1 主從式分布爬蟲(Master-Slave)
2.7.2 對等式分布爬蟲(Peer to Peer)
本章提要
本章參考文獻
第3章 搜索引擎索引
3.1 索引基礎
3.1.1 單詞-文檔矩陣
3.1.2 倒排索引基本概念
3.1.3 倒排索引簡單實例
3.2 單詞詞典
3.2.1 哈希加鏈錶
3.2.2 樹形結構
3.3 倒排列錶(Posting List)
3.4 建立索引
3.4.1 兩遍文檔遍曆法(2-Pass In-Memory Inversion)
3.4.2 排序法(Sort-based Inversion)
3.4.3 歸並法(Merge-based Inversion)
3.5 動態索引
3.6 索引更新策略
3.6.1 完全重建策略(Complete Re-Build)
3.6.2 再閤並策略(Re-Merge)
3.6.3 原地更新策略(In-Place)
3.6.4 混閤策略(Hybrid)
3.7 查詢處理
3.7.1 一次一文檔(Doc at a Time)
3.7.2 一次一單詞(Term at a Time)
3.7.3 跳躍指針(Skip Pointers)
3.8 多字段索引
3.8.1 多索引方式
3.8.2 倒排列錶方式
3.8.3 擴展列錶方式(Extent List)
3.9 短語查詢
3.9.1 位置信息索引(Position Index)
3.9.2 雙詞索引(Nextword Index)
3.9.3 短語索引(Phrase Index)
3.9.4 混閤方法
3.10 分布式索引(Parallel Indexing)
3.10.1 按文檔劃分(Document Partitioning)
3.10.2 按單詞劃分(Term Partitioning)
3.10.3 兩種方案的比較
本章提要
本章參考文獻
第4章 索引壓縮
4.1 詞典壓縮
4.2 倒排列錶壓縮算法
4.2.1 評價索引壓縮算法的指標
4.2.2 一元編碼與二進製編碼
4.2.3 Elias Gamma算法與Elias Delta算法
4.2.4 Golomb算法與Rice算法
4.2.5 變長字節算法(Variable Byte)
4.2.6 SimpleX 係列算法
4.2.7 PForDelta算法
4.3 文檔編號重排序(DocID Reordering)
4.4 靜態索引裁剪(Static Index Pruning)
4.4.1 以單詞為中心的索引裁剪
4.4.2 以文檔為中心的索引裁剪
本章提要
本章參考文獻
第5章 檢索模型與搜索排序
5.1 布爾模型(Boolean Model)
5.2 嚮量空間模型(Vector Space Model)
5.2.1 文檔錶示
5.2.2 相似性計算
5.2.3 特徵權重計算
5.3 概率檢索模型
5.3.1 概率排序原理
5.3.2 二元獨立模型(Binary Independent Model)
5.3.3 BM25模型
5.3.4 BM25F模型
5.4 語言模型方法
5.5 機器學習排序(Learning to Rank)
5.5.1 機器學習排序的基本思路
5.5.2 單文檔方法(PointWise Approach)
5.5.3 文檔對方法(PairWise Approach)
5.5.4 文檔列錶方法(ListWise Approach)
5.6 檢索質量評價標準
5.6.1 精確率與召迴率
5.6.2 P@10指標
5.6.3 MAP指標(Mean Average Precision)
本章提要
本章參考文獻
第6章 鏈接分析
6.1 Web圖
6.2 兩個概念模型及算法之間的關係
6.2.1 隨機遊走模型(Random Surfer Model)
6.2.2 子集傳播模型
6.2.3 鏈接分析算法之間的關係
6.3 PageRank算法
6.3.1 從入鏈數量到PageRank
6.3.2 PageRank計算
6.3.3 鏈接陷阱(Link Sink)與遠程跳轉(Teleporting)
6.4 HITS算法(Hypertext Induced Topic Selection)
6.4.1 Hub頁麵與Authority頁麵
6.4.2 相互增強關係
6.4.3 HITS算法
6.4.4 HITS算法存在的問題
6.4.5 HITS算法與PageRank算法比較
6.5 SALSA算法
6.5.1 確定計算對象集閤
6.5.2 鏈接關係傳播
6.5.3 Authority權值計算
6.6 主題敏感PageRank(Topic Sensitive PageRank)
6.6.1 主題敏感PageRank與PageRank的差異
6.6.2 主題敏感PageRank計算流程
6.6.3 利用主題敏感PageRank構造個性化搜索
6.7 Hilltop算法
6.7.1 Hilltop算法的一些基本定義
6.7.2 Hilltop算法
6.8 其他改進算法
6.8.1 智能遊走模型(Intelligent Surfer Model)
6.8.2 偏置遊走模型(Biased Surfer Model)
6.8.3 PHITS算法(Probability Analogy of HITS)
6.8.4 BFS算法(Backward Forward Step)
本章提要
本章參考文獻
第7章 雲存儲與雲計算
7.1 雲存儲與雲計算概述
7.1.1 基本假設
7.1.2 理論基礎
7.1.3 數據模型
7.1.4 基本問題
7.1.5 Google的雲存儲與雲計算架構
7.2 Google文件係統(GFS)
7.2.1 GFS設計原則
7.2.2 GFS整體架構
7.2.3 GFS主控服務器
7.2.4 係統交互行為
7.3 Chubby鎖服務
7.4 BigTable
7.4.1 BigTable的數據模型
7.4.2 BigTable整體結構
7.4.3 BigTable的管理數據
7.4.4 主控服務器(Master Server)
7.4.5 子錶服務器(Tablet Server)
7.5 Megastore係統
7.5.1 實體群組切分
7.5.2 數據模型
7.5.3 數據讀寫與備份
7.6 Map/Reduce雲計算模型
7.6.1 計算模型
7.6.2 整體邏輯流程
7.6.3 應用示例
7.7 咖啡因係統--Percolator
7.7.1 事務支持
7.7.2 觀察/通知體係結構
7.8 Pregel圖計算模型
7.9 Dynomo雲存儲係統
7.9.1 數據劃分算法(Partitioning Algorithm)
7.9.2 數據備份(Replication)
7.9.3 數據讀寫
7.9.4 數據版本控製
7.10 PNUTS雲存儲係統
7.10.1 PNUTS整體架構
7.10.2 存儲單元
7.10.3 子錶控製器與數據路由器
7.10.4 雅虎消息代理
7.10.5 數據一緻性
7.11 HayStack存儲係統
7.11.1 HayStack整體架構
7.11.2 目錄服務
7.11.3 HayStack緩存
7.11.4 HayStack存儲係統
本章提要
本章參考文獻
第8章 網頁反作弊
8.1 內容作弊
8.1.1 常見內容作弊手段
8.1.2 內容農場(Content Farm)
8.2 鏈接作弊
8.3 頁麵隱藏作弊
8.4 Web 2.0作弊方法
8.5 反作弊技術的整體思路
8.5.1 信任傳播模型
8.5.2 不信任傳播模型
8.5.3 異常發現模型
8.6 通用鏈接反作弊方法
8.6.1 TrustRank算法
8.6.2 BadRank算法
8.6.3 SpamRank
8.7 專用鏈接反作弊技術
8.7.1 識彆鏈接農場
8.7.2 識彆Google轟炸
8.8 識彆內容作弊
8.9 反隱藏作弊
8.9.1 識彆頁麵隱藏
8.9.2 識彆網頁重定嚮
8.10 搜索引擎反作弊綜閤框架
本章提要
本章參考文獻
第9章 用戶查詢意圖分析
9.1 搜索行為及其意圖
9.1.1 用戶搜索行為
9.1.2 用戶搜索意圖分類
9.2 搜索日誌挖掘
9.2.1 查詢會話(Query Session)
9.2.2 點擊圖(Click Graph)
9.2.3 查詢圖(Query Graph)
9.3 相關搜索
9.3.1 基於查詢會話的方法
9.3.2 基於點擊圖的方法
9.4 查詢糾錯
9.4.1 編輯距離(Edit Distance)
9.4.2 噪聲信道模型(Noise Channel Model)
本章提要
本章參考文獻
第10章 網頁去重
10.1 通用去重算法框架
10.2 Shingling算法
10.3 I-Match算法
10.4 SimHash算法
10.4.1 文檔指紋計算
10.4.2 相似文檔查找
10.5 SpotSig算法
10.5.1 特徵抽取
10.5.2 相似文檔查找
本章提要
本章參考文獻
第11章 搜索引擎緩存機製
11.1 搜索引擎緩存係統架構
11.2 緩存對象
11.3 緩存結構
11.4 緩存淘汰策略(Evict Policy)
11.4.1 動態策略
11.4.2 混閤策略
11.5 緩存更新策略(Refresh Policy)
本章提要
本章參考文獻
第12章 搜索引擎發展趨勢
12.1 個性化搜索
12.2 社會化搜索
12.3 實時搜索
12.4 移動搜索
12.5 地理位置感知搜索
12.6 跨語言搜索
12.7 多媒體搜索
12.8 情境搜索
互聯網産品形形色色,有産品導嚮的,有營銷導嚮的,也有技術導嚮的,但是以技術見長的互聯網産品比例相對小些。搜索引擎是目前互聯網産品中有技術含量的産品,如果不是唯一,至少也是其中之一。
經過十幾年的發展,搜索引擎已經成為互聯網的重要入口之一,Twitter聯閤創始人埃文威廉姆斯提齣瞭“域名已死論”:好記的域名不再重要,因為人們會通過搜索進入網站。搜索引擎排名對於中小網站流量來說至關重要。瞭解搜索引擎簡單界麵背後的技術原理其實對很多人都很重要。
為什麼會有這本書
最初寫本搜索引擎技術書籍的想法萌生於兩年前,當時的場景是要給團隊成員做搜索技術培訓,但是我找遍瞭相關圖書,卻沒有發現非常閤適的搜索技術入門書籍。當時市麵上的書籍,要麼是信息檢索理論方麵的專著,理論性太強不易懂,而且真正講搜索引擎技術的章節並不太多;要麼是Lucene代碼分析這種過於實務的書籍,像搜索引擎這種充滿算法的應用,直接分析開源係統代碼並不是非常高效的學習方式。所以當時萌生瞭寫一本既通俗易懂,適閤沒有相關技術背景的人員閱讀,又比較全麵,且融入新技術的搜索引擎書籍,但是真正動手開始寫是一年前的事情瞭。
寫書前我給自己定瞭幾個目標。首先內容要全麵,即全麵覆蓋搜索引擎相關技術的主要方麵,不僅要包含倒排索引、檢索模型和爬蟲等常見內容,也要詳細講解鏈接分析、網頁反作弊、用戶搜索意圖分析、雲存儲及網頁去重,甚至是搜索引擎緩存等內容,這些都是一個完整搜索引擎的有機構成部分,但是詳述其原理的書籍並不多,我希望能夠盡可能全麵些。
第二個目標是通俗易懂。我希望沒有任何相關技術背景的人也能夠通過閱讀這本書有所收獲,希望是不懂技術的同學也能大緻看懂。這個目標看似簡單,其實很不容易達到,我也不敢說這本書已經達到瞭此目的,但是確實已經盡自己所能去做瞭。至於具體的措施,則包含以下三個方麵。
一個是盡可能減少數學公式的齣現次數,除非不得已不羅列公式。雖說數學公式具簡潔之美,但是大多數人其實對於數學符號是有恐懼和逃避心理的,多年前我也有類似心理,所以但凡可能,盡量不用數學公式。
一個是盡可能多舉例子,尤其是一些比較難理解的地方,需要例子來增進理解。
還有一個是多畫圖。就我個人的經驗來說,盡管算法或者技術是很抽象的,但是如果深入理解其原理,去繁就簡,那麼一定可以把算法轉換成形象的圖片。如果不能在頭腦中形成算法直觀的圖形錶示,說明並未透徹瞭解其原理。這是我判斷自己是否深入理解算法的一個私有標準。鑒於此,本書中在講解算法的地方,大量采用瞭算法原理圖,全書包含瞭超過300幅算法原理講解圖,相信這對於讀者深入理解算法會有很大的幫助。
第三個目標是強調新現象新技術,比如Google的咖啡因係統及Megastore等雲存儲係統、Pregel雲圖計算模型、暗網爬取技術、Web 2.0網頁作弊、機器學習排序、情境搜索、社會化搜索等在相關章節都有講解。
第四個目標是強調原理,不糾纏技術細節。對於新手一個易犯的毛病是喜歡摳細節,隻見樹木不見森林,搞明白瞭一個公式卻不瞭解其背後的基本思想和齣發點。我接觸技術人員很多,十有七八會有這個特點。這裏有個“道術孰優”的問題,何為“道”?何為“術”?舉個例子的話,《孫子兵法》是道,而《三十六計》則為術。“道”所述,是宏觀的、原理性的、長久不變的基本原理,而“術”則是在遵循基本原理基礎上的具體手段和措施,具有易變性。技術也是如此,算法本身的細節是“術”,算法體現的基本思想則是“道”,知“道”而學“術”,兩者雖不可偏廢,但是若要選擇優先級的話,無疑我會選擇先“道”後“術”。
以上四點是寫書前定下的目標,現在書寫完瞭,也許很多地方不能達到最初的期望,但是盡瞭力就好。寫書的過程很辛苦,起碼比我原先想象得要辛苦,因為工作繁忙,所以隻能每天早早起床,再加上周末及節假日的時間來完成。也許書中還存在這樣那樣的缺點,但是我可以無愧地說寫這本書是有誠意的。
這本書是寫給誰的
如果您是下列人員之一,那麼本書就是寫給您的。
1.對搜索引擎核心算法有興趣的技術人員
搜索引擎的整體框架是怎樣的?包含哪些核心技術?
網絡爬蟲的基本架構是什麼?常見的爬取策略是什麼?什麼是暗網爬取?如何構建分布式爬蟲?百度的阿拉丁計劃是什麼?
什麼是倒排索引?如何對倒排索引進行數據壓縮?
搜索引擎如何對
這就是搜索引擎:核心技術詳解 下載 mobi epub pdf txt 電子書 格式
這就是搜索引擎:核心技術詳解 下載 mobi pdf epub txt 電子書 格式 2024
這就是搜索引擎:核心技術詳解 下載 mobi epub pdf 電子書書不錯,快遞很給力,紙質不好
評分很好很具體的一本書。
評分學習瞭,很好
評分買書上京東,真是不二的選擇。
評分反正就是一本書嘛~
評分適閤用於快速瞭解搜索這個領域,每個方麵都淺嘗輒止。
評分二手書,看著黑黑的,摸著有點像摸很髒的櫃子
評分好書
評分朋友推薦的 聽說不錯
這就是搜索引擎:核心技術詳解 mobi epub pdf txt 電子書 格式下載 2024