Lucene+nutch搜尋引擎開發

Lucene+nutch搜尋引擎開發

本書以Lucene構建搜尋引擎的開發過程為主線,由淺入深,循序漸進,為讀者展示如何使用Lucene開發自己的搜尋引擎系統。全書內容包括搜尋引擎概述和原理、Lucene部署安裝、Nutch網路蜘蛛與數據獲取、Lucene索引建立、Lucene檢索與查詢、搜尋結果排序、文檔分析器與中文分詞、格式化文本分析、分散式搜尋與快取等。為便於讀者理解搜尋引擎快速開發過程,本書最後幾章進行了套用實例的講解,包括Nutch構建專題搜尋、Lucene構建企業級搜尋實例以及相關的整體工程性能測試。

基本介紹

版權資訊,編輯推薦,目錄 入門篇,第1章 搜尋引擎概述,第2章 搜尋引擎原理探秘,第3章 開源搜尋引擎入門,目錄 核心揭秘篇,第4章 搜尋引擎數據獲取,第5章 搜尋引擎信息索引,第6章 搜尋引擎查詢處理,第7章 搜尋引擎結果排序,第8章 文檔分析器與中文分詞,第9章 搜尋引擎文本分析,第10章 分散式搜尋與快取,目錄 實戰篇,第11章 Nutch專題搜尋引擎實例,第12章 Lucene實現企業搜尋實例,

版權資訊

ISBN: 9787115182166
開本: 16
定價: 59.00 元

編輯推薦

《Lucene+nutch搜尋引擎開發》適合對搜尋引擎開發有興趣的讀者閱讀,包括搜尋引擎開發的初學者、高等院校、信息專業學生、從事搜尋開發的程式設計人員等。入門:引導讀者快速掌握(Lucene和nutch的使用方法);揭秘:深度剖析搜尋引擎核心;實戰:手把手帶您構建企業級搜尋引擎;推薦:Web開發專家強烈推薦。
網際網路搜尋的使用水平可以反映全民的信息處理能力,幾年前有研究發現美國用戶比歐洲用戶的網際網路使用水平領先半年左右,主要是根據誰搜尋時平均使用的關鍵字的個數多。中文用戶的搜尋使用水平相對於西文用戶目前仍然處於比較初級的階段,而中文網站搜尋功能的缺失也是一個重要的因素。
網站擁有了較多內容後,最先會考慮基於目錄的內容分類,以解決信息快速定位的問題,隨著內容量的進一步增加,很多內容在發表之後就很快被湮沒,成為“信息孤島”,而不斷加深的目錄結構也會讓用戶逐漸失去耐心,這時,關鍵字檢索的優勢就體現出來了:
關鍵字檢索可以讓處於“信息孤島”狀態的內容以一種更直接的方法提供給用戶;
和基於目錄/分類的樹形結構不同,基於關鍵字檢索還可以讓內容之間實現網狀的關聯結構,從而大大提高信息的引用密度。
基於傳統資料庫的關鍵字檢索由於性能問題讓很多網站放棄了搜尋功能,問題的解決歸根結底還是需要一個全文引擎。而Lucene開源引擎的出現讓這種原來被少數公司掌握的技術得到了迅速的普及,這裡應該再次感謝引擎的核心貢獻者DougCutting先生,同時也希望有更多的中文開發人員能積極投入:到Lucene的相關項目開發中去,尤其在中文和其他亞洲雙位元組語言處理方面的問題。
Lucene也是我學習的第一個Java程式,當初是通過jdb一行行dubug了解其中的原理和機制的,非常高興有這樣一本專門的參考書出現,它無疑會為開發人員了解並更快掌握全文檢索技術節省大量的時間。

目錄 入門篇

第1章 搜尋引擎概述

1.1 什麼是搜尋引擎
1.1.1 搜尋引擎與信息檢索
1.1.2 搜尋引擎的概念
1.1.3 搜尋引擎的使用
1.1.4 搜尋引擎發展歷史
1.2 搜尋引擎分類
1.2.1 按照工作方式分類
1.2.2 按照領域範圍分類
1.2.3 信息類型分類
1.3 主流搜尋引擎
1.3.1 全球著名搜尋引擎
1.3.2 中文搜尋引擎的發展歷史
1.3.3 著名中文搜尋引擎
1.3.4 其他細化搜尋引擎
1.4 搜尋引擎評價原則
1.4.1 評價指標體系
1.4.2 其他評測因素
1.5 搜尋引擎相關資源
1.5.1 搜尋引擎開源項目
1.5.2 搜尋引擎研究網站
1.5.3 搜尋論壇和廠商黑板報
1.6 系統運行環境準備
1.6.1 Java環境安裝設定
1.6.2 Tomcat伺服器安裝
1.6.3 Eclipse開發環境準備
1.7 未來搜尋技術前瞻
1.7.1 現狀存在問題
1.7.2 未來發展趨勢
1.8 小結

