版權資訊
內容簡介
前言
第1章 搜尋引擎
1.1 搜尋引擎基本模組
1.2 開發環境
1.3 搜尋引擎工作原理
1.3.1 網路爬蟲
1.3.2 全文索引
1.3.3 搜尋用戶界面
1.3.4 分佈式計算
1.3.5 文字挖掘
1.4 算法基礎
1.4.1 二分搜尋
1.4.2 排序
1.4.3 最小生成樹
1.5 軟體工具
1.6 單元測試
1.7 本章小結
1.8 術語表
第2章 自己動手寫全文檢索
2.1 構建索引
2.2 生成索引文件
2.3 讀入索引文件
2.4 查詢
2.5 有限狀態機
2.5.1 運算
2.5.2 編輯距離有限狀態機
2.6 本章小結
第3章 Lucene的原理與應用
3.1 Lucene快速入門
3.1.1 創建索引
3.1.2 查詢索引庫
3.1.3 創建文件索引
3.1.4 查詢文件索引
3.2 創建和維護索引庫
3.2.1 設計索引庫結構
3.2.2 創建索引庫
3.2.3 向索引庫中添加索引文件
3.2.4 刪除索引庫中的索引文件
3.2.5 更新索引庫中的索引文件
3.2.6 關閉索引庫
3.2.7 索引的優化與合併
3.2.8 靈活索引
3.2.9 索引文件格式
3.2.10 定製索引存儲結構
3.2.11 寫索引集成到爬蟲
3.2.12 多線程寫索引
3.2.13 分發索引
3.2.14 修復索引
3.3 查找索引庫
3.3.1 查詢過程
3.3.2 常用查詢
3.3.3 基本詞查詢
3.3.4 模糊匹配
3.3.5 布林查詢
3.3.6 短語查詢
3.3.7 跨度查詢
3.3.8 FieldScoreQuery
3.3.9 排序
3.3.10 使用Filter篩選搜尋結果
3.3.11 使用Collector篩選搜尋結果
3.3.12 遍歷索引庫
3.3.13 關鍵字高亮顯示
3.3.14 列合併
3.3.15 關聯內容(BlockJoinQuery)
3.3.16 查詢大容量索引
3.4 讀寫並發
3.5 Lucene深入介紹
3.5.1 整體結構
3.5.2 索引原理
3.5.3 文件值
3.5.4 FST
3.6 查詢語法與解析
3.6.1 JavaCC
3.6.2 生成一個查詢解析器
3.6.3 簡單的查詢解析器
3.6.4 靈活的查詢解析器
3.7 檢索模型
3.7.1 向量空間模型
3.7.2 DFR
3.7.3 BM25機率模型
1.排名函數
2.IDF的資訊理論性解釋
3.7.4 BM25F機率模型
3.7.5 統計語言模型
3.7.6 相關性反饋
3.7.7 隱含語義索引
3.7.8 學習評分
3.7.9 查詢與相關度
3.7.10 使用Payload調整相關性
3.8 查詢原理
3.8.1 布林匹配
3.8.2 短語查詢
3.8.3 索引統計
3.8.4 相關性
3.9 分析文字
3.9.1 Analyzer
3.9.2 TokenStream
3.9.3 定製Tokenizer
3.9.4 重用Tokenizer
3.9.5 有限狀態轉換
3.9.6 索引數值列
3.9.7 檢索結果排序
3.9.8 處理價格
3.10 Lucene中的壓縮算法
3.10.1 變長壓縮
3.10.2 Gamma
3.10.3 PForDelta
3.10.4 VSEncoding
3.10.5 前綴壓縮
3.10.6 差分編碼
3.10.7 靜態索引裁剪
3.11 搜尋中文
3.11.1 Lucene切分原理
3.11.2 Lucene中的Analyzer
3.11.3 自己寫Analyzer
3.11.4 Lietu中文分詞
3.11.5 字詞混合索引
3.12 搜尋英文
3.12.1 英文分詞
3.12.2 詞性標註
3.12.3 原型化
3.13 索引資料庫中的文字
3.14 優化使用Lucene
3.14.1 系統優化
3.14.2 查詢優化
3.14.3 實現時間加權排序
3.14.4 詞性標註
3.14.5 個性化搜尋
3.15 實時搜尋
3.16 語義搜尋
3.16.1 發現同義詞
3.16.2 垂直領域同義詞
3.16.3 同義詞擴展
3.16.4 語義標註
3.17 本章小結
3.18 術語表
第4章 搜尋引擎用戶界面
4.1 實現Lucene搜尋
4.1.1 測試搜尋功能
4.1.2 加載索引
4.2 搜尋頁面設計
4.2.1 Struts2實現的搜尋界面
4.2.2 用於顯示搜尋結果的Taglib
4.2.3 實現翻頁
4.3 實現搜尋接口
4.3.1 編碼識別
4.3.2 布林搜尋
4.3.3 指定範圍搜尋
4.3.4 搜尋結果排序
4.3.5 索引緩存與更新
4.4 實現分類統計視圖
4.4.1 單值列分類統計
4.4.2 側鑽
4.5 實現相似文件搜尋
4.6 實現AJAX搜尋聯想詞
4.6.1 估計查詢詞的文件頻率
4.6.2 搜尋聯想詞總體結構
4.6.3 伺服器端處理
4.6.4 瀏覽器端處理
4.6.5 拼音提示
4.6.6 部署總結
4.7 推薦搜尋詞
4.7.1 挖掘相關搜尋詞
4.7.2 使用多線程計算相關搜尋詞
4.8 查詢意圖理解
4.8.1 拼音搜尋
4.8.2 無結果處理
4.9 集成其他功能
4.9.1 拼寫檢查
4.9.2 分類統計
4.9.3 相關搜尋
4.9.4 再次查找
4.9.5 搜尋日誌
4.10 查詢分析
4.10.1 歷史搜尋詞記錄
4.10.2 日誌資訊過濾
4.10.3 資訊統計
4.10.4 挖掘日誌資訊
4.10.5 查詢詞意圖分析
4.11 部署網站
4.11.1 部署到Web伺服器
4.11.2 防止攻擊
4.12 手機搜尋界面
4.13 本章小結
第5章 Solr分佈式搜尋引擎
5.1 Solr簡介
5.2 Solr基本用法
5.2.1 Solr伺服器端的配置與中文支持
5.2.2 數據類型
5.2.3 解析器
5.2.4 把數據放進Solr
5.2.5 刪除數據
5.2.6 查詢語法
5.3 使用SolrJ
5.3.1 Solr客戶端與搜尋界面
5.3.2 Solr索引庫的查找
5.3.3 分類統計
5.3.4 高亮
5.3.5 同義詞
5.3.6 嵌入式Solr
5.3.7 Spring實現的搜尋界面
5.3.8 索引分發
5.3.9 Solr搜尋優化
5.4 從FASTSearch移植到Solr
5.5 Solr擴展與定製
5.5.1 缺省查詢
5.5.2 外掛程式
5.5.3 Solr中字詞混合索引
5.5.4 相關檢索
5.5.5 搜尋結果去重
5.5.6 定製輸入輸出
5.5.7 群集
5.5.8 分佈式搜尋
5.5.9 分佈式索引
5.5.10 SolrJ查詢分析器
5.5.11 擴展SolrJ
5.5.12 擴展Solr
5.5.13 日文搜尋
5.5.14 查詢Web圖
5.6 SolrNet
5.6.1 使用SolrNet實現全文搜尋
5.6.2 實現原理
5.6.3 擴展SolrNet
5.7 Solr的PHP客戶端
5.8 Solr的其他客戶端
5.9 為網站增加搜尋功能
5.10 SolrCloud
5.10.1 Zab協議
5.10.2 ZooKeeper
5.10.3 使用SolrCloud
5.10.4 SQL查詢
5.11 Solr原理
5.11.1 支持Solr的中文分詞
5.11.2 緩存技術
5.12 本章小結
第6章 ElasticSearch分佈式搜尋引擎
6.1 安裝
6.2 搜尋集群
6.2.1 Zen發現機制
6.2.2 JGroups
6.3 創建索引
6.4 Java客戶端接口
6.4.1 創建索引
6.4.2 插入數據
6.4.3 索引庫結構
6.5 查詢
6.6 高亮顯示
6.7 分頁
6.8 中文搜尋
6.8.1 中文AnalyzerProvider
6.8.2 字詞混合索引
6.9 分組統計
6.10 與爬蟲集成
6.11 Percolate
6.12 權限
6.13 SQL支持
6.14 本章小結