前 言
第1章 網絡爬蟲策略 1
1.1 信息時代的飛躍 1
1.1.1 搜索引擎的齣現 1
1.1.2 搜索之網絡爬蟲的由來 4
1.2 網絡爬蟲 6
1.2.1 網絡爬蟲的基礎框架 6
1.2.2 網絡爬蟲的策略分析 8
1.2.3 暗網獲取 11
1.2.4 分布式爬蟲 12
1.3 實現Web搜索 13
1.3.1 Web搜索的概念 13
1.3.2 經典小實例展示 13
1.4 疑難解析 18
1.4.1 本節技術概念 18
1.4.2 實例疑難解析 19
1.5 實踐心得 19
1.5.1 如何快速實現Web搜索 19
1.5.2 如何解決和發現代碼錯誤 20
1.6 本章小結 21
第2章 搜索引擎技術中的Lucene 22
2.1 Lucene到底是什麼 22
2.1.1 Lucene的由來 22
2.1.2 Lucene的概念 23
2.1.3 Lucene的適用範圍 23
2.2 Lucene的架構 24
2.2.1 Lucene=“完整的搜索程序”嗎 26
2.2.2 搜索和索引組件介紹 27
2.2.3 其他模塊 28
2.2.4 Lucene與應用的完美結閤 29
2.3 Lucene小程序 29
2.3.1 創建索引 29
2.3.2 搜索索引 34
2.4 實踐心得 35
2.4.1 實現創建和搜索的技術解析 36
2.4.2 實例創建過程中的個人心得 36
2.5 本章小結 36
第3章 創建索引實例 37
3.1 開發前的軟硬件準備 37
3.1.1 開發語言和專業基礎 37
3.1.2 開發環境基礎 38
3.2 對文本文檔進行索引 41
3.2.1 新建文本文檔 41
3.2.2 基礎的索引代碼 43
3.2.3 索引結果 43
3.3 實例中用到的類和關鍵詞 44
3.3.1 實例中涉及的類 44
3.3.2 實例中涉及的關鍵詞 46
3.4 本章技術要點和關鍵點 51
3.4.1 本章技術要點 51
3.4.2 本章關鍵點 52
3.4.3 技術突破點 52
3.5 開發中的個人心得分享 53
3.6 本章小結 53
第4章 初建索引 54
4.1 建立數據庫索引的前提和意義 54
4.1.1 建立數據庫索引的前提 54
4.1.2 建立數據庫索引的基本條件 55
4.1.3 建立數據庫索引的意義 57
4.2 建立數據庫索引實例 58
4.2.1 新建索引類 58
4.2.2 實例核心代碼示例 66
4.3 實例中重要的工具:Luke 70
4.3.1 什麼是Luke 70
4.3.2 Luke的作用 70
4.4 解決疑難問題的個人心得 71
4.4.1 多樣化實例的參考 72
4.4.2 案例分析 74
4.5 SQL Server 2005、SQL Server 2008以及Oracle數據庫的區彆 75
4.6 本章小結 76
第5章 分詞技術詳解 77
5.1 分詞的定義和意義 77
5.2 英文分詞介紹 78
5.3 中文分詞解析 80
5.3.1 中文分詞的目的 80
5.3.2 中文分詞的意義 80
5.3.3 中文分詞的方法 82
5.4 實例的分詞方法剖析 86
5.4.1 IKAnalyzer的誕生 86
5.4.2 IKAnalyzer的配置方法 86
5.4.3 IKAnalyzer的使用 88
5.5 分詞技術的廣泛應用 89
5.5.1 搜索引擎網站的分詞技術應用 90
5.5.2 分詞技術深入各個領域 91
5.6 實踐見解 92
5.6.1 關於分詞的問題 92
5.6.2 關於搜索引擎分詞和查找的個人心得 93
5.7 本章小結 94
第6章 jar包應用詳解 95
6.1 jar包的定義 95
6.2 基本的jar包介紹 96
6.2.1 連接SQL Server的jar包 97
6.2.2 Lucene常用的jar包 98
6.3 實例中的分詞jar包IKAnalyzer3.2.8 98
6.3.1 概念 98
6.3.2 適用範圍和基本配置要求 99
6.3.3 使用案例分析 100
6.4 實例中的其他jar包應用 102
6.4.1 實例包含的其他jar包 102
6.4.2 適用範圍和案例分析 103
6.5 jar包的調用方法 103
6.6 擴展:如何生成jar包和運行jar包 104
6.7 實踐分享 106
6.7.1 如何在自己的項目中靈活運用jar包 106
6.7.2 jar的路徑問題 107
6.7.3 jar包中class文件的反編譯 108
6.8 本章小結 109
第7章 構建應用程序的實現 110
7.1 建立實例的項目 110
7.1.1 src目錄 110
7.1.2 webroot目錄 116
7.2 詳解擴展詞典和停止詞 121
7.2.1 為什麼需要擴展詞典和停止詞 121
7.2.2 擴展詞典的應用 122
7.2.3 停止詞應用 122
7.3 應用程序測試 124
7.3.1 應用程序在MyEclipse下的調試 124
7.3.2 搜索結果的分頁技術 125
7.3.3 實現界麵搜索 129
7.4 開發過程中的疑難問題分享 129
7.4.1 停止詞的準確應用 130
7.4.2 擴展詞典問題 130
7.4.3 界麵分頁顯示的實例分析 131
7.4.4 localhost與127.0.0.1的異同 131
7.4.5 src目錄和webroot目錄 132
7.5 本章小結 132
第8章 查詢方法的實現 133
8.1 查詢的概念和意義 133
8.1.1 搜索引擎實現查詢的概念 133
8.1.2 搜索引擎查詢的意義 136
8.2 查詢的分類 136
8.2.1 完全匹配查詢 136
8.2.2 模糊查詢 137
8.2.3 多域查詢 138
8.2.4 通配符查詢 140
8.2.5 其他查詢 140
8.2.6 組閤查詢 142
8.3 實例分析 142
8.3.1 完全匹配查詢實例解析 142
8.3.2 模糊查詢實例分析 143
8.3.3 多域查詢實例分析 144
8.3.4 通配符查詢實例分析 145
8.3.5 其他查詢實例及分析 146
8.3.6 組閤查詢實例及分析 146
8.4 實踐過程中的重難點解析 148
8.4.1 使用什麼查詢方法 148
8.4.2 模糊查詢案例剖析 149
8.4.3 Occur.MUST與Occur.SHOULD 150
8.5 本章小結 150
第9章 高亮顯示技術 151
9.1 高亮顯示的概念和目的 151
9.1.1 高亮顯示的概念 151
9.1.2 高亮顯示的目的 152
9.2 高亮顯示的模塊介紹 152
9.2.1 高亮顯示的步驟 152
9.2.2 高亮顯示的重要模塊 154
9.2.3 其他相關內容 155
9.3 高亮實現搜索結果 156
9.3.1 高亮顯示的實例 156
9.3.2 高亮顯示的搜索結果 159
9.3.3 高亮顯示界麵效果 161
9.4 高亮顯示的應用 162
9.5 高亮顯示的技術疑難分析 163
9.5.1 如何解決高亮查詢結果顯示不完全的問題 163
9.5.2 高亮顯示的對應問題解析 164
9.6 本章小結 165
第10章 結果排序和詞頻統計 166
10.1 排序和詞頻統計概念 166
10.1.1 什麼是搜索結果排序 166
10.1.2 搜索結果排序的意義 167
10.1.3 什麼是詞頻統計 168
10.1.4 詞頻統計的意義何在 168
10.2 排序分類 169
10.2.1 根據域值排序 169
10.2.2 索引順序排序 170
10.2.3 根據相關性排序 170
10.2.4 根據詞頻率排序 171
10.2.5 其他 172
10.3 實例分析 172
10.3.1 根據域值排序的實例解析 172
10.3.2 根據索引順序排序的實例分析 173
10.3.3 根據相關性排序的實例分析 173
10.3.4 根據詞頻排序實例分析 175
10.3.5 其他排序方法實例分析 177
10.4 實踐心得 178
10.4.1 查詢結果排序的問題 178
10.4.2 關於詞性處理的問題解析 181
10.5 本章小結 183
第11章 開發中的性能優化概述 184
11.1 代碼的優化 184
11.1.1 什麼是代碼優化 184
11.1.2 代碼優化的意義 185
11.1.3 如何實現代碼的優化 185
11.2 索引優化 189
11.2.1 索引優化的目的 189
11.2.2 索引優化的方法和途徑 189
11.2.3 索引優化的效果 192
11.3 索引的備份和錯誤修復 192
11.3.1 如何實現索引備份 193
11.3.2 恢復索引的實現 193
11.3.3 修復索引 194
11.4 本章小結 195
第12章 對瓶頸技術的未來設想 196
12.1 海量數據庫資源搜索 196
12.1.1 什麼是海量數據庫 196
12.1.2 海量數據庫資源搜索的現狀和瓶頸 197
12.1.3 海量數據庫搜索的未來設想 197
12.2 高亮顯示查詢結果的未來設想 199
12.2.1 高亮顯示齣現的意義 199
12.2.2 高亮顯示目前現狀 199
12.2.3 黃褪技術概述 200
12.2.4 對高亮顯示查詢結果的未來展望 200
12.3 搜索引擎開發的規範性約束 201
12.3.1 搜索引擎開發的現狀 201
12.3.2 版本的控製 202
12.3.3 未來國際規範性約束的展望 202
12.4 本章小結 202
附錄A Java安裝詳解 203
附錄B SQL Server 2005安裝詳解 207
附錄C MyEclipse 安裝詳解 213
附錄D Lukeall在本書中的應用 215
附錄E MyEclipse快捷鍵詳解 218
· · · · · · (
收起)