第2章 搜尋引擎原理探秘

2.1 解密搜尋引擎原理
2.1.1 搜尋引擎技術框架
2.1.2 網頁信息抓取技術
2.1.3 網頁內容分析技術
2.1.4 網頁索引建立技術
2.1.5 用戶檢索與結果排序
2.1.6 網頁檢索工具與接口
2.2 網路爬蟲簡單實現
2.2.1 網路蜘蛛功能需求
2.2.2 網路蜘蛛實現原理
2.2.3 網路爬蟲系統結構
2.2.4 網頁採集程式設計
2.2.5 網頁採集程式實現
2.2.6 程式實現存儲擴展
2.3 網頁分析程式實現
2.3.1 網頁分析功能需求
2.3.2 網頁分析實現原理
2.3.3 網頁分析系統結構
2.3.4 網頁分析程式設計
2.3.5 文本語素分割與過濾
2.4 網頁索引程式實現
2.4.1 網頁索引功能需求
2.4.2 網頁索引實現原理
2.4.3 網頁索引程式設計
2.4.4 網頁索引程式實現
2.5 檢索程式實現
2.5.1 檢索功能需求
2.5.2 檢索實現原理
2.5.3 檢索程式設計
2.5.4 網頁檢索程式實現
2.6 簡單搜尋引擎系統
2.7 小結

第3章 開源搜尋引擎入門

3.1 開源搜尋引擎簡介
3.1.1 Lucene系統概述
3.1.2 Nutch概述
3.2 Lucene全文檢索系統部署
3.2.1 下載Lucene系統
3.2.2 Lucene部署配置
3.2.3 Lucene測試運行
3.3 Lucene開發實例入門
3.3.1 Lucene實例功能
3.3.2 Lucene開發實例
3.3.3 代碼實例解析
3.4 Nutch開源搜尋引擎部署
3.4.1 Cygwin軟體安裝
3.4.2 Nutch下載與安裝
3.4.3 Nutch系統環境測試
3.4.4 Nutch搜尋頁面部署
3.5 Nutch系統調試與開發
3.5.1 Eclipse中載入Nutch
3.5.2 Nutch工程編譯與發布
3.6 小結

目錄 核心揭秘篇

第4章 搜尋引擎數據獲取

4.1 網路蜘蛛原理
4.1.1 體系結構設計
4.1.2 訪問策略與算法
4.1.3 效率最佳化與更新
4.1.4 蜘蛛訪問規範
4.1.5 開源蜘蛛簡介
4.2 Nutch網路蜘蛛
4.2.1 Nutch網路蜘蛛概述
4.2.2 Nutch抓取模式分類
4.2.3 抓取測試站點建立
4.3 Nutch區域網路抓取
4.3.1 本地下載準備
4.3.2 啟動下載過程
4.3.3 下載過程解析
4.3.4 下載多個網站
4.4 Nutch網際網路抓取
4.4.1 下載列表獲取
4.4.2 下載大量網站
4.5 Nutch抓取比較
4.6 Nutch結果檢測
4.6.1 網頁內容檢索
4.6.2 使用Readdb獲取摘要
4.6.3 使用SegRead讀取分段
4.6.4 Luke工具使用
4.7 Nutch配置檔案解析
4.8 Heritrix網路蜘蛛
4.8.1 Heritrix概述
4.8.2 Heritrix體系結構
4.8.3 Heritrix安裝與使用
4.9 小結

第5章 搜尋引擎信息索引

5.1 文檔索引原理
5.1.1 索引概述
5.1.2 索引基本結構
5.1.3 倒排索引原理
5.1.4 索引分類
5.1.5 高性能索引
5.2 Lucene索引器
5.2.1 Lucene索引介紹
5.2.2 Lucene索引結構
5.2.3 多檔案索引結構
5.2.4 複合索引結構
5.3 Lucene索引實例
5.3.1 索引創建代碼解析
5.3.2 索引創建器(IndexWriter)
5.3.3 索引管理器(IndexReader)
5.3.4 索引修改器(IndexModifier)
5.3.5 索引分析器(Analyzer)
5.4 Lucene索引操作
5.4.1 添加文本檔案索引
5.4.2 創建Lucene增量索引
5.4.3 使用索引項刪除文檔
5.4.4 使用編號刪除文檔
5.4.5 壓縮文檔編號
5.4.6 索引文檔更新
5.5 Lucene索引高級特性
5.5.1 選擇索引域類型
5.5.2 索引參數最佳化
5.5.3 使用磁碟索引
5.5.4 使用記憶體索引
5.5.5 同步與鎖機制
5.6 Lucene高級套用實例
5.6.1 創建本地搜尋的索引
5.6.2 索引資料庫記錄
5.6.3 索引最佳化與合併
5.7 Nutch中的Lucene索引
5.8 小結

