走進搜尋引擎(第2版)

走進搜尋引擎(第2版)

《走進搜尋引擎(第二版)》是2011年電子工業出版社出版的圖書,作者主要是潘雪峰。本書主要介紹了搜尋引擎的基本概念、分析系統、索引系統等。

基本介紹

  • 書名:走進搜尋引擎(第2版)
  • 作者:潘雪峰,花貴春,梁斌 編著
  • ISBN:9787121131042
  • 頁數:286
  • 定價:49.00元
  • 出版社:電子工業出版
  • 出版時間:2011-5-1
  • 裝幀:平裝
  • 開本:16開
  • 字 數:400000
宣傳語,內容簡介,作者序,關於本書作者,致謝,目錄,

宣傳語

暢銷圖書升級版
一本幫您輕鬆入門的搜尋引擎技術書
新增內容:
搜尋引擎性能調優
搜尋引擎日誌分析
基於學習進行結果排序最佳化

內容簡介

本書由搜尋引擎開發研究領域三位年輕的博士生精心編寫,作者們希望將自己對搜尋引擎的理解和實際套用相結合,讓未接觸過搜尋引擎原理和方法的讀者也能輕鬆讀懂該書的大部分內容。本書在第1版的基礎上,刪除了搜尋引擎歷史等章節,並對錯誤和不足進行了修訂和補充,同時增加了潘雪峰編寫的第6章“搜尋引擎日誌分析”,花貴春編寫的第7章“排序學習(Learning to Rank)”和梁斌編寫的第8章“搜尋引擎的性能調優”三個主要章節,變更的內容約占第1版的一半。本書作為搜尋引擎原理與技術的入門書籍,面向那些有志從事搜尋引擎行業的青年學生、需要完整理解並最佳化搜尋引擎的專業技術人員、搜尋引擎的行銷人員,以及網站的負責人等。本書是從事搜尋引擎開發的工程技術人員難得的參考書,也可作為大中專院校相關專業的教學輔導書。

作者序

本書第1版出版到現在已經3年了。在這段不長的時光里,搜尋引擎技術有了進一步的發展。其中比較突出的是,隨著數據規模進一步增大,為提升用戶體驗,搜尋引擎性能進一步最佳化;在更廣泛的用戶參與下,增強了基於用戶行為進行效果改進的能力。這也使得本書有了改版以適應這些重大變化的必要。
基於此,本書第2版增加了搜尋引擎性能調優、搜尋引擎日誌分析,以及基於學習進行排序最佳化三方面的內容,希望能讓讀者跟上搜尋技術的發展潮流,在這一領域的前沿真切地感受到它的勃勃生機。
當前,搜尋技術已經不再局限於搜尋引擎本身,它所建立的一套駕馭網際網路級別海量數據的架構和理念正日益擴展到整個信息技術領域。而隨著世界的日益信息化、數位化、網路化,這些理念的深遠影響還會進一步顯現。這又將是一次新的科技浪潮。
時光流逝,卻有如輪迴。信息技術產業,甚至整個科技界,正是在這樣的浪潮更迭中不斷進步。從AT&T 的有線電話到IBM 的大型機,到Apple的PC機,到Intel的CPU,到Motorola的無線通信,到Microsoft的作業系統,到Cisco的路由器,到Google的搜尋引擎,概莫能外。一次次浪潮,一個個產業巨擘,終將隨自己的時代而去,但它們所帶來的影響卻將投射在人類文明的歷史上,永不消逝。
至於搜尋的浪潮究竟將持續多長時間,在整個IT史上留下怎樣的一筆,只有時間才能告訴人們答案。此時此刻,置身其中,讓我們打開書本,接受浪潮之巔的洗禮,走進搜尋引擎。

關於本書作者

作者潘雪峰,畢業於中國科學院計算技術研究所,工學博士。研究興趣包括多媒體內容分析、機器學習和網際網路數據挖掘,現從事搜尋引擎領域相關工作。
作者花貴春,目前在清華大學信息科學與技術國家實驗室攻讀博士學位,研究興趣包括機器學習及其在搜尋領域的套用。
作者梁斌,目前在清華大學信息科學與技術國家實驗室攻讀博士學位,研究興趣包括大規模數據處理、搜尋引擎和軟體工程等。

致謝

筆者首先要特別感謝他們的妻子,感謝她們在繁忙的工作和學習之餘,包攬了家裡家外大大小小的事務,還在筆者們有所懈怠的時候,從精神上給予莫大的支持和鼓勵。正是她們無私的支持,才使本書得以面世。
感謝電子工業出版社計算機圖書出版分社孫學瑛女士和鄧彩屏女士,她們除了參與了此書的創作過程,還為筆者提供了有關圖書市場的寶貴信息,使得本書更加面向讀者,面向市場。
感謝本書參考文獻的作者們、搜尋引擎研究界的學者們,以及為此書提出寶貴技術意見的業界同行,正是你們傑出的成就和無私的幫助,才使得本書有了寫作的基礎和必要。
由於筆者水平有限,加之搜尋領域的發展日新月異,書中不足及錯誤之處在所難免,敬請專家和讀者給予批評指正。
潘雪峰、花貴春、梁斌
2011年2月

