《解密搜尋引擎技術實戰——Lucene&Java精華版(第3版)》是2016年電子工業出版社出版的圖書,作者是羅剛。
基本介紹
- 中文名:解密搜尋引擎技術實戰——Lucene&Java精華版(第3版)
- 作者:羅剛
- 出版社:電子工業出版社
- 出版時間:2016年3月1日
- 頁數:511 頁
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787121281112
內容簡介,圖書目錄,作者簡介,
內容簡介
本書是獵兔搜尋開發團隊的軟體研發和教學實踐的經驗匯總。本書總結搜尋引擎相關理論與實際解決方案,並給出了Java實現,其中利用了流行的開源項目Lucene和Solr,而且還包括原創的實現。
本書主要包括總體介紹部分、爬虫部分、自然語言處理部分、全文檢索部分以及相關案例分析。爬虫部分介紹了網頁遍歷方法和如何實現增量抓取,並介紹了從網頁等各種格式的文檔中提取主要內容的方法。自然語言處理部分從統計機器學習的原理出發,包括了中文分詞與詞性標註的理論與實現及在搜尋引擎中的套用等細節,同時對文檔排重、文本分類、自動聚類、句法分析樹、拼寫檢查等自然語言處理領域的經典問題進行了深入淺出的介紹,並總結了實現方法。在全文檢索部分,結合Lucene介紹了搜尋引擎的原理與進展。用簡單的例子介紹了Lucene的*新套用方法,包括完整的搜尋實現過程:從完成索引到搜尋用戶界面的實現。此外還進一步介紹了實現準實時搜尋的方法,展示了Solr的用法以及實現分散式搜尋服務集群的方法。*後介紹了在地理信息系統領域和戶外活動搜尋領域的套用。
圖書目錄
第1章 搜尋引擎總體結構 1
1.1 搜尋引擎基本模組 1
1.2 開發環境 2
1.3 搜尋引擎工作原理 3
1.3.1 網路爬蟲 4
1.3.2 全文索引結構與Lucene實現 4
1.3.3 搜尋用戶界面 7
1.3.4 計算框架 8
1.3.5 文本挖掘 9
1.4 本章小結 9
第2章 網路爬蟲的原理與套用 11
2.1 爬蟲的基本原理 11
2.2 爬蟲架構 14
2.2.1 基本架構 14
2.2.2 分散式爬蟲架構 16
2.2.3 垂直爬蟲架構 17
2.3 抓取網頁 18
2.3.1 下載網頁的基本方法 19
2.3.2 網頁更新 23
2.3.3 抓取限制應對方法 25
2.3.4 URL地址提取 28
2.3.5 抓取JavaScript動態頁面 28
2.3.6 抓取即時信息 31
2.3.7 抓取暗網 32
2.3.8 信息過濾 33
2.3.9 最好優先遍歷 39
2.4 存儲URL地址 40
2.4.1 BerkeleyDB 40
2.4.2 布隆過濾器 42
2.5 並行抓取 45
2.5.1 多執行緒爬蟲 46
2.5.2 垂直搜尋的多執行緒爬蟲 48
2.5.3 異步I/O 49
2.6 RSS抓取 53
2.7 抓取FTP 55
2.8 下載圖片 55
2.9 圖像的OCR識別 56
2.9.1 圖像二值化 57
2.9.2 切分圖像 60
2.9.3 SVM分類 63
2.10 Web結構挖掘 67
2.10.1 存儲Web圖 67
2.10.2 PageRank算法 71
2.10.3 HITs算法 77
2.10.4 主題相關的PageRank 81
2.11 部署爬蟲 83
2.12 本章小結 83
第3章 索引內容提取 86
3.1 從HTML檔案中提取文本 86
3.1.1 識別網頁的編碼 86
3.1.2 網頁編碼轉換為字元串編碼 89
3.1.3 使用正則表達式提取數據 89
3.1.4 結構化信息提取 91
3.1.5 網頁的DOM結構 94
3.1.6 使用NekoHTML提取信息 95
3.1.7 使用Jsoup提取信息 101
3.1.8 網頁去噪 105
3.1.9 網頁結構相似度計算 110
3.1.10 提取標題 112
3.1.11 提取日期 113
3.2 從非HTML檔案中提取文本 113
3.2.1 提取標題的一般方法 114
3.2.2 PDF檔案 118
3.2.3 Word檔案 122
3.2.4 Rtf檔案 123
3.2.5 Excel檔案 134
3.2.6 PowerPoint檔案 137
3.3 流媒體內容提取 137
3.3.1 音頻流內容提取 138
3.3.2 視頻流內容提取 140
3.4 存儲提取內容 142
3.5 本章小結 143
第4章 中文分詞的原理與實現 144
4.1 Lucene中的中文分詞 145
4.1.1 Lucene切分原理 145
4.1.2 Lucene中的Analyzer 146
4.1.3 自己寫Analyzer 148
4.1.4 Lietu中文分詞 150
4.2 查找詞典算法 151
4.2.1 標準Trie樹 151
4.2.2 三叉Trie樹 154
4.3 中文分詞的原理 159
4.4 中文分詞流程與結構 162
4.5 形成切分詞圖 164
4.6 機率語言模型的分詞方法 169
4.7 N元分詞方法 173
4.8 新詞發現 178
4.9 未登錄詞識別 179
4.10 詞性標註 180
4.10.1 隱馬爾可夫模型 183
4.10.2 基於轉換的錯誤
學習方法 191
4.11 平滑算法 193
4.12 本章小結 198
第5章 讓搜尋引擎理解自然語言 199
5.1 停用詞表 200
5.2 句法分析樹 201
5.3 相似度計算 205
5.4 文檔排重 209
5.4.1 語義指紋 210
5.4.2 SimHash 213
5.4.3 分散式文檔排重 223
5.5 中文關鍵字提取 223
5.5.1 關鍵字提取的基本方法 223
5.5.2 HITS算法套用於
關鍵字提取 226
5.5.3 從網頁中提取關鍵字 228
5.6 相關搜尋詞 228
5.6.1 挖掘相關搜尋詞 229
5.6.2 使用多執行緒計算
相關搜尋詞 231
5.7 信息提取 232
5.8 拼寫檢查與建議 237
5.8.1 模糊匹配問題 240
5.8.2 英文拼寫檢查 242
5.8.3 中文拼寫檢查 244
5.9 自動摘要 247
5.9.1 自動摘要技術 247
5.9.2 自動摘要的設計 247
5.9.3 Lucene中的動態摘要 254
5.10 文本分類 257
5.10.1 特徵提取 259
5.10.2 中心向量法 262
5.10.3 樸素貝葉斯 265
5.10.4 支持向量機 272
5.10.5 規則方法 279
5.10.6 網頁分類 282
5.11 拼音轉換 283
5.12 概念搜尋 284
5.13 多語言搜尋 292
5.14 跨語言搜尋 293
5.15 情感識別 295
5.15.1 確定詞語的褒貶傾向 298
5.15.2 實現情感識別 300
5.16 本章小結 301
第6章 Lucene原理與套用 303
6.1 Lucene深入介紹 304
6.1.1 常用查詢對象 304
6.1.2 查詢語法與解析 304
6.1.3 查詢原理 308
6.1.4 分析文本 309
6.1.5 使用Filter篩選搜尋結果 316
6.1.6 遍歷索引庫 317
6.1.7 索引數值列 318
6.2 Lucene中的壓縮算法 322
6.2.1 變長壓縮 322
6.2.2 PForDelta 324
6.2.3 前綴壓縮 326
6.2.4 差分編碼 328
6.3 創建和維護索引庫 330
6.3.1 創建索引庫 330
6.3.2 向索引庫中添加索引文檔 331
6.3.3 刪除索引庫中的索引文檔 334
6.3.4 更新索引庫中的索引文檔 334
6.3.5 索引的合併 335
6.3.6 索引檔案格式 335
6.4 查找索引庫 338
6.4.1 查詢過程 338
6.4.2 常用查詢 342
6.4.3 基本詞查詢 343
6.4.4 模糊匹配 343
6.4.5 布爾查詢 345
6.4.6 短語查詢 347
6.4.7 跨度查詢 349
6.4.8 FieldScoreQuery 353
6.5 讀寫並發控制 356
6.6 檢索模型 356
6.6.1 向量空間模型 357
6.6.2 BM25機率模型 361
6.6.3 統計語言模型 367
6.7 本章小結 369
第7章 搜尋引擎用戶界面 370
7.1 實現Lucene搜尋 370
7.2 實現搜尋接口 372
7.2.1 編碼識別 372
7.2.2 布爾搜尋 375
7.2.3 指定範圍搜尋 375
7.2.4 搜尋結果排序 376
7.2.5 搜尋頁面的索引快取與
更新 377
7.3 歷史搜尋詞記錄 380
7.4 實現關鍵字高亮顯示 381
7.5 實現分類統計視圖 383
7.6 實現Ajax搜尋聯想詞 388
7.6.1 估計查詢詞的文檔頻率 388
7.6.2 搜尋聯想詞總體結構 389
7.6.3 伺服器端處理 389
7.6.4 瀏覽器端處理 390
7.6.5 伺服器端改進 395
7.6.6 拼音提示 398
7.6.7 部署總結 399
7.7 集成其他功能 399
7.7.1 拼寫檢查 399
7.7.2 分類統計 400
7.7.3 相關搜尋 402
7.7.4 再次查找 405
7.7.5 搜尋日誌 405
7.8 搜尋日誌分析 407
7.8.1 日誌信息過濾 407
7.8.2 信息統計 409
7.8.3 挖掘日誌信息 411
7.9 本章小結 412
第8章 使用Solr實現企業搜尋 413
8.1 Solr簡介 413
8.2 Solr基本用法 414
8.2.1 Solr伺服器端的配置與
中文支持 415
8.2.2 把數據放進Solr 421
8.2.3 刪除數據 423
8.2.4 Solr客戶端與搜尋界面 424
8.2.5 Spring實現的搜尋界面 425
8.2.6 Solr索引庫的查找 436
8.2.7 索引分發 440
8.2.8 Solr搜尋最佳化 442
8.3 Solr擴展與定製 445
8.3.1 Solr中字詞混合索引 445
8.3.2 相關檢索 447
8.3.3 搜尋結果去重 449
8.3.4 定製輸入輸出 453
8.3.5 分散式搜尋 457
8.3.6 SolrJ查詢分析器 458
8.3.7 擴展SolrJ 466
8.3.8 擴展Solr 467
8.3.9 查詢Web圖 471
8.4 本章小結 473
第9章 地理信息系統案例分析 474
9.1 新聞提取 474
9.2 POI信息提取 479
9.2.1 提取主體 484
9.2.2 提取地區 485
9.2.3 指代消解 487
9.3 機器翻譯 489
9.3.1 詞對齊 490
9.3.2 翻譯公司名 491
9.3.3 調整語序 493
9.4 本章小結 494
第10章 戶外活動搜尋案例分析 495
10.1 爬蟲 495
10.2 信息提取 497
10.3 活動分類 501
10.4 搜尋 501
10.5 本章小結 502
參考資料 503
作者簡介
羅剛,獵兔搜尋創始人,帶領獵兔搜尋技術開發團隊先後開發出獵兔中文分詞系統、獵兔信息提取系統、獵兔智慧型垂直搜尋系統以及網路信息監測系統等,實現網際網路信息的採集、過濾、搜尋和實時監測。曾編寫出版《自己動手寫搜尋引擎》、《自己動手寫網路爬蟲》、《使用C#開發搜尋引擎》,獲得廣泛好評。在北京和上海等地均有獵兔培訓的學員。