第6章 搜尋引擎查詢處理

6.1 信息查詢原理
6.1.1 信息查詢概述
6.1.2 查詢基本流程
6.1.3 查詢結果顯示
6.1.4 高性能查詢
6.2 Lucene查詢概述
6.2.1 Lucene查詢操作基礎
6.2.2 Lucene查詢實例入門
6.2.3 查詢工具IndexSearcher類
6.2.4 查詢封裝Query類
6.2.5 查詢分析器QueryParser類
6.2.6 查詢結果集Hits類
6.3 Lucene基本查詢
6.3.1 Lucene查詢Query對象
6.3.2 最小項查詢TermQuery
6.3.3 區間範圍搜尋RangeQuery
6.3.4 邏1/4組合搜尋BooleanQuery
6.3.5 字串前綴搜尋PrefixQuery
6.3.6 短語搜尋PhraseQuery
6.3.7 模糊搜尋FuzzyQuery
6.3.8 通配符搜尋WildcardQuery
6.3.9 位置跨度搜尋SpanQuery
6.4 Lucene高級查詢
6.4.1 索引記憶體檢索
6.4.2 多關鍵字跨域檢索
6.4.3 多檢索器跨索引檢索
6.5 Nutch中的Lucene查詢
6.6 小結

第7章 搜尋引擎結果排序

7.1 搜尋引擎文檔排序原理
7.1.1 傳統檢索排序技術
7.1.2 向量模型排序局限
7.1.3 搜尋引擎相關性排序
7.1.4 連結分析PageRank原理
7.1.5 搜尋引擎排序流程
7.2 Lucene檢索排序
7.2.1 Lucene相關性因素
7.2.2 Lucene相關排序流程
7.2.3 Lucene排序計算體系
7.2.4 Lucene排序控制方法
7.3 文檔Boost加權排序
7.3.1 Lucene中Boost介紹
7.3.2 Boost值全文檔排序
7.3.3 Boost值文檔域排序
7.3.4 BoostingTermQuery排序
7.4 Sort對象檢索排序
7.4.1 Sort對象概述
7.4.2 Sort對象相關性排序
7.4.3 Sort對象文檔編號排序
7.4.4 Sort對象獨立域排序
7.4.5 Sort對象聯合域排序
7.4.6 Sort對象逆向排序
7.5 Lucene相關性公式
7.5.1 Lucene評分結果分析
7.5.2 Lucene排序公式
7.5.3 其他動態排序因子
7.6 Lucene自定義排序
7.6.1 自定義排序比較接口
7.6.2 自定義排序接口類實例
7.6.3 自定義排序結果測試實例
7.6.4 自定義排序測試結果
7.7 Nutch中的結果排序
7.7.1 Nutch排序因素
7.7.2 Nutch連結分析
7.7.3 Nutch相關度計算
7.8 小結

第8章 文檔分析器與中文分詞

8.1 文檔分析與中文分詞原理
8.1.1 文檔分析預處理概述
8.1.2 文檔分析基本流程
8.1.3 中文分析處理中的分詞
8.2 Lucene分析器核心原理
8.2.1 Lucene分析器原理
8.2.2 Analysis包簡介
8.2.3 Analyzer類的組合結構
8.2.4 JavaCC構造分析器
8.2.5 StopAnalyzer核心代碼分析
8.2.6 StandardAnalyzer核心代碼分析
8.3 Lucene分析器套用模式
8.3.1 使用默認分析器建立索引
8.3.2 使用多種分析器建立索引
8.3.3 使用分析器檢索查詢
8.4 Lucene主要分析器套用實例
8.4.1 停用詞分析器StopAnalyzer
8.4.2 標準分析器StandardAnalyzer
8.4.3 簡單分析器SimpleAnalyzer
8.4.4 空格分析器WhitespaceAnalyzer
8.4.5 關鍵字分析器KeywordAnalyzer
8.5 TokenStream分詞器核心分析
8.5.1 Tokenizer分詞器
8.5.2 標準分詞器StandardTokenizer
8.5.3 字元分詞器CharTokenizer
8.5.4 空格分詞器WhiteSpaceTokenizer
8.5.5 字母分詞器LetterTokenizer
8.5.6 小寫分詞器LowerCaseTokenizer
8.6 TokenStream過濾器核心分析
8.6.1 TokenFilter過濾器
8.6.2 標準過濾器StandardFilter
8.6.3 停用詞過濾器StopFilter
8.6.4 小寫過濾器LowerCaseFilter
8.6.5 長度過濾器LengthFilter
8.6.6 詞幹過濾器PorterStemFilter
8.7 Lucene中文分詞
8.7.1 中文分詞基本原理方法
8.7.2 StandardAnalyzer分析器中文處理
8.7.3 CJKAnalyzer中文分析器
8.7.4 ChineseAnalyzer中文分析器
8.7.5 IK_CAnalyzer中文分析器
8.7.6 中科院ICTCLAS中文分詞
8.7.7 JE中文分詞
8.7.8 中文分詞問題
8.8 Nutch分詞和預處理
8.8.1 Nutch分析器
8.8.2 Nutch中文分詞
8.9 小結

