搜索引擎技術基礎

搜索引擎技術基礎

《搜索引擎技術基礎》是2010年清華大學出版社出版的圖書,作者是劉弈群、馬少平、洪濤、劉子正。

內容簡介


《搜索引擎技術基礎》一書,由多人合作編寫,是高水平教材編寫的又一次有益嘗試,其顯著特色之一是將清華大學計算機系在搜索技術方面的研究成果與百度公司在搜索應用領域的豐富經驗融為一體,既強調原理,也重視實踐。《搜索引擎技術基礎》從研究實踐者的角度角度出介紹了搜索引擎的相關技術及其產業,並試圖協助讀者成為搜索引擎領域的局內人。與傳統的將搜索引擎作為信息檢索系統實現的一個特殊實例的做法不同,作者試圖把搜索引擎作為一個獨立的研究課題,從紛繁複雜的網際網路數據現象和搜索引擎工作案例中提煉知識點,對現代商業搜索引擎的體系結構,運行原理,運營機制和核心演演算法進行總結和講解。
本書是清華大學計算機系與百度公司合作在清華大學開設的“搜索引擎技術基礎”課程教材,適合作為高等院校信息科學技術、圖書館學等相關專業本科生與牽相關課程的教材,也可作為相關領域技術人員與搜索引擎技術愛好者的參考資料。

作者簡介


劉奕群,2003年本科畢業於清華大學計算機系並免試推薦直接攻讀博士學位,2007年獲博士學位后留校任教至今,在清華大學計算機系教授“搜索引擎技術基礎”與“搜索引擎產品設計與實踐”等課程。主要從事與搜索引擎技術相關的網際網路應用研究工作,包括網路信息檢索、網路用戶行為分析、網路產品性能評價等。發表相關領域學術論文40餘篇,申請專利7項,並與百度公司、搜狐公司、微軟亞洲研究院等單位開展多項搜索引擎技術方面的合作研究。
馬少平,1982年本科畢業於清華大學計算機系,1984年獲清華大學計算機系碩士學位后留校任教,1991-1992年在日本學習,1997年獲清華大學計算機系博士學位,1998年晉陞為教授,1999年聘為博士生導師。現任清華大學智能技術與系統國家重點實驗室主任、中國人工智慧學會常務理事、知識工程專業委員會副主任、中國中文信息學會理事、信息檢索與內容安全專業委員會副主任。主要從事智能信息處理方面的研究工作,包括漢字識別、文本信息檢索、圖像信息檢索、中文古籍的數字化與檢索等。
洪濤,1986年和1989年先後獲得北京大學計算機學士學位和心理學碩士學位,1995年在紐約州立布法羅大學計算機系取得博士學位。長期從事自然語言處理、搜索引擎/信息檢索、網際網路廣告技術、數據挖掘、模式識別和金融數據分析建模等方面的研發工作。

圖書目錄


