引子 1
第一篇 支持高效的运营 5
第1章 方案设计和技术选型:分类 5
1.1分类的基本概念 6
1.2分类任务的处理流程 7
1.3算法:朴素贝叶斯和K最近邻 8
1.3.1朴素贝叶斯 8
1.3.2 K最近邻 9
1.4分类效果评估 10
1.5相关软件:R和Mahout 12
1.5.1 R简介 12
1.5.2 Mahout简介 13
1.5.3 Hadoop简介 14
1.6案例实践 17
1.6.1实验环境设置 17
1.6.2中文分词 18
1.6.3使用R进行朴素贝叶斯分类 22
1.6.4使用R进行K最近邻分类 37
1.6.5单机环境使用Mahout运行朴素贝叶斯分类 39
1.6.6多机环境使用Mahout运行朴素贝叶斯分类 47
1.7更多的思考 58
第2章 方案设计和技术选型:聚类 60
2.1聚类的基本概念 60
2.2算法:K均值和层次型聚类 61
2.2.1 K均值聚类 61
2.2.2层次型聚类 62
2.3聚类的效果评估 64
2.4案例实践 66
2.4.1使用R进行K均值聚类 66
2.4.2使用Mahout进行K均值聚类 69
第3章 方案设计和技术选型:因变量连续的回归分析 74
3.1线性回归的基本概念 74
3.2案例实践 76
3.2.1实验环境设置 76
3.2.2 R中数据的标准化 78
3.2.3使用R的线性回归分析 81
第二篇 为顾客发现喜欢的商品:基础篇 94
第4章 方案设计和技术选型:搜索 94
4.1搜索引擎的基本概念 94
4.1.1相关性 95
4.1.2及时性 97
4.2搜索引擎的评估 100
4.3为什么不是数据库 103
4.4系统框架 104
4.4.1离线预处理 104
4.4.2在线查询 107
4.5常见的搜索引擎实现 108
4.5.1 Lucene简介 108
4.5.2 Solr简介 113
4.5.3 Elasticsearch简介 120
4.6案例实践 123
4.6.1实验环境设置 123
4.6.2基于Solr的实现 123
4.6.3基于Elasticsearch的实现 154
4.6.4统一的搜索API 175
第三篇 为顾客发现喜欢的商品:高级篇 195
第5章 方案设计和技术选型:NoSQL和搜索的整合 195
5.1问题分析 195
5.2 HBase简介 196
5.3结合HBase和搜索引擎 203
5.4案例实践 204
5.4.1实验环境设置 204
5.4.2 HBase的部署 205
5.4.3 HBase和搜索引擎的集成 211
第6章 方案设计和技术选型:查询分类和搜索的整合 219
6.1问题分析 219
6.2结合分类器和搜索引擎 219
6.3案例实践 225
6.3.1实验环境设置 225
6.3.2构建查询分类器 226
6.3.3定制化的搜索排序 229
6.3.4整合查询分类和定制化排序 236
第7章 方案设计和技术选型:个性化搜索 245
7.1问题分析 245
7.2结合用户画像和搜索引擎 245
7.3案例实践 249
7.3.1用户画像的读取 250
7.3.2个性化搜索引擎 253
7.3.3结果对比 260
第8章 方案设计和技术选型:搜索分片 267
8.1问题分析 267
8.2利用搜索的分片机制 269
8.3案例实践 271
8.3.1 Solr路由的实现 271
8.3.2 Elasticsearch路由的实现 278
第9章 方案设计和技术选型:搜索提示 283
9.1问题分析 283
9.2案例实践:基础方案 284
9.2.1 Solr搜索建议和拼写纠错的实现 284
9.2.2 Elasticsearch搜索建议和拼写纠错的实现 286
9.3改进方案 291
9.4案例实践:改进方案 294
第10章 方案设计和技术选型:推荐 303
10.1推荐系统的基本概念 305
10.2推荐的核心要素 306
10.2.1系统角色 306
10.2.2相似度 307
10.2.3相似度传播框架 307
10.3推荐系统的分类 307
10.4混合模型 311
10.5系统架构 312
10.6 Mahout中的推荐算法 313
10.7电商常见的推荐系统方案 314
10.7.1电商常见的推荐系统方案 314
10.7.2相似度的计算 317
10.7.3协同过滤 319
10.7.4结果的查询 320
10.8案例实践 321
10.8.1基于内容特征的推荐 321
10.8.2基于行为特征的推荐 341
第四篇 获取数据,跟踪效果 369
第11章 方案设计和技术选型:行为跟踪 369
11.1基本概念 370
11.1.1网站的核心框架 370
11.1.2行为数据的类型 371
11.1.3行为数据的模式 372
11.1.4设计理念 374
11.2使用谷歌分析 375
11.3自行设计之Flume、 HDFS和Hive的整合 378
11.3.1数据的收集——Flume简介 378
11.3.2数据的存储——H adoopHDFS回顾 382
11.3.3批量数据分析——Hive简介 383
11.3.4 Flume、 HDFS和Hive的整合方案 386
11.4自行设计之Flume、 Kafka和Storm的整合 386
11.4.1实时性数据分析之Kafka简介 386
11.4.2实时性数据分析之Storm简介 388
11.4.3 Flume、Kafka和Storm的整合方案 390
11.5案例实践 391
11.5.1数据模式的设计 392
11.5.2实验环境设置 392
11.5.3谷歌分析实战 394
11.5.4自主设计实战之Flume、HDFS和Hive的整合 401
11.5.5自主设计实战之Flume、Kafka和Storm的整合 410
11.6更多的思考 424
后记 425