第9章 搜尋引擎文本分析

9.1 非結構化文本簡介
9.1.1 非結構化文本概述
9.1.2 非結構化文本檢索
9.2 HTML文檔分析
9.2.1 主流HTML文檔分析器
9.2.2 HTMLParser安裝配置
9.2.3 HTMLParser的框架結構
9.3 HTMLParser套用實例
9.3.1 HTMLParser功能模式
9.3.2 HTMLParser內容解析方式
9.3.3 Visitor模式正文解析
9.3.4 Filter模式簡單連結提取
9.3.5 Filter模式搜尋連結提取
9.3.6 Lexer模式遍歷文檔
9.4 PDF文檔分析
9.4.1 常用的PDF處理包
9.4.2 PDFBox安裝配置
9.5 PDFBox套用實例
9.5.1 PDFBox提取文檔內容
9.5.2 PDFBox文檔內容索引
9.6 Office文檔分析
9.6.1 常用Office文檔處理包
9.6.2 使用POI安裝與配置
9.6.3 POI原理與接口介紹
9.7 POI分析Office文檔實例
9.7.1 POI處理Excel文檔
9.7.2 POI處理Word文檔
9.8 XML文檔分析
9.8.1 主流XML文檔分析器
9.8.2 JDOM分析器安裝配置
9.8.3 xerces分析器安裝配置
9.9 XML解析套用實例
9.9.1 使用JDOM分析XML 文檔
9.9.2 使用xerces分析XML 文檔
9.10 Nutch文檔處理
9.11 小結

第10章 分散式搜尋與快取

10.1 分散式檢索與快取
10.1.1 分散式搜尋引擎現狀
10.1.2 分散式搜尋引擎原理
10.1.3 搜尋引擎快取現狀
10.1.4 搜尋引擎快取原理
10.2 Nutch與分散式檢索
10.2.1 Google分散式檔案系統
10.2.2 MapReduce系統介紹
10.2.3 Hadoop分散式檔案系統
10.2.4 Nutch分散式檔案系統
10.2.5 Nutch分散式檢索概述
10.2.6 Nutch分散式檢索器
10.3 Lucene分散式檢索
10.3.1 Socket通信基礎
10.3.2 Lucene索引伺服器
10.4 Nutch與搜尋快取
10.5 開源系統快取系統
10.6 小結

目錄 實戰篇

第11章 Nutch專題搜尋引擎實例

11.1 專題搜尋需求分析
11.1.1 專題搜尋功能需求
11.1.2 專題搜尋用例分析
11.2 構建Nutch基礎搜尋引擎
11.2.1 Nutch搜尋功能分析
11.2.2 信息下載功能測試
11.2.3 Nutch基礎Web檢索
11.2.4 Web用戶頁面修改
11.3 專題搜尋系統設計
11.3.1 系統框架設計
11.3.2 選擇開發工具組件
11.4 專題關鍵字管理
11.4.1 專題關鍵字策略
11.4.2 關鍵字存儲設計
11.4.3 關鍵字管理程式
11.5 專題資源發現
11.5.1 專題網頁連結發現
11.5.2 專題資源網站提取
11.6 專題信息下載
11.6.1 批量信息下載
11.6.2 信息自動下載
11.7 專題信息分析與索引
11.7.1 網頁信息分析
11.7.2 創建索引
11.8 檢索輔助功能
11.8.1 相關詞推薦
11.8.2 檢索詞高亮顯示
11.8.3 檢索結果翻頁
11.9 小結

第12章 Lucene實現企業搜尋實例

12.1 企業搜尋需求分析
12.1.1 企業搜尋需求概述
12.1.2 企業搜尋用例分析
12.2 企業級搜尋系統設計
12.2.1 系統框架設計
12.2.2 Lucene檢索框架
12.3 企業級搜尋系統設計
12.3.1 創建Lucene工程
12.3.2 全文檢索索引生成
12.3.3 全文檢索檢索頁面
12.4 數據引擎設計
12.4.1 資料庫數據管理
12.4.2 非結構化文檔
12.5 企業信息索引
12.5.1 數據索引建立
12.5.2 信息檢索代碼
12.5.3 檢索Web代碼
12.5.4 檢索結果測試
12.6 小結
……

相關詞條

熱門詞條

聯絡我們