本書從教學的角度出發(fā),全面地闡述了搜索引擎的原理和實踐,包括:搜索引擎的基本原理與技術、搜索引擎的數(shù)據(jù)結構和搜索引擎的爬蟲、信息處理技術、信息檢索技術、信息檢索評價技術、多媒體信息檢索技術以及搜索引擎開發(fā)技術。
在教材的編寫過程中,對基本概念、基礎知識的介紹力求做到簡明扼要;各章相互配合,又自成體系附有小結和習題,同時還有相關的實驗及應用技術。
本書適合高等院校計算機科學與技術專業(yè)及相關專業(yè)的高年級學生和研究生閱讀參考,也適合相關領域的工程技術人員參閱。
網(wǎng)絡改變了人們的思維,改變了人們信息的獲取方式,搜索改變了人們的生活,人們通過搜索引擎技術,篩選網(wǎng)絡上的文字、聲音、圖像,通過超文本、超鏈接技術,對信息進行有效的獲取和使用。搜索引擎的出現(xiàn)就好像是航船的指南針,引領著人們在網(wǎng)絡中尋找自己想要的信息。不論是辦公室工作人員,還是在校學習的學生,或者是科學研究人員,使用搜索引擎查詢信息幾乎成為每日必做的一件事情,搜索引擎已經成為人們的一項新的生活內容。
為了適應未來發(fā)展的需要,各個高校先后都開設了搜索引擎這門課程。我們編寫本書的目的就是要系統(tǒng)地討論和研究搜索引擎的基本理論,讓讀者學會構建自己的搜索引擎。
本書較為系統(tǒng)地闡述了搜索引擎的基本概念以及相關的技術,總共分為9章。第1章全面地介紹了搜索引擎的概念、搜索引擎的發(fā)展、分類及建立搜索引擎的關鍵技術。第2章討論了搜索引擎的體系結構、工作原理,搜索引擎的數(shù)據(jù)結構、元搜索引擎以及智能搜索引擎的概念。第3章介紹了網(wǎng)頁抓取技術,主要內容包括搜索引擎爬蟲的工作原理、爬蟲使用的關鍵技術和Robots協(xié)議。第4章介紹了用Python語言實現(xiàn)網(wǎng)絡爬蟲的開發(fā)技術,主要內容包括網(wǎng)絡爬蟲的常用技術、正則表達式、網(wǎng)絡爬蟲常用框架、網(wǎng)絡爬蟲實現(xiàn)技術。第5章介紹了網(wǎng)頁信息預處理技術,主要內容有網(wǎng)頁信息結構化、文本處理技術和PageRank算法。第6章介紹了信息索引技術,主要內容有順排檢索、倒排檢索、后綴數(shù)組索引和文本壓縮技術。第7章介紹了信息查詢與評價技術,主要內容有信息檢索的模型、常用的檢索方法、查詢服務以及相關性和評價指標查全率和查準率等。第8章介紹了多媒體信息檢索技術,主要內容有多媒體的基本概念、多媒體數(shù)據(jù)壓縮、多媒體內容的理解以及多媒體信息檢索的關鍵技術。第9章介紹了基于Lucene的搜索引擎開發(fā)技術,主要內容有搜索引擎開發(fā)實例簡介、環(huán)境的搭建與配置、網(wǎng)頁搜集技術、網(wǎng)頁預處理技術和查詢服務。
本書可幫助讀者對搜索引擎原理及開發(fā)技術有一個全面的了解和掌握,同時為更加深入地學習和研究搜索引擎打下良好的基礎。希望本書的出版能夠對搜索引擎的設計者、Web站點的管理員以及廣大讀者有所幫助,也希望它成為搜索引擎和信息檢索有關領域學生學習的參考書。
本書是作者在多年的教學基礎上,參考以前出版的教材和若干資料整理而成的。在編寫過程中,對基本概念、基礎知識的介紹做到簡明扼要;各章相互配合并附有小結和思考題,同時還有相關的實驗。建議本課程為40學時,其中講課30學時,實驗10學時。
本書由李群、袁津生共同編寫。其中,李群編寫了本書的第1~7章,袁津生編寫了本書的第8章和第9章。全書的校閱和統(tǒng)稿由李群完成。由于編者水平有限,書中難免有疏漏和不當之處,請讀者批評指正。
編者2020年8月
第1章搜索引擎概述/1
1.1搜索引擎的概念1
1.1.1搜索引擎基本概念1
1.1.2搜索引擎的原理2
1.2搜索引擎的歷史與發(fā)展趨勢2
1.2.1搜索引擎的發(fā)展史3
1.2.2搜索引擎的發(fā)展趨勢7
1.3搜索引擎的分類10
1.3.1全文搜索引擎11
1.3.2目錄索引搜索引擎11
1.3.3元搜索引擎12
1.3.4分布式搜索引擎13
1.4搜索引擎的關鍵技術13
1.4.1信息收集和存儲技術13
1.4.2信息預處理技術13
1.4.3信息索引技術14
1.5主要搜索引擎介紹15
1.5.1谷歌(Google)搜索15
1.5.2雅虎(Yahoo!)搜索19
1.5.3百度(Baidu)搜索21
1.5.4360搜索24
小結25
思考題26
第2章搜索引擎基礎/28
2.1搜索引擎的體系結構28
2.1.1搜索器28
2.1.2索引器30
2.1.3檢索器31
2.1.4用戶接口31
2.2搜索引擎的工作原理32
2.2.1網(wǎng)頁搜集32
2.2.2網(wǎng)頁處理33
2.2.3查詢服務35
2.3搜索引擎的數(shù)據(jù)結構36
2.3.1存儲結構36
2.3.2信息庫38
2.3.3文本索引39
2.3.4詞典39
2.3.5采樣表39
2.3.6前向索引40
2.3.7后向索引40
2.4元搜索引擎41
2.4.1元搜索引擎的基本構成41
2.4.2元搜索引擎的分類43
2.4.3常用元搜索引擎介紹44
2.4.4元搜索引擎的特點45
2.4.5主要技術指標46
2.5個性化搜索引擎47
2.5.1系統(tǒng)模塊及其功能48
2.5.2個性化搜索引擎的關鍵技術49
2.6智能搜索引擎50
2.6.1智能搜索引擎特征50
2.6.2智能搜索引擎主要技術51
小結52
思考題53
搜索引擎技術與應用開發(fā)目錄第3章網(wǎng)頁抓取技術/55
3.1搜索引擎爬蟲55
3.1.1網(wǎng)絡爬蟲工作原理55
3.1.2開源網(wǎng)絡爬蟲簡介56
3.1.3網(wǎng)頁信息的抓取58
3.2搜索引擎爬蟲的關鍵技術60
3.2.1網(wǎng)頁抓取優(yōu)先策略60
3.2.2深度優(yōu)先策略61
3.2.3廣度優(yōu)先策略62
3.2.4最佳優(yōu)先策略63
3.2.5不重復抓取策略64
3.2.6網(wǎng)頁重訪策略68
3.2.7網(wǎng)頁抓取提速策略69
3.2.8Robots協(xié)議70
小結72
思考題73
第4章網(wǎng)絡爬蟲開發(fā)技術/74
4.1網(wǎng)絡爬蟲的常用技術74
4.1.1網(wǎng)絡爬蟲工作流程74
4.1.2網(wǎng)絡請求技術75
4.1.3網(wǎng)頁抓取技術80
4.1.4其他處理技術84
4.2正則表達式87
4.2.1什么是正則表達式87
4.2.2正則表達式基礎知識88
4.2.3正則表達式常見函數(shù)90
4.2.4正則表達式的簡單使用92
4.3網(wǎng)絡爬蟲常用框架95
4.3.1Scrapy爬蟲框架95
4.3.2Crawley爬蟲框架100
4.3.3PySpider爬蟲框架101
4.3.4Portia爬蟲框架106
4.4網(wǎng)絡爬蟲實現(xiàn)技術107
4.4.1爬蟲偽裝技術107
4.4.2爬蟲定向爬取技術110
4.4.3博客類爬蟲的實現(xiàn)技術112
小結114
思考題115
第5章網(wǎng)頁信息預處理技術/117
5.1網(wǎng)頁信息結構化117
5.1.1網(wǎng)頁結構化的目標117
5.1.2建立DOM樹118
5.1.3網(wǎng)頁內容的獲取120
5.2文本處理121
5.2.1詞法分析121
5.2.2中文分詞技術122
5.2.3無用詞刪除127
5.2.4詞干提取128
5.2.5索引詞選擇135
5.2.6詞典136
5.3PageRank算法137
5.3.1什么是PageRank137
5.3.2PageRank的算法138
5.3.3PageRank的特性140
5.3.4PageRank的迭代計算141
5.3.5網(wǎng)頁級別的優(yōu)化142
小結144
思考題145
第6章信息索引技術/146
6.1順排檢索146
6.1.1表展開法146
6.1.2邏輯樹展開法149
6.1.3BF算法155
6.1.4KMP算法156
6.1.5BM算法158
6.2倒排檢索161
6.2.1倒排索引161
6.2.2倒排文檔162
6.2.3逆波蘭表達式164
6.2.4檢索指令表的生成166
6.2.5檢索實施167
6.3后綴數(shù)組索引168
6.3.1后綴樹概念168
6.3.2后綴樹原理168
6.3.3后綴樹存儲170
6.3.4后綴樹的構造170
6.3.5后綴數(shù)組172
6.3.6后綴數(shù)組生成算法173
6.4文本壓縮技術174
6.4.1基本概念174
6.4.2統(tǒng)計方法174
6.4.3字典方法180
6.4.4倒排文檔壓縮186
小結188
思考題190
第7章信息查詢與評價技術/192
7.1檢索模型192
7.1.1經典模型192
7.1.2代數(shù)模型197
7.2檢索方法200
7.2.1布爾檢索200
7.2.2加權檢索201
7.2.3全文檢索202
7.2.4超文本檢索206
7.3查詢服務209
7.3.1查詢器原理209
7.3.2搜索引擎檢索過程210
7.3.3檢索結果排序213
7.3.4自動摘要生成216
7.4相關性219
7.4.1相關性的特征219
7.4.2相關性類別220
7.4.3相關性模型222
7.5搜索引擎評價指標225
7.5.1有效性225
7.5.2查全率和查準率225
7.5.3其他評價指標226
小結228
思考題230
第8章多媒體信息檢索技術/231
8.1多媒體的基本概念231
8.1.1多媒體及多媒體技術231
8.1.2音頻信息與檢索特征233
8.1.3圖形圖像信息與檢索特征236
8.1.4視頻信息與檢索特征239
8.1.5多媒體信息檢索242
8.2多媒體數(shù)據(jù)壓縮246
8.2.1多媒體壓縮原理246
8.2.2多媒體壓縮編碼247
8.3多媒體內容的理解248
8.3.1分割248
8.3.2特征提取249
8.3.3分類250
8.4多媒體信息檢索的關鍵技術250
8.4.1信息模型250
8.4.2檢索技術251
8.4.3查詢語言251
8.4.4數(shù)據(jù)壓縮和恢復251
8.4.5存儲管理252
8.4.6同步技術252
小結252
思考題254
第9章搭建基于Lucene的搜索引擎/255
9.1實例簡介255
9.1.1搜索引擎的體系結構255
9.1.2網(wǎng)頁搜集257
9.1.3網(wǎng)頁預處理257
9.1.4查詢服務258
9.2環(huán)境搭建與配置259
9.2.1JDK 1.6的安裝與配置260
9.2.2Eclipse的安裝與配置262
9.2.3Tomcat的安裝與配置271
9.2.4Heritrix的安裝與配置274
9.3網(wǎng)頁搜集282
9.3.1設置Heritrix抓取任務282
9.3.2修改Heritrix源代碼288
9.3.3抓取網(wǎng)頁292
9.4網(wǎng)頁預處理295
9.4.1原始網(wǎng)頁的處理295
9.4.2建立簡單的索引315
9.4.3為實例建立索引322
9.5查詢服務327
9.5.1結構設計327
9.5.2查詢設計327
9.5.3預搜索設計334
9.5.4頁面設計335
9.5.5網(wǎng)頁快照實現(xiàn)342
9.5.6部署到Tomcat344
小結346
實驗346
參考文獻/348