第1章 搜索引擎概述
1.1 搜索引擎的概念、原理及歷史與發展1
1.1.1 搜索引擎的概念1
1.1.2 搜索引擎的原理2
1.2 搜索引擎的歷史與發展趨勢2
1.2.1 搜索引擎的發展史3
1.2.2 搜索引擎的發展趨勢7
1.3 搜索引擎的分類9
1.3.1 全文搜索引擎10
1.3.2 目錄索引搜索引擎10
1.3.3 元搜索引擎11
1.3.4 分散式搜索引擎12
1.4 搜索引擎的關鍵技術12
1.4.1 信息收集和存儲技術12
1.4.2 信息預處理技術12
1.4.3 信息索引技術13
1.5 主要搜索引擎介紹14
1.5.1 谷歌搜索14
1.5.2 雅虎搜索17
1.5.3 百度搜索19
1.5.4 北大天網搜索22
1.6 小結24
思考題26
第2章 搜索引擎基礎
2.1 搜索引擎的體系結構27
2.1.1 搜索器27
2.1.2 索引器29
2.1.3 檢索器30
2.1.4 用戶介面30
2.2 搜索引擎的工作原理31
2.2.1 網頁搜集31
2.2.2 網頁處理32
2.2.3 查詢服務34
2.3 搜索引擎的數據結構35
2.3.1 存儲結構35
2.3.2 信息庫37
2.3.3 文本索引37
2.3.4 詞典38
2.3.5 採樣表38
2.3.6 前向索引38
2.3.7 後向索引39
2.4 元搜索引擎39
2.4.1 元搜索引擎的基本構成40
2.4.2 元搜索引擎的分類41
2.4.3 常用元搜索引擎介紹42
2.4.4 元搜索引擎的特點45
2.4.5 主要技術指標46
2.5 個性化搜索引擎47
2.5.1 系統模塊及其功能48
2.5.2 個性化搜索引擎的關鍵技術49
2.6 智能搜索引擎50
2.6.1 智能搜索引擎特徵50
2.6.2 智能搜索引擎主要技術51
2.7 小結52
思考題54
第3章 網頁抓取技術
3.1 搜索引擎爬蟲55
3.1.1 網路爬蟲工作原理55
3.1.2 開源網路爬蟲簡介56
3.1.3 網頁信息的抓取58
3.2 搜索引擎爬蟲的關鍵技術60
3.2.1 網頁抓取優先策略60
3.2.2 深度優先策略61
3.2.3 廣度優先策略62
3.2.4 最佳優先策略63
3.2.5 不重複抓取策略64
3.2.6 網頁重訪策略67
3.2.7 網頁抓取提速策略68
3.2.8 Robots協議69
3.3 小結71
思考題72
第4章 網頁信息預處理技術
4.1 網頁信息結構化73
4.1.1 網頁結構化的目標73
4.1.2 建立DOM樹74
4.1.3 網頁內容的獲取76
4.2 文本處理77
4.2.1 詞法分析77
4.2.2 中文分詞技術78
4.2.3 無用詞刪除83
4.2.4 詞幹提取83
4.2.5 索引詞選擇91
4.2.6 詞典91
4.3 PageRank演演算法93
4.3.1 什麼是PageRank93
4.3.2 PageRank的演演算法94
4.3.3 PageRank的特性95
4.3.4 PageRank的迭代計算96
4.3.5 網頁級別的優化97
4.4 小結99
思考題100
第5章 信息索引技術
5.1 順排檢索101
5.1.1 表展開法101
5.1.2 邏輯樹展開法104
5.1.3 BF演演算法110
5.1.4 KMP演演算法111
5.1.5 BM演演算法113
5.2 倒排索引116
5.2.1 倒排索引116
5.2.2 倒排文檔117
5.2.3 逆波蘭表達式118
5.2.4 檢索指令表的生成120
5.2.5 檢索實施121
5.3 後綴數組索引122
5.3.1 後綴樹概念122
5.3.2 後綴樹原理122
5.3.3 後綴樹存儲124
5.3.4 後綴樹的構造124
5.3.5 後綴數組126
5.3.6 後綴數組生成演演算法127
5.4 文本壓縮技術128
5.4.1 基本概念128
5.4.2 統計方法128
5.4.3 字典方法134
5.4.4 倒排文檔壓縮139
5.5 小結142
思考題143
第6章 信息查詢與評價技術
6.1 檢索模型145
6.1.1 經典模型145
6.1.2 代數模型150
6.2 檢索方法153
6.2.1 布爾檢索153
6.2.2 加權檢索153
6.2.3 全文檢索155
6.2.4 超文本檢索158
6.3 查詢服務161
6.3.1 查詢器原理161
6.3.2 搜索引擎檢索過程162
6.3.3 檢索結果排序165
6.3.4 自動摘要生成168
6.4 相關性171
6.4.1 相關性的特徵171
6.4.2 相關性類別172
6.4.3 相關性模型174
6.5 搜索引擎評價指標177
6.5.1 有效性177
6.5.2 查全率和查准率177
6.5.3 其他評價指標179
6.6 小結180
思考題182
第7章 多媒體信息檢索技術
7.1 多媒體的基本概念183
7.1.1 多媒體及多媒體技術183
7.1.2 音頻信息與檢索特徵185
7.1.3 圖形圖像信息與檢索特徵188
7.1.4 視頻信息與檢索特徵190
7.1.5 多媒體信息檢索194
7.2 多媒體數據壓縮197
7.2.1 多媒體壓縮原理197
7.2.2 多媒體壓縮編碼199
7.3 多媒體內容的理解200
7.3.1 分割200
7.3.2 特徵提取與降維201
7.3.3 分類201
7.4 多媒體信息檢索的關鍵技術202
7.4.1 信息模型202
7.4.2 檢索技術202
7.4.3 查詢語言203
7.4.4 數據壓縮和恢復203
7.4.5 存儲管理203
7.4.6 同步技術204
7.5 小結204
思考題206
第8章 搭建基於Lucene的搜索引擎
8.1 實例簡介207
8.1.1 搜索引擎的體系結構208
8.1.2 網頁搜集208
8.1.3 網頁預處理209
8.1.4 查詢服務210
8.2 環境搭建與配置210
8.2.1 JDK 1.6的安裝與配置212
8.2.2 Eclipse的安裝與配置214
8.2.3 Tomcat的安裝與配置221
8.2.4 Heritrix的安裝與配置223
8.3 網頁搜集230
8.3.1 設置Heritrix抓取任務230
8.3.2 修改Heritrix源代碼236
8.3.3 抓取網頁239
8.4 網頁預處理241
8.4.1 原始網頁的處理242
8.4.2 建立簡單的索引259
8.4.3 為實例建立索引266
8.5 查詢服務269
8.5.1 結構設計269
8.5.2 查詢設計270
8.5.3 預搜索設計275
8.5.4 頁面設計276
8.5.5 網頁快照實現283
8.5.6 部署到Tomcat284
8.6 小結286
實驗286
第9章 搭建基於Nutch的搜索引擎
9.1 Nutch簡介287
9.1.1 爬蟲Crawler簡介287
9.1.2 Crawler工作流程288
9.2 環境搭建與配置289
9.2.1 開發工具簡介289
9.2.2 Tomcat的安裝與配置290
9.2.3 Cygwin的安裝與配置292
9.2.4 Nutch的安裝與配置294
9.2.5 將Nutch導入Eclipse294
9.3 Nutch的初始配置及運行296
9.3.1 修改Nutch基本配置296
9.3.2 配置Eclipse運行參數298
9.3.3 部署到Tomcat301
9.3.4 搜索的實現302
9.4 開發自己的搜索引擎平台304
9.4.1 添加中文分詞插件304
9.4.2 網站抓取設置310
9.4.3 網頁快照設置311
9.4.4 查詢功能優化312
9.4.5 系統部署314
9.4.6 修改Nutch查詢界面314
9.5 結果與測試316
9.5.1 測試結果316
9.5.2 結果討論319
9.6 小結320
實驗320
參考文獻321