解密搜尋引擎技術實戰 - Lucene & Java『精華第三版』
內容描述
<內容介紹>
羅剛等編著的《解密搜索引擎技術實戰(附光盤Lucene & Java精華版第3版全新升級)》是獵兔搜索開發團隊的軟件研發和教學實踐的經驗匯總。本書總結搜索引擎相關理論與實際解決方案,並給出了Java實現,其中利用了流行的開源項目Lucene和Solr,而且還包括原創的實現。
本書主要包括總體介紹部分、爬蟲部分、自然語言處理部分、全文檢索部分以及相關案例分析。爬蟲部分介紹了網頁遍歷方法和如何實現增量抓取,並介紹了從網頁等各種格式的文檔中提取主要內容的方法。自然語言處理部分從統計機器學習的原理出發,包括了中文分詞與詞性標註的理論與實現及在搜索引擎中的應用等細節,同時對文檔排重、文本分類、自動聚類、句法分析樹、拼寫檢查等自然語言處理領域的經典問題進行了深入淺出的介紹,並總結了實現方法。在全文檢索部分,結合Lucene介紹了搜索引擎的原理與進展。用簡單的例子介紹了Lucene的最新應用方法,包括完整的搜索實現過程:從完成索引到搜索用戶界面的實現。此外還進一步介紹了實現準實時搜索的方法,展示了Solr的用法以及實現分佈式搜索服務集群的方法。最後介紹了在地理信息系統領域和戶外活動搜索領域的應用。
<章節目錄>
第1章 搜索引擎總體結構
1.1 搜索引擎基本模塊
1.2 開發環境
1.3 搜索引擎工作原理
1.3.1 網絡爬蟲
1.3.2 全文索引結構與Lucene實現
1.3.3 搜索用戶界面
1.3.4 計算框架
1.3.5 文本挖掘
1.4 本章小結
第2章 網絡爬蟲的原理與應用
2.1 爬蟲的基本原理
2.2 爬蟲架構
2.2.1 基本架構
2.2.2 分佈式爬蟲架構
2.2.3 垂直爬蟲架構
2.3 抓取網頁
2.3.1 下載網頁的基本方法
2.3.2 網頁更新
2.3.3 抓取限制應對方法
2.3.4 URL地址提取
2.3.5 抓取JavaScript動態頁面
2.3.6 抓取即時信息
2.3.7 抓取暗網
2.3.8 信息過濾
2.3.9 最好優先遍歷
2.4 存儲URL地址
2.4.1 BerkeleyDB
2.4.2 布隆過濾器
2.5 並行抓取
2.5.1 多線程爬蟲
2.5.2 垂直搜索的多線程爬蟲
2.5.3 異步I/O
2.6 RSS抓取
2.7 抓取FTP
2.8 下載圖片
2.9 圖像的OCR識別
2.9.1 圖像二值化
2.9.2 切分圖像
2.9.3 SVM分類
2.10 Web結構挖掘
2.10.1 存儲Web圖
2.10.2 PageRank演算法
2.10.3 HITs演算法
2.10.4 主題相關的PageRank
2.11 部署爬蟲
2.12 本章小結
第3章 索引內容提取
3.1 從HTML文件中提取文本
3.1.1 識別網頁的編碼
3.1.2 網頁編碼轉換為字符串編碼
3.1.3 使用正則表達式提取數據
3.1.4 結構化信息提取
3.1.5 網頁的DOM結構
3.1.6 使用NekoHTML提取信息
3.1.7 使用Jsoup提取信息
3.1.8 網頁去噪
3.1.9 網頁結構相似度計算
3.1.10 提取標題
3.1.11 提取日期
3.2 從非HTML文件中提取文本
3.2.1 提取標題的一般方法
3.2.2 PDF文件
3.2.3 Word文件
3.2.4 Rtf文件
3.2.5 Excel文件
3.2.6 PowerPoint文件
3.3 流媒體內容提取
3.3.1 音頻流內容提取
3.3.2 視頻流內容提取
3.4 存儲提取內容
3.5 本章小結
第4章 中文分詞的原理與實現
4.1 Lucene中的中文分詞
4.1.1 Lucene切分原理
4.1.2 Lucene中的Analyzer
4.1.3 自己寫Analyzer
4.1.4 Lietu中文分詞
4.2 查找詞典演算法
4.2.1 標準Trie樹
4.2.2 三叉Trie樹
4.3 中文分詞的原理
4.4 中文分詞流程與結構
4.5 形成切分詞圖
4.6 概率語言模型的分詞方法
4.7 N元分詞方法
4.8 新詞發現
4.9 未登錄詞識別
4.10 詞性標註
4.10.1 隱馬爾可夫模型
4.10.2 基於轉換的錯誤學習方法
4.11 平滑演算法
4.12 本章小結
第5章 讓搜索引擎理解自然語言
5.1 停用詞表
5.2 句法分析樹
5.3 相似度計算
5.4 文檔排重
5.4.1 語義指紋
5.4.2 SimHash
5.4.3 分佈式文檔排重
5.5 中文關鍵詞提取
5.5.1 關鍵詞提取的基本方法
5.5.2 HITS演算法應用於關鍵詞提取
5.5.3 從網頁中提取關鍵詞
5.6 相關搜索詞
5.6.1 挖掘相關搜索詞
5.6.2 使用多線程計算相關搜索詞
5.7 信息提取
5.8 拼寫檢查與建議
5.8.1 模糊匹配問題
5.8.2 英文拼寫檢查
5.8.3 中文拼寫檢查
5.9 自動摘要
5.9.1 自動摘要技術
5.9.2 自動摘要的設計
5.9.3 Lucene中的動態摘要
5.10 文本分類
5.10.1 特徵提取
5.10.2 中心向量法
5.10.3 樸素貝葉斯
5.10.4 支持向量機
5.10.5 規則方法
5.10.6 網頁分類
5.11 拼音轉換
5.12 概念搜索
5.13 多語言搜索
5.14 跨語言搜索
5.15 情感識別
5.15.1 確定詞語的褒貶傾向
5.15.2 實現情感識別
5.16 本章小結
第6章 Lucene原理與應用
6.1 Lucene深入介紹
6.1.1 常用查詢對象
6.1.2 查詢語法與解析
6.1.3 查詢原理
6.1.4 分析文本
6.1.5 使用Filter篩選搜索結果
6.1.6 遍歷索引庫
6.1.7 索引數值列
6.2 Lucene中的壓縮演算法
6.2.1 變長壓縮
6.2.2 PForDelta
6.2.3 前綴壓縮
6.2.4 差分編碼
6.3 創建和維護索引庫
6.3.1 創建索引庫
6.3.2 向索引庫中添加索引文檔
6.3.3 刪除索引庫中的索引文檔
6.3.4 更新索引庫中的索引文檔
6.3.5 索引的合併
6.3.6 索引文件格式
6.4 查找索引庫
6.4.1 查詢過程
6.4.2 常用查詢
6.4.3 基本詞查詢
6.4.4 模糊匹配
6.4.5 布爾查詢
6.4.6 短語查詢
6.4.7 跨度查詢
6.4.8 FieldScoreQuery
6.5 讀寫併發控制
6.6 檢索模型
6.6.1 向量空間模型
6.6.2 BM25概率模型
6.6.3 統計語言模型
6.7 本章小結
第7章 搜索引擎用戶界面
7.1 實現Lucene搜索
7.2 實現搜索接口
7.2.1 編碼識別
7.2.2 布爾搜索
7.2.3 指定範圍搜索
7.2.4 搜索結果排序
7.2.5 搜索頁面的索引緩存與更新
7.3 歷史搜索詞記錄
7.4 實現關鍵詞高亮顯示
7.5 實現分類統計視圖
7.6 實現Ajax搜索聯想詞
7.6.1 估計查詢詞的文檔頻率
7.6.2 搜索聯想詞總體結構
7.6.3 服務器端處理
7.6.4 瀏覽器端處理
7.6.5 服務器端改進
7.6.6 拼音提示
7.6.7 部署總結
7.7 集成其他功能
7.7.1 拼寫檢查
7.7.2 分類統計
7.7.3 相關搜索
7.7.4 再次查找
7.7.5 搜索日誌
7.8 搜索日誌分析
7.8.1 日誌信息過濾
7.8.2 信息統計
7.8.3 挖掘日誌信息
7.9 本章小結
第8章 使用Solr實現企業搜索
8.1 Solr簡介
8.2 Solr基本用法
8.2.1 Solr服務器端的配置與中文支持
8.2.2 把數據放進Solr
8.2.3 刪除數據
8.2.4 Solr客戶端與搜索界面
8.2.5 Spring實現的搜索界面
8.2.6 Solr索引庫的查找
8.2.7 索引分發
8.2.8 Solr搜索優化
8.3 Solr擴展與定製
8.3.1 Solr中字詞混合索引
8.3.2 相關檢索
8.3.3 搜索結果去重
8.3.4 定製輸入輸出
8.3.5 分佈式搜索
8.3.6 SolrJ查詢分析器
8.3.7 擴展SolrJ
8.3.8 擴展Solr
8.3.9 查詢Web圖
8.4 本章小結
第9章 地理信息系統案例分析
9.1 新聞提取
9.2 POI信息提取
9.2.1 提取主體
9.2.2 提取地區
9.2.3 指代消解
9.3 機器翻譯
9.3.1 詞對齊
9.3.2 翻譯公司名
9.3.3 調整語序
9.4 本章小結
第10章 戶外活動搜索案例分析
10.1 爬蟲
10.2 信息提取
10.3 活動分類
10.4 搜索
10.5 本章小結
參考資料