使用C#開發搜索引擎 1
第1章 使用C#開發搜索引擎快速入門 2
1.1 各種搜索引擎 2
1.1.1 通用搜索 2
1.1.2 垂直搜索 3
1.1.3 站內搜索 4
1.2 搜索引擎整體結構 4
1.3 搜索引擎基本技術 5
1.3.1 網絡爬蟲 5
1.3.2 文本挖掘 6
1.3.3 全文索引 6
1.3.4 搜索語法介紹 10
1.3.5 搜索用戶界麵 11
1.4 C#開發快速入門 13
1.4.1 準備開發環境 13
1.4.2 基本語法 13
1.4.3 多維數組 15
1.4.4 位運算 15
1.4.5 枚舉類型 16
1.4.6 麵嚮對象 17
1.4.7 集閤類 19
1.4.8 泛型 21
1.4.9 委托和事件 21
1.4.10 類庫 24
1.5 本章小結 24
1.6 術語錶 25
第2章 使用C#開發網絡爬蟲 26
2.1 網絡爬蟲抓取原理 26
2.2 爬蟲架構 29
2.2.1 基本架構 29
2.2.2 分布式爬蟲架構 31
2.2.3 垂直爬蟲架構 32
2.3 下載網頁 33
2.3.1 HTTP協議 33
2.3.2 下載靜態網頁 37
2.3.3 下載動態網頁 41
2.4 網絡爬蟲遍曆與實現 49
2.5 網站地圖 51
2.6 連接池 52
2.7 URL地址查新 53
2.7.1 嵌入式數據庫 54
2.7.2 布隆過濾器 56
2.8 抓取RSS 59
2.9 解析相對地址 61
2.10 網頁更新 62
2.11 信息過濾 64
2.12 垂直行業抓取 70
2.13 抓取限製應對方法 70
2.13.1 更換IP地址 70
2.13.2 抓取需要登陸的網頁 73
2.13.3 抓取ASP.NET網頁 76
2.14 保存信息 79
2.14.1 存入數據庫 79
2.14.2 存成圖像 80
2.15 日誌 81
2.16 本章小結 84
2.17 術語錶 85
第3章 索引各種格式文檔 89
3.1 從HTML文件中提取信息 89
3.1.1 識彆網頁的編碼 89
3.1.2 正則錶達式 91
3.1.3 Html Agility Pack介紹 96
3.1.4 網頁正文提取 100
3.1.5 結構化信息提取 113
3.1.6 查看網頁的DOM結構 117
3.1.7 網頁結構相似度計算 119
3.2 從非HTML文件中提取文本 122
3.2.1 TEXT文件 122
3.2.2 PDF文件 123
3.2.3 Office文件 125
3.2.4 Rtf文件 126
3.3 本章小結 128
3.4 術語錶 128
第4章 自然語言處理 129
4.1 統計機器學習 129
4.1.1 協同推薦 130
4.2 文檔排重 136
4.3 中文關鍵詞提取 145
4.3.1 關鍵詞提取的基本方法 146
4.3.2 從網頁中提取關鍵詞 149
4.4 相關搜索 149
4.5 拼寫檢查 150
4.5.1 拼寫檢查的概率模型 151
4.5.2 模糊匹配問題 152
4.5.3 英文拼寫檢查 156
4.5.4 中文拼寫檢查 159
4.6 文本摘要 160
4.6.1 文本摘要的設計 160
4.6.2 實現文本摘要技術 161
4.6.3 Lucene.Net中的動態摘要 167
4.7 文本分類 168
4.7.1 自動分類的接口定義 168
4.7.2 自動分類的實現 169
4.8 自動聚類 170
4.8.1 文檔相似度 171
4.8.2 K均值聚類方法 174
4.8.3 K均值實現 176
4.9 拼音轉換 178
4.10 句法分析樹 178
4.11 信息提取 187
4.12 本章小結 194
4.13 術語錶 196
第5章 用C#實現中文分詞 197
5.1 漢語中的詞 197
5.2 文本切分的基本方法 197
5.3 有限狀態機 199
5.4 查找詞典算法 201
5.4.1 標準Trie樹 202
5.4.2 三叉Trie樹 208
5.5 中文分詞的原理 213
5.6 中文分詞流程與結構 217
5.7 切分詞圖 219
5.7.1 保存切分詞圖 220
5.7.2 生成全切分詞圖 224
5.8 概率語言模型的分詞方法 227
5.8.1 一元模型 228
5.8.2 N元模型 231
5.9 最大熵 237
5.10 未登錄詞識彆 238
5.11 詞性標注 239
5.12 地名切分 252
5.12.1 地址類性標注 252
5.12.2 未登錄詞識彆 253
5.13 本章小結 254
5.14 術語錶 255
第6章 Lucene.Net原理與應用 256
6.1 Lucene.Net快速入門 256
6.1.1 索引文檔 257
6.1.2 搜索文檔 258
6.1.3 Lucene.Net結構 260
6.2 Lucene.Net深入介紹 260
6.2.1 索引原理 261
6.2.2 分析文本 263
6.2.3 遍曆索引庫 267
6.2.4 檢索模型 268
6.2.5 收集最相關的文檔 270
6.3 索引中的壓縮算法 275
6.3.1 變長壓縮 276
6.3.2 差分編碼 278
6.4 創建和維護索引庫 278
6.4.1 設計一個簡單的索引庫 279
6.4.2 創建索引庫 280
6.4.3 嚮索引庫中添加索引文檔 280
6.4.4 刪除索引庫中的索引文檔 283
6.4.5 更新索引庫中的索引文檔 284
6.4.6 索引的優化與閤並 284
6.5 查找索引庫 285
6.5.1 布爾查詢 286
6.5.2 同時查詢多列 289
6.5.3 跨度查詢 290
6.5.4 通配符查詢 294
6.5.5 過濾 294
6.5.6 按指定列排序 295
6.5.7 查詢大容量索引 300
6.5.8 函數查詢 302
6.5.9 定製相似性 305
6.5.10 評價搜索結果 307
6.6 中文信息檢索 308
6.6.1 Lucene.Net中的中文處理 308
6.6.2 Lietu中文分詞的使用 309
6.6.3 定製Tokenizer 310
6.6.4 解析查詢串 312
6.6.5 實現字詞混閤索引 315
6.7 抓取數據庫中的內容 319
6.7.1 讀取數據 319
6.7.2 數據同步 321
6.8 概念搜索 321
6.9 本章小結 324
6.10 術語錶 325
第7章 實現搜索用戶界麵 327
7.1 搜索頁麵設計 327
7.1.1 用於顯示搜索結果的ASP.NET 327
7.1.2 搜索結果分頁 330
7.1.3 設計一個簡單的搜索頁麵 331
7.2 實現搜索接口 331
7.2.1 Lucene.Net搜索接口 331
7.2.2 指定範圍搜索 336
7.2.3 搜索頁麵的索引緩存與更新 337
7.3 實現關鍵詞高亮顯示 340
7.4 實現分類統計視圖 341
7.4.1 搜索結果分類統計與導航 341
7.4.2 層次樹 345
7.5 相關搜索詞 348
7.6 實現AJAX自動完成 349
7.6.1 總體結構 349
7.6.2 服務器端處理 350
7.6.3 瀏覽器端處理 350
7.7 集成其他功能 353
7.7.1 拼寫檢查 353
7.7.2 再次查找 353
7.7.3 黑名單 354
7.7.4 搜索日誌 355
7.8 本章小結 356
第8章 使用Solr開發網站搜索 357
8.1 搜索服務器端 357
8.1.1 Solr結構 358
8.1.2 啓動Solr服務器 359
8.1.3 配置支持中文的Solr 362
8.1.4 索引數據 366
8.1.5 查詢功能 367
8.1.6 高亮 370
8.2 Solr的.NET客戶端 371
8.2.1 使用SolrNet 372
8.2.2 實現多分類 380
8.3 查詢語法 382
8.3.1 對空格的支持 382
8.3.2 日期加權 382
8.4 索引分布 385
8.5 本章小結 387
· · · · · · (
收起)