解密搜索引擎技术实战:Lucene & Java精华版(第2版) 内容简介
本书是猎兔搜索开发团队的软件研发和教学实践的经验汇总。本书总结搜索引擎相关理论与实际解决方案,并给出了java实现,其中利用了流行的开源项目lucene和solr,而且还包括原创的实现。
本书主要包括总体介绍部分、爬虫部分、自然语言处理部分、全文检索部分以及相关案例分析。爬虫部分介绍了网页遍历方法和如何实现增量抓取,并介绍了从网页等各种格式的文档中提取主要内容的方法。自然语言处理部分从统计机器学习的原理出发,包括了中文分词与词性标注的理论与实现及在搜索引擎中的应用等细节,同时对文档排重、文本分类、自动聚类、句法分析树、拼写检查等自然语言处理领域的经典问题进行了深入浅出的介绍,并总结了实现方法。在全文检索部分,结合lucene介绍了搜索引擎的原理与进展。用简单的例子介绍了lucene的*新应用方法,包括完整的搜索实现过程:从完成索引到搜索用户界面的实现。此外还进一步介绍了实现准实时搜索的方法,展示了solr的用法以及实现分布式搜索服务集群的方法。*后介绍了在地理信息系统领域和户外活动搜索领域的应用。
解密搜索引擎技术实战:Lucene & Java精华版(第2版) 本书特色
1、《解密搜索引擎技术实战:lucene & java精华版(第2版)》是畅销书的升级版,从实用的角度出发,全面介绍了搜索引擎相关技术。
2、作者罗刚对搜索引擎技术非常熟悉,本书是其软件研发和教学实践的经验汇总。
3、《解密搜索引擎技术实战:lucene & java精华版(第2版)》非常适合想全面了解搜索引擎技术及实现方法的读者阅读,亦可作为相关专业学生的参考用书。
解密搜索引擎技术实战:Lucene & Java精华版(第2版) 目录
第1章搜索引擎总体结构 1
1.1搜索引擎基本模块 1
1.2开发环境 2
1.3搜索引擎工作原理 3
1.3.1网络爬虫 4
1.3.2全文索引结构与lucene实现 4
1.3.3搜索用户界面 7
1.3.4计算框架 8
1.3.5文本挖掘 9
1.4本章小结 9
第2章网络爬虫的原理与应用 11
2.1爬虫的基本原理 11
2.2爬虫架构 14
2.2.1基本架构 14
2.2.2分布式爬虫架构 16
2.2.3垂直爬虫架构 17
2.3抓取网页 18
2.3.1下载网页的基本方法 19
2.3.2网页更新 23
2.3.3抓取限制应对方法 25
2.3.4url地址提取 28
2.3.5抓取javascript动态页面 28
2.3.6抓取即时信息 31
2.3.7抓取暗网 32
2.3.8信息过滤 33
2.3.9*好优先遍历 39
2.4存储url地址 40
2.4.1berkeleydb 40
2.4.2布隆过滤器 42
2.5并行抓取 45
2.5.1多线程爬虫 46
2.5.2垂直搜索的多线程爬虫 48
2.5.3异步i/o 49
2.6rss抓取 53
2.7抓取ftp 55
2.8下载图片 55
2.9图像的ocr识别 56
2.9.1图像二值化 57
2.9.2切分图像 60
2.9.3svm分类 63
2.10web结构挖掘 67
2.10.1存储web图 67
2.10.2pagerank算法 71
2.10.3hits算法 77
2.10.4主题相关的pagerank 81
2.11部署爬虫 83
2.12本章小结 83
第3章索引内容提取 86
3.1从html文件中提取文本 86
3.1.1识别网页的编码 86
3.1.2网页编码转换为字符串编码 89
3.1.3使用正则表达式提取数据 89
3.1.4结构化信息提取 91
3.1.5网页的dom结构 94
3.1.6使用nekohtml提取信息 95
3.1.7使用jsoup提取信息 101
3.1.8网页去噪 105
3.1.9网页结构相似度计算 110
3.1.10提取标题 112
3.1.11提取日期 113
3.2从非html文件中提取文本 113
3.2.1提取标题的一般方法 114
3.2.2pdf文件 118
3.2.3word文件 122
3.2.4rtf文件 123
3.2.5excel文件 134
3.2.6powerpoint文件 137
3.3流媒体内容提取 137
3.3.1音频流内容提取 138
3.3.2视频流内容提取 140
3.4存储提取内容 142
3.5本章小结 143
第4章中文分词的原理与实现 144
4.1lucene中的中文分词 145
4.1.1lucene切分原理 145
4.1.2lucene中的analyzer 146
4.1.3自己写analyzer 148
4.1.4lietu中文分词 150
4.2查找词典算法 151
4.2.1标准trie树 151
4.2.2三叉trie树 154
4.3中文分词的原理 159
4.4中文分词流程与结构 162
4.5形成切分词图 164
4.6概率语言模型的分词方法 170
4.7n元分词方法 174
4.8新词发现 178
4.9未登录词识别 180
4.10词性标注 181
4.10.1隐马尔可夫模型 184
4.10.2基于转换的错误学习方法 192
4.11平滑算法 194
4.12本章小结 198
第5章让搜索引擎理解自然语言 199
5.1停用词表 200
5.2句法分析树 201
5.3相似度计算 205
5.4文档排重 209
5.4.1语义指纹 210
5.4.2simhash 213
5.4.3分布式文档排重 223
5.5中文关键词提取 223
5.5.1关键词提取的基本方法 223
5.5.2hits算法应用于关键词提取 226
5.5.3从网页中提取关键词 228
5.6相关搜索词 228
5.6.1挖掘相关搜索词 229
5.6.2使用多线程计算相关搜索词 231
5.7信息提取 232
5.8拼写检查与建议 237
5.8.1模糊匹配问题 240
5.8.2英文拼写检查 242
5.8.3中文拼写检查 244
5.9自动摘要 247
5.9.1自动摘要技术 247
5.9.2自动摘要的设计 247
5.9.3lucene中的动态摘要 254
5.10文本分类 257
5.10.1特征提取 259
5.10.2中心向量法 262
5.10.3朴素贝叶斯 265
5.10.4支持向量机 272
5.10.5规则方法 279
5.10.6网页分类 282
5.11拼音转换 283
5.12概念搜索 284
5.13多语言搜索 292
5.14跨语言搜索 293
5.15情感识别 295
5.15.1确定词语的褒贬倾向 298
5.15.2实现情感识别 300
5.16本章小结 301
第6章lucene原理与应用 303
6.1lucene深入介绍 304
6.1.1常用查询对象 304
6.1.2查询语法与解析 304
6.1.3查询原理 308
6.1.4分析文本 309
6.1.5使用filter筛选搜索结果 316
6.1.6遍历索引库 317
6.1.7索引数值列 318
6.2lucene中的压缩算法 322
6.2.1变长压缩 322
6.2.2pfordelta 324
6.2.3前缀压缩 326
6.2.4差分编码 328
6.3创建和维护索引库 330
6.3.1创建索引库 330
6.3.2向索引库中添加索引文档 331
6.3.3删除索引库中的索引文档 334
6.3.4更新索引库中的索引文档 334
6.3.5索引的合并 335
6.3.6索引文件格式 335
6.4查找索引库 338
6.4.1查询过程 338
6.4.2常用查询 342
6.4.3基本词查询 343
6.4.4模糊匹配 343
6.4.5布尔查询 345
6.4.6短语查询 347
6.4.7跨度查询 349
6.4.8fieldscorequery 353
6.5读写并发控制 356
6.6检索模型 356
6.6.1向量空间模型 357
6.6.2bm25概率模型 361
6.6.3统计语言模型 367
6.7本章小结 369
第7章搜索引擎用户界面 370
7.1实现lucene搜索 370
7.2实现搜索接口 372
7.2.1编码识别 372
7.2.2布尔搜索 375
7.2.3指定范围搜索 375
7.2.4搜索结果排序 376
7.2.5搜索页面的索引缓存与更新 377
7.3历史搜索词记录 380
7.4实现关键词高亮显示 381
7.5实现分类统计视图 383
7.6实现ajax搜索联想词 388
7.6.1估计查询词的文档频率 388
7.6.2搜索联想词总体结构 389
7.6.3服务器端处理 389
7.6.4浏览器端处理 390
7.6.5服务器端改进 395
7.6.6拼音提示 398
7.6.7部署总结 399
7.7集成其他功能 399
7.7.1拼写检查 399
7.7.2分类统计 400
7.7.3相关搜索 402
7.7.4再次查找 405
7.7.5搜索日志 405
7.8搜索日志分析 407
7.8.1日志信息过滤 407
7.8.2信息统计 409
7.8.3挖掘日志信息 411
7.9本章小结 412
第8章使用solr实现企业搜索 413
8.1solr简介 413
8.2solr基本用法 414
8.2.1solr服务器端的配置与中文支持 415
8.2.2把数据放进solr 421
8.2.3删除数据 423
8.2.4solr客户端与搜索界面 424
8.2.5spring实现的搜索界面 425
8.2.6solr索引库的查找 436
8.2.7索引分发 440
8.2.8solr搜索优化 442
8.3solr扩展与定制 445
8.3.1solr中字词混合索引 445
8.3.2相关检索 447
8.3.3搜索结果去重 449
8.3.4定制输入输出 453
8.3.5分布式搜索 457
8.3.6solrj查询分析器 458
8.3.7扩展solrj 466
8.3.8扩展solr 467
8.3.9查询web图 471
8.4本章小结 473
第9章地理信息系统案例分析 474
9.1新闻提取 474
9.2poi信息提取 479
9.2.1提取主体 484
9.2.2提取地区 485
9.2.3指代消解 487
9.3机器翻译 489
9.3.1词对齐 490
9.3.2翻译公司名 491
9.3.3调整语序 493
9.4本章小结 494
第10章户外活动搜索案例分析 495
10.1爬虫 495
10.2信息提取 497
10.3活动分类 500
10.4搜索 501
10.5本章小结 501
参考资料 502
解密搜索引擎技术实战:Lucene & Java精华版(第2版) 作者简介
罗刚,猎兔搜索创始人,带领猎兔搜索技术开发团队先后开发出猎兔中文分词系统、猎兔信息提取系统、猎兔智能垂直搜索系统以及网络信息监测系统等,实现互联网信息的采集、过滤、搜索和实时监测。曾编写出版《自己动手写搜索引擎》、《自己动手写网络爬虫》、《使用C#开发搜索引擎》,获得广泛好评。在北京和上海等地均有猎兔培训的学员。