第1章 使用C#开发搜索引擎快速入门 1
1.1各种搜索引擎 2
1.1.1通用搜索 3
1.1.2垂直搜索 3
1.1.3站内搜索 4
1.2搜索引擎的整体结构 4
1.3搜索引擎的基本技术 5
1.3.1网络爬虫 5
1.3.2文本挖掘 5
1.3.3全文索引 6
1.3.4搜索语法介绍 8
1.3.5搜索用户界面 8
1.4 C#开发快速入门 9
1.4.1准备开发环境 9
1.4.2基本语法 9
1.4.3多维数组 11
1.4.4位运算 11
1.4.5枚举类型 12
1.4.6面向对象 13
1.4.7字符串 15
1.4.8读写文件 16
1.4.9集合类 17
1.4.10泛型 20
1.4.11委托和事件 21
1.4.12 lambda表达式 24
1.4.13单元测试 24
1.4.14扩展方法 25
1.4.15 类库 26
1.5算法基础 26
1.5.1双端队列 27
1.5.2散列表 31
1.5.3单链表 36
1.5.4标准Trie树 37
1.5.5二叉搜索树 39
1.5.6三叉Trie树 41
1.5.7平衡Trie树 46
1.6本章小结 48
1.7术语表 48
第2章 使用C#开发网络爬虫 51
2.1网络爬虫抓取原理 52
2.2爬虫架构 54
2.2.1基本架构 54
2.2.2分布式爬虫架构 56
2.2.3垂直爬虫架构 57
2.3下载网页 58
2.3.1 HTTP协议 58
2.3.2下载静态网页 61
2.3.3下载动态网页 65
2.4线程池 73
2.5网络爬虫的遍历与实现 75
2.6网站地图 77
2.7连接池 78
2.8 URL地址查新 79
2.8.1嵌入式数据库 79
2.8.2布隆过滤器 82
2.9抓取RSS 84
2.10解析相对地址 86
2.11网页更新 86
2.12信息过滤 89
2.13垂直行业抓取 94
2.14抓取限制应对方法 94
2.14.1更换IP地址 94
2.14.2抓取需要登录的网页 98
2.14.3抓取ASP.net网页 100
2.15 保存信息 103
2.15.1存入数据库 103
2.15.2存成图像 104
2.16日志 105
2.17本章小结 108
2.18术语表 108
第3章 索引各种格式文档 113
3.1从.HTML文件中提取信息 114
3.1.1识别网页的编码 114
3.1.2正则表达式 116
3.1.3 Html Agility Pack介绍 120
3.1.4 NSoup介绍 124
3.1.5网页正文提取 124
3.1.6结构化信息提取 137
3.1.7查看网页的DOM结构 140
3.1.8网页结构相似度计算 141
3.2从非HTML文件中提取文本 143
3.2.1 TEXT文件 144
3.2.2 PDF文件 144
3.2.3 Offiice文件 146
3.2.4 Rtf文件 147
3.3 OCR 148
3.3.1字形识别 149
3.3.2图像二值化 149
3.4本章小结 153
3.5术语表 154
第4章 自然语言处理 155
4.1统计机器学习 156
4.2协同推荐 157
4.3文档排重 163
4.3.1生成SimHash 164
4.3.2查找SimHash 166
4.3.3用于短文本排重 170
4.4中文关键词提取 170
4.4.1关键词提取的基本方法 171
4.4.2从网页中提取关键词 174
4.5相关搜索 174
4.6拼写检查 175
4.6.1拼写检查的概率模型 176
4.6.2模糊匹配问题 176
4.6.3英文拼写检查 180
4.6.4中文拼写检查 183
4.7文本摘要 184
4.7.1文本摘要的设计 184
4.7.2实现文本摘要技术 185
4.7.3 Lucene.net中的动态摘要 190
4.8文本分类 191
4.8.1自动分类的接口定义 191
4.8.2自动分类的实现 191
4.9自动聚类 197
4.9.1文档相似度 197
4.9.2 K均值聚类方法 201
4.9.3 K均值实现 202
4.10拼音转换 204
4.11句法分析树 204
4.12信息提取 211
4.12.1信息提取的规则及其实现 211
4.12.2提取地域信息 219
4.13本章小结 221
4.14术语表 221
第5章 用C#实现中文分词 223
5.1词 224
5.2文本切分的基本方法 224
5.3地名切分 226
5.3.1地址类型标注 227
5.3.2未登录词识别 227
5.4有限状态机 229
5.5查找词典算法 231
5.6中文分词的原理 232
5.6.1正向最大长度匹配法 232
5.6.2逆向最大长度匹配法 236
5.6.3处理未登录串 240
5.7中文分词的流程与结构 241
5.8切分词图 243
5.8.1保存切分词图 243
5.8.2生成全切分词图 247
5.9概率语言模型的分词方法 250
5.9.1准备数据 251
5.9.2一元模型 252
5.9.3 N元模型 257
5.10最大熵 262
5.11未登录词识别 264
5.12词性标注 264
5.12.1隐马尔科夫模型 266
5.12.2实现词性标注 271
5.13本章小结 275
5.14术语表 276
第6章 Lucene.net原理与应用 277
6.1 Lucene.net快速入门 278
6.1.1索引文档 278
6.1.2搜索文档 280
6.1.3 Lucene.net结构 281
6.2 Lucene.net深入介绍 282
6.2.1索引原理 282
6.2.2分析文本 285
6.2.3遍历索引库 288
6.2.4布尔查询原理 289
6.2.5检索模型 290
6.2.6收集最相关的文档 291
6.3索引中的压缩算法 296
6.3.1变长压缩 296
6.3.2差分编码 298
6.4创建和维护索引库 299
6.4.1设计一个简单的索引库 299
6.4.2创建索引库 300
6.4.3向索引库中添加索引文档 301
6.4.4删除索引库中的索引文档 303
6.4.5更新索引库中的索引文档 304
6.4.6索引的优化与合并 304
6.5查找索引库 305
6.5.1布尔查询 306
6.5.2同时查询多列 307
6.5.3跨度查询 308
6.5.4通配符查询 312
6.5.5过滤 312
6.5.6按指定列排序 313
6.5.7查询大容量索引 318
6.5.8函数查询 320
6.5.9定制相似度 323
6.5.10评价搜索结果 325
6.6中文信息检索 325
6.6.1 Lucene.net中的中文处理 326
6.6.2 Lietu中文分词的使用 326
6.6.3定制Tokenizer 328
6.6.4解析查询串 329
6.6.5实现字词混合索引 333
6.7抓取数据库中的内容 336
6.7.1读取数据 337
6.7.2数据同步 338
6.8与爬虫集成 338
6.9概念搜索 341
6.10本章小结 344
6.11术语表 345
第7章 实现搜索用户界面 347
7.1搜索页面设计 348
7.1.1用于显示搜索结果的ASP.net 348
7.1.2搜索结果条 351
7.1.3搜索结果分页 351
7.1.4设计一个简单的搜索页面 352
7.2实现搜索接口 353
7.2.1 Lucene.net搜索接口 353
7.2.2指定范围搜索 357
7.2.3搜索页面的索引缓存与更新 358
7.3实现关键词高亮显示 361
7.4实现分类统计视图 362
7.4.1搜索结果分类统计与导航 363
7.4.2层次树 366
7.5相关搜索词 368
7.6实现AJax自动完成 369
7.6.1总体结构 370
7.6.2服务器端处理 371
7.6.3浏览器端处理 372
7.7集成其他功能 374
7.7.1拼写检查 374
7.7.2再次查找 374
7.7.3黑名单 375
7.7.4搜索日志 376
7.8本章小结 377
第8章 使用Solr开发网站搜索 379
8.1搜索服务器端 380
8.1.1 Solr的结构 380
8.1.2启动Solr服务器 381
8.1.3开发支持Solr的中文分词 384
8.1.4中文的Solr 385
8.1.5索引数据 388
8.1.6查询功能 389
8.1.7高亮显示 392
8.2 Solr的.NET客户端 393
8.2.1使用Solrnet 393
8.2.2查询 396
8.2.3分类统计 397
8.2.4 ASP.NET中使用Solmet 401
8.2.5删除数据 405
8.2.6从数据库索引数据 405
8.2.7翻页 408
8.2.8实现多分类 411
8.3查询语法 412
8.3.1对空格的支持 413
8.3.2日期加权 413
8.4索引分布 415
8.5本章小结 417
第9章 Elasticsearch开发分布式搜索 419
9.1搜索集群 421
9.2安装 422
9.3 ES的.net客户端 429
9.3.1连接搜索服务器 429
9.3.2创建索引 430
9.3.3插入数据 431
9.4查询 432
9.4.1布尔查询 433
9.4.2嵌套类型和嵌套查询 434
9.4.3查询结果 437
9.4.4过滤器 437
9.5高亮显示 437
9.6分页 442
9.7本章小结 442
第10章 在线客服案例分析 445
10.1使用WebSocket 446
10.2知识库 447
10.3自动问答 449
10.4本章小结 453
参考资源 455