Google 神话

1995 年,两个年轻的学生 Larry Page 和 Sergey Brin 在一点上达成了共识——从大量数
据检索信息是计算系统面临的最大的挑战之一。1996 年,他们创建了一个叫做 BackRub 的
搜索引擎。这个搜索引擎后来叫做 Google。1998 年,Page 和 Brin 在 Larry 的大学宿舍创立
Google 公司的第一个数据中心。2000 年,Google 开始成为全球最大的搜索引擎一直到现在。
2005 年,Google 股票市值超过 1000 亿美元。公司首次登陆华尔街时,“让世界更美好”便
是他们阐明的目标之一。
体验搜索引擎
你想起什么大脑没有记住的知识了吗?用搜索引擎吧。它往往不会让你失望。
事实上这正是 Google 的创始人设想的。“如果你想搜就能搜,几乎像拥有第二个大脑,
那就妙极了,”他说。就在 Brin (一直是两人中站在前台的那个)说在兴头上的时候,Page 在
不声不响地稍稍露面之后,便带着“共谋者般的微笑”溜出了房间。
但是不要感到 Google 已经完成所有的事情,没有什么事情留下来给我们做了。
下面是这本教程目录:
自己动手写搜索引擎........................................................................................1
第 1 章 了解搜索引擎.......................................................................................1
1.1Google神话.........................................................................1
1.2 体验搜索引擎........................................................................1
1.3 你也可以做搜索引擎.............................................................4
1.4 本章小结............................................................................4
第 2 章 遍历搜索引擎技术.................................................................................5
2.1 30 分钟实现的搜索引擎........................................................5
2.1.1 准备工作环境(10 分钟)................................................5 2.1.2 编写代码(15 分钟)......................................................6 2.1.3 发布运行(5 分钟)......................................................9
2.2 搜索引擎基本技术.................................................................14
2.2.1 网络蜘蛛........................................................................14 2.2.2 全文索引结构..................................................................14 2.2.3 Lucene 全文检索引擎.....................................................15 2.2.4 Nutch 网络搜索软件.......................................................15 2.2.5 用户界面....................................................................17
2.3 商业搜索引擎技术介绍..........................................................17
2.3.1 通用搜索....................................................................17 2.3.2 垂直搜索........................................................................18 2.3.3 站内搜索........................................................................19 2.3.4 桌面搜索........................................................................21
2.4 本章小结................................................................................21
第 3 章 获得海量数据.......................................................................................22
3.1 自己的网络蜘蛛......................................................................22
3.1.1 BerkeleyDB 介绍............................................................27 3.1.2 抓取网页............................................................................28 3.1.3 MP3 抓取......................................................................29 3.1.4 RSS 抓取.........................................................................30 3.1.5 图片抓取...........................................................................33 3.1.6 垂直行业抓取..................................................................34
3.2 抓取数据库中的内容...............................................................36
3.2.1 建立数据视图...................................................................36 3.2.2 JDBC 数据库连接.............................................................36 3.2.3 增量抓取.........................................................................38
3.3 抓取本地硬盘上的文件............................................................38
3.3.1 目录遍历...........................................................................38
3.4 本章小结............................................................................40
第 4 章 提取文档中的文本内容..........................................................................41
4.1 从 HTML 文件中提取文本 .....................................................41
4.1.1 HtmlParser 介绍..............................................................49 4.1.2 结构化信息提取..........................................................52 4.1.3 网页去噪............................................................................58 4.1.4 网页结构相似度计算.............................................................61 4.1.5 正文提取的工具 FireBug......................................................62 4.1.6 正文提取的工具 NekoHTML...............................................64 4.1.7 正文提取............................................................................66
4.2 从非 HTML 文件中提取文本 ....................................................77
4.2.1 TEXT 文件.........................................................................77 4.2.2 PDF 文件 ............................................................................77 4.2.3 Word 文件..........................................................................85 4.2.4 Rtf 文件...........................................................................86 4.2.5 Excel 文件....................................................................87 4.2.6 PowerPoint 文件.............................................................88
4.3 流媒体内容提取......................................................................89
4.3.1 音频流内容提取.................................................................89 4.3.2 视频流内容提取..................................................................91
4.4 抓取限制应对方法....................................................................93
4.5 本章小结..................................................................................94
第 5 章 自然语言处理........................................................................................95
5.1 中文分词处理............................................................................95
5.1.1 Lucene 中的中文分词.......................................................95 5.1.2 Lietu 中文分词的使用 .......................................................96 5.1.3 中文分词的原理...............................................................96 5.1.4 查找词典算法...................................................................99 5.1.5 最大概率分词方法........................................................102 5.1.6 新词发现..........................................................................105 5.1.7 隐马尔可夫模型..............................................................106
5.2 语法解析树............................................................................108
5.3 文档排重................................................................................108
5.4 中文关键词提取......................................................................110
5.4.1 关键词提取的基本方法.................................................110 5.4.2 关键词提取的设计........................................................ 111 5.4.3 从网页提取关键词......................................................... 111
5.5 相关搜索............................................................................... 111
5.6 拼写检查........................................................................114
5.6.1 英文拼写检查...................................................................114 5.6.2 中文拼写检查...................................................................115
5.7 自动摘要.................................................................................120
5.7.1 自动摘要技术...................................................................120 5.7.2 自动摘要的设计................................................................120 5.7.3 Lucene 中的动态摘要.................................................128
5.8 自动分类................................................................................128
5.8.1 Classifier4J......................................................................129 5.8.2 自动分类的接口定义..........................................................131 5.8.3 自动分类的 SVM 方法实现.................................................132 5.8.4 多级分类............................................................................132
5.9 自动聚类...........................................................................134
5.9.1 聚类的定义....................................................................134 5.9.2 K 均值聚类方法........................................................135 5.9.3 K 均值实现......................................................................135
5.10 拼音转换................................................................................142
5.11 语义搜索................................................................................143
5.12 跨语言搜索............................................................................147
5.13 本章小结................................................................................148
第 6 章 创建索引库.......................................................................................149
6.1 设计索引库结构.....................................................................150
6.1.1 理解 Lucene 的索引库结构.............................................150 6.1.2 设计一个简单的索引库....................................................152
6.2 创建和维护索引库...................................................................153
6.2.1 创建索引库.....................................................................153 6.2.2 向索引库中添加索引文档.................................................153 6.2.3 删除索引库中的索引文档................................................155 6.2.4 更新索引库中的索引文档................................................155 6.2.5 索引的合并......................................................................155 6.2.6 索引的定时更新......................................................156 6.2.7 索引的备份和恢复......................................................157 6.2.8 修复索引............................................................158
6.3 读写并发控制...................................................................158
6.4 优化使用 Lucene...............................................................159
6.4.1 索引优化.............................................................159 6.4.2 查询优化....................................................................161 6.4.3 实现时间加权排序.......................................................166 6.4.4 实现字词混合索引....................................................167 6.4.5 定制 Similarity........................................................173 6.4.6 定制 Tokenizer........................................................174
6.5 查询大容量索引...................................................................176
6.6 本章小结.............................................................................177
第 7 章 用户界面设计与实现...........................................................................177
7.1 Lucene 搜索接口(search 代码)............................................178
7.2 搜索页面设计............................................................179
7.2.1 用于显示搜索结果的 taglib........................................179 7.2.2 用于搜索结果分页的 taglib..........................................181 7.2.3 设计一个简单的搜索页面...............................................183
7.3 实现搜索接口.................................................................186
7.3.1 布尔搜索...................................................................186 7.3.2 指定范围搜索.......................................................186 7.3.3 设置过滤条件.....................................错误!未定义书签 7.3.4 搜索结果排序.........................................................191 7.3.5 搜索页面的索引缓存与更新......................................192
7.4 实现关键词高亮显示...................................................194
7.5 实现多维视图........................................................196
7.6 实现相似文档搜索.............................................................202
7.7 实现 AJAX 自动完成 ..........................................................205
7.7.1 总体结构..........................................................206 7.7.2 服务器端处理.......................................................206 7.7.3 浏览器端处理........................................................208 7.7.4 服务器端改进........................................................209 7.7.5 部署总结...................................................................219
7.8 jQuery 实现的自动完成....................................................219
7.9 集成其他功能................................................................225
7.9.1 拼写检查.................................................................225 7.9.2 分类统计...........................................................226 7.9.3 相关搜索.................................................226 7.9.4 再次查找................................................................229 7.9.5 搜索日志.................................................................229
7.10 搜索日志分析...............................................................231
7.11 本章小结.........................................................................234
第 8 章 其他高级主题....................................................................................238
8.1 使用 Solr 实现分布式搜索..................................................235
8.1.1 Solr 服务器端的配置与中文支持.............................235 8.1.2 把数据放进 Solr.......................................................240 8.1.3 删除数据..................................................................243 8.1.4 客户端搜索界面........................................................244 8.1.5 Solr 索引库的查找......................................................245 8.1.6 索引分发................................................................249 8.1.7 Solr 搜索优化..............................................................249 8.1.8 Solr 中字词混合索引..................................................252 8.1.9 相关检索...................................................................256 8.1.10 搜索结果去重...........................................................258 8.1.11 分布式搜索...............................................................263 8.1.12 SolrJ 查询分析器........................................................267 8.1.13 扩展 SolrJ ...................................................................279 8.1.14 扩展 Solr..................................................................280 8.1.15 Solr 的.net 客户端...................................................288 8.1.16 Solr 的 php 客户端..............................................289
8.2 图片搜索.........................................................................294
8.2.1 图像的 OCR 识别.......................................................295
8.3 竞价排名...........................................................................299
8.4 Web 图分析 .....................................................................300
8.5 使用并行程序分析数据...................................................305
8.6 RSS 搜索 .............................................................................306
8.7 本章小结.........................................................................307
参考资源.........................................................................308
书籍....................................................................................308 网址........................................................................................308
本书中的章节和代码对照表309
PDF教程,有兴趣的学习的点击下方左下角“阅读原文“下载
夜雨聆风