目錄

第1章 引言 1
1.1 搜尋引擎概述 2
1.1.1 目錄式搜尋引擎 2
1.1.2 全文搜尋引擎 3
1.1.3 元搜尋引擎(Meta-Search Engine) 3
1.2 搜尋引擎的主要需求 3
1.2.1 快 4
1.2.2 全 4
1.2.3 準 4
1.2.4 穩 5
1.2.5 省 5
1.3 搜尋引擎的4大系統 6
1.3.1 搜尋引擎的體系結構 6
第2章 搜尋引擎的下載系統 8
2.1 爬蟲的發展歷史 9
2.1.1 世界上第1個爬蟲 9
2.1.2 爬蟲的發展歷程 9
2.2 全球資訊網及其網頁分析 9
2.2.1 蝴蝶結型的全球資訊網 10
2.2.2 全球資訊網的直徑 12
2.2.3 全球資訊網的規模及變化特徵 12
2.2.4 網頁的特徵 13
2.3 有關爬蟲的基本概念 13
2.3.1 爬蟲 13
2.3.2 種子站點 14
2.3.3 URL 14
2.3.4 Backlinks 14
2.4 網頁抓取原理 14
2.4.1 telnet和wget 14
2.4.2 從種子站點開始逐層抓取 15
2.4.3 不重複抓取策略 19
2.4.4 網頁抓取優先策略 25
2.4.5 網頁重訪策略 26
2.4.6 Robots協定 30
2.4.7 其他應該注意的禮貌性問題 31
2.4.8 重要性網頁優先抓取策略 32
2.4.9 抓取提速策略(合作抓取策略) 34
2.5 網頁庫 38
2.6 下載系統回顧及未來發展 41
參考文獻 42
第3章 搜尋引擎的分析系統 44
3.1 知識準備 45
3.1.1 HTML語言 45
3.1.2 錨文本(anchor text) 45
3.1.3 半結構化數據(semi-structured data) 45
3.2 信息抽取及網頁信息結構化 45
3.2.1 網頁結構化的目標 46
3.2.2 建立HTML標籤樹 48
3.2.3 通過投票方法得到正文 52
3.2.4 網頁結構化過程回顧 55
3.3 網頁查重 56
3.3.1 網頁查重技術發展歷史 56
3.3.2 網頁查重實現方法 58
3.4 中文分詞 61
3.4.1 什麼是中文分詞 61
3.4.2 通過字典實現分詞 61
3.4.3 基於統計的分詞方法 65
3.5 PageRank 67
3.5.1 PageRank的來由 68
3.5.2 PageRank的基本想法 68
3.5.3 PageRank的計算公式 69
3.5.4 PageRank的計算方法 73
3.6 分析系統結構圖 76
參考文獻 77
第4章 搜尋引擎的索引系統 79
4.1 知識準備 80
4.1.1 信息 80
4.1.2 索引 80
4.1.3 倒排索引、倒排表、臨時倒排檔案、最終倒排檔案 80
4.1.4 其他概念 81
4.2 全文檢索 81
4.3 文檔編號 82
4.3.1 編號的本質 82
4.3.2 文檔編號的方法 83
4.3.3 遊程編碼 84
4.4 倒排索引 87
4.4.1 經典的倒排索引 87
4.4.2 正排索引(前向索引) 88
4.4.3 倒排索引 90
4.5 數據規模的估計 92
4.5.1 齊普夫法則 92
4.5.2 布爾檢索模型下的索引規模估計 94
4.6 涉及存儲規模的一些計算 97
4.6.1 正排表與倒排表的合併 97
4.6.2 多個臨時倒排檔案的歸併 100
4.6.3 倒排索引分散式存儲 103
4.6.4 倒排檔案快取 106
4.6.5 倒排索引詞典統計信息的計算 106
4.7 倒排索引檔案的創建過程 107
4.7.1 創建倒排表 107
4.7.2 計算統計信息 109
參考文獻 110
第5章 搜尋引擎的查詢系統 112
5.1 知識準備 113
5.1.1 什麼是信息熵 113
5.1.2 檢索和查詢的區別 115
5.1.3 檢索詞和查詢詞的區別 115
5.1.4 自動文本摘要(Automatic Text Summarization) 116
5.2 網頁信息檢索 116
5.2.1 早期的檢索模型 116
5.2.2 向量空間模型(Vector Space Models) 118
5.2.3 關鍵字權重的量化方法TF/IDF 122
5.2.4 搜尋引擎採用的檢索模型 125
5.2.5 多文檔列表求交計算 127
5.2.6 檢索結果排序 132
5.2.7 堆排序 132
5.3 中文自動摘要 137
5.3.1 自動摘要的發展歷史 137
5.3.2 自動摘要的含義和實現 137
5.4 生成搜尋結果頁 142
5.4.1 生成搜尋結果頁 142
5.5 搜尋結果頁的快取 144
5.6 推測用戶查詢意圖 145
5.6.1 查詢分類 146
5.6.2 推測信息類、事物類的查詢意圖 147
5.7 查詢系統的當前熱點和發展方向 147
5.7.1 查詢系統的當前熱點 148
5.7.2 查詢系統的發展方向 148
參考文獻 149
第6章 搜尋引擎日誌分析 150
6.1 簡介 151
6.1.1 人機互動的記錄——日誌 151
6.1.2 分析搜尋引擎日誌的意義 153
6.1.3 本章的主要內容 154
6.2 知識準備 155
6.2.1 二分圖模型(Bipartite Model) 155
6.2.2 圖模型(graphical model) 156
6.2.3 LDA(Latent Dirichlet Allocation)模型 158
6.2.4 隨機遊走(Random Walk) 159
6.2.5 小結 160
6.3 查詢日誌分析 161
6.3.1 查詢日誌的內容 161
6.3.2 查詢詞頻統計 162
6.3.3 查詢詞提示(Suggestion) 163
6.3.4 命名實體(Named Entity)類別識別 165
6.3.5 小結 167
6.4 點擊日誌分析 167
6.4.1 點擊日誌的內容 168
6.4.2 查詢串提示(Suggestion)再分析 169
6.4.3 查詢和結果類別屬性傳遞 170
6.4.4 搜尋結果相似性度量 171
6.4.5 查詢結果排序 172
6.4.6 點擊數據的稀疏性 174
6.4.7 小結 176
6.5 隱私問題 177
6.5.1 日誌的兩面性 177
6.5.2 日誌的安全使用 179
6.5.3 小結 179
6.6 本章總結 180
參考文獻 180
第7章 排序學習(Learning to Rank)183
7.1 排序概述 184
7.2 傳統的排序模型 186
7.2.1 查詢相關的排序模型 186
7.2.2 查詢無關的排序模型 188
7.3 排序學習簡介以及研究現狀 190
7.3.1 排序學習簡介 190
7.3.2 排序學習問題的研究現狀 191
7.4 排序學習模型的套用實例 192
7.5 排序學習方法的框架 194
7.5.1 參數設定 194
7.5.2 排序學習方法的框架 195
7.6 評測數據集 196
7.6.1 LETOR數據集 196
7.6.2 Microsoft Learning to Rank數據集 197
7.6.3 Yahoo Webscope數據集 198
7.7 排序學習模型簡介 198
7.7.1 實例 199
7.7.2 Pointwise方法 199
7.7.3 Pairwise方法 204
7.7.4 Listwise方法 207
7.7.5 3種排序方法的對比 210
7.8 排序學習模型性能比較 211
7.8.1 評測方法 211
7.8.2 排序模型性能的比較 215
7.9 排序學習的研究方向 217
7.9.1 標準標註的自動構建 217
7.9.2 排序特徵 217
7.9.3 半監督學習/主動學習 218
7.9.4 查詢相關的排序模型 218
7.9.5 利用用戶行為特徵 218
7.10 總結 219
參考文獻 219
第8章 搜尋引擎的性能調優 223
8.1 系統調優概述 224
8.2 瓶頸識別 225
8.3 涉及CPU的最佳化方法 226
8.3.1 上下文切換問題(context switching) 227
8.3.2 中斷和輪詢 228
8.3.3 CPU的Affinity問題 229
8.3.4 流水線問題 229
8.4 涉及記憶體的最佳化方法 235
8.4.1 概述 235
8.4.2 對換區 236
8.4.3 cache line 240
8.4.4 false sharing問題 245
8.4.5 記憶體的鎖問題 247
8.4.6 記憶體庫的使用 257
8.5 涉及磁碟的最佳化方法 262
8.5.1 磁碟IO的調度 262
8.5.2 其他常見磁碟參數調優 264
8.5.3 磁碟讀寫方式 265
8.5.4 檔案快取問題 267
8.5.5 5分鐘法則 269
8.6 涉及網路的最佳化方法 271
8.6.1 搜尋首頁,結果頁提速方法 271
8.6.2 Web Server的架構選擇 274
參考文獻 284

相關詞條

熱門詞條

聯絡我們