第1章 概述 1
1.1 Elasticsearch的安装与简单配置 3
1.2 走进Elasticsearch 6
1.2.1 相关概念 6
1.2.2 Elasticsearch API的简单使用方式 8
1.2.3 部分插件简介 9
1.2.4 Elasticsearch基本架构 11
1.3 Elasticsearch索引及其构建 12
1.3.1 概述 12
1.3.2 借助Head工具构建索引 12
1.3.3 Mapping简述 14
1.4 信息检索及其构建 15
1.5 中文分词插件 16
1.6 实例 20
1.7 扩展知识与阅读 25
1.8 本章小结 25
第2章 文档索引及管理 26
2.1 文档索引概述 26
2.2 建立索引 28
2.3 通过映像Mapping配置索引 32
2.3.1 在索引中使用映像 33
2.3.2 管理/配置映像 33
2.3.3 获取映像信息 34
2.3.4 删除映像 35
2.4 管理索引文件 36
2.4.1 打开、关闭、检测、删除索引文件 36
2.4.2 清空索引缓存 36
2.4.3 刷新索引数据 37
2.4.4 优化索引数据 37
2.4.5 flush操作 37
2.5 设置中文分词器 38
2.6 对文档的其他操作 39
2.6.1 获取指定的文档信息 39
2.6.2 删除文档中的信息 41
2.6.3 数据更新 41
2.6.4 基于POST方式批量获取文档 44
2.6.5 删除部分文档 46
2.7 实例 46
2.8 扩展知识与阅读 49
2.9 本章小结 50
第3章 信息检索与结果过滤 51
3.1 实验数据集描述 52
3.2 简单检索 53
3.3 基本检索 55
3.3.1 设置不同字段的排序权重 55
3.3.2 指定返回的字段子集 55
3.3.3 term查询、terms查询、wildcard通配符查询 58
3.3.4 match、match_all、match_phrase查询 59
3.3.5 query_string查询 60
3.3.6 prefix、range查询 61
3.3.7 more_like_this、fuzzy_like_this查询 63
3.3.8 跨字段检索 64
3.4 filter概述 65
3.5 常用filter及其应用 67
3.5.1 and filter及or filter 67
3.5.2 bool filter 68
3.5.3 exists filter和missing filter 68
3.5.4 type filter 69
3.5.5 match all filter 69
3.5.6 not filter 70
3.5.7 query filter 70
3.6 复合查询 71
3.7 结果排序 74
3.8 实例 75
3.9 扩展知识与阅读 79
3.1 0本章小结 79
第4章 信息统计分析与搜索提示 80
4.1 facets概述 81
4.2 各种不同的facets统计 82
4.2.1 terms facets:指定字段的分布情况统计 82
4.2.2 range facets:在某个范围的分布情况统计 86
4.2.3 histogram facets 89
4.2.4 date_histogram facets 92
4.2.5 statistical facets 94
4.2.6 terms_stats facets 96
4.3 aggregations 97
4.3.1 概述 97
4.3.2 最值、求和、均值统计 98
4.3.3 stats aggregation及extended stats aggregation 101
4.3.4 terms aggregations 103
4.3.5 range aggregations 108
4.3.6 date_range aggregations 111
4.3.7 histogram aggregations 111
4.3.8 date_histogram aggregations 114
4.3.9 filter aggregations 117
4.3.10 missing aggregations 119
4.4 搜索提示 121
4.5 实例 122
4.6 扩展知识与阅读 127
4.7 本章小结 127
第5章 Elasticsearch部分功能的Java客户端实现 129
5.1 Elasticsearch节点实例化 129
5.1.1 通过Maven添加对Elasticsearch依赖 130
5.1.2 初始化Elasticsearch Client 132
5.2 索引数据 133
5.2.1 准备json数据 133
5.2.2 索引json数据 135
5.3 对索引文档的操作 137
5.3.1 获取索引文档 137
5.3.2 删除索引文档 138
5.3.3 更新索引文档 139
5.3.4 批量操作索引文件 140
5.3.5 简单的统计操作 141
5.4 信息检索 142
5.4.1 概述 142
5.4.2 multiSearch 143
5.4.3 Query DSL概述 144
5.4.4 matchQuery 145
5.4.5 matchAllQuery 146
5.4.6 multiMatchQuery 146
5.4.7 boolQuery 147
5.4.8 termQuery 148
5.4.9 wildcardQuery 149
5.4.10 queryString 149
5.4.11 moreLikeThis 150
5.4.12 filter概述 151
5.4.13 termFilter 152
5.4.14 existsFilter 152
5.4.15 matchAllFilter 153
5.4.16 queryFilter 153
5.4.17 rangeFilter 154
5.4.18 typeFilter 155
5.4.19 过滤器间的组合:boolFilter、notFilter、orFilter、andFilter 155
5.5 统计分析 157
5.5.1 facets 157
5.5.2 aggregations 158
5.6 对检索结果的进一步处理 160
5.6.1 控制每页的显示数量及显示排序依据 160
5.6.2 基于Scroll方法的检索结果及其分页 161
5.6.3 高亮显示检索词 163
5.7 实例 164
5.7.1 连接Elasticsearch 164
5.7.2 信息采集与索引构建 165
5.7.3 搜索模块的实现 167
5.7.4 推荐模块的实现 169
5.8 扩展知识与阅读 170
5.9 本章小结 170
第6章 Elasticsearch配置与集群管理 171
6.1 Elasticsearch部分基本配置及其说明 171
6.2 提高索引和查询效率的策略 174
6.3 监控集群状态 176
6.4 控制索引分片与副本分配 178
6.5 集群管理 180
6.6 扩展知识与阅读 181
6.7 本章小结 181
第7章 基于Logstash的日志处理 182
7.1 概述 183
7.2 input:处理输入的日志数据 185
7.2.1 处理基于file方式输入的日志信息 186
7.2.2 处理基于generator产生的日志信息 187
7.2.3 处理基于log4j的日志信息 188
7.2.4 处理基于redis的日志信息 189
7.2.5 处理基于stdin方式输入的信息 193
7.2.6 处理基于TCP传输的日志数据 193
7.2.7 处理基于UDP传输的日志数据 197
7.3 codecs:格式化日志数据 199
7.3.1 json格式 199
7.3.2 rubydebug格式 201
7.3.3 plain格式 202
7.4 基于filter的日志处理与转换 202
7.4.1 json filter 203
7.4.2 grok filter 204
7.4.3 kv filter 206
7.5 output:处理输出的日志数据 208
7.5.1 将处理后的日志输出到Elasticsearch中 208
7.5.2 将处理后的日志输出至文件中 210
7.5.3 将处理后的部分日志输出到csv格式的文件中 211
7.5.4 将处理后的日志输出到redis中 212
7.5.5 将处理后的部分日志通过UDP协议输出 214
7.5.6 将处理后的部分日志通过TCP协议输出 216
7.5.7 将收集到的日志信息传输到自定义的HTTP接口中 220
7.6 扩展知识与阅读 220
7.7 本章小结 221
第8章 基于Kibana的数据分析可视化 222
8.1 安装Kibana 223
8.2 Kibana概述 224
8.2.1 在仪表盘上添加新行 226
8.2.2 在行中添加新面板 226
8.2.3 设置Query和Filtering 228
8.3 常用面板类型 230
8.3.1 histogram 230
8.3.2 table 233
8.3.3 map和bettermap 234
8.3.4 terms 234
8.3.5 text 236
8.3.6 sparklines 237
8.3.7 trends 238
8.4 网站性能监控可视化应用的设计与实现 238
8.4.1 概述 239
8.4.2 Page View 240
8.4.3 响应/请求时间 241
8.4.4 流量走势与统计 242
8.4.5 状态码监控 245
8.4.6 UA行 248
8.5 Kibana V4简介 249
8.5.1 新建视图 250
8.5.2 建立Dashboard 252
8.5.3 配置 252
8.6 扩展知识与阅读 253
8.7 本章小结 254
第9章 网络信息检索与分析实践 255
9.1 信息采集 255
9.2 基于Python的信息检索及Web端设计 260
9.2.1 安装Python及Django 260
9.2.2 安装Elasticsearch的Python插件 261
9.2.3 Web页面设计 262
9.3 基于Logstash的日志处理 265
9.3.1 安装和配置Nginx 266
9.3.2 设计面向日志文件的模式 266
9.3.3 在Logstash中进行相关配置 267
9.4 基于Kibana的日志分析结果可视化设计与实现 268
9.4.1 图表1:状态码走势分析 269
9.4.2 图表2:查询词分析 271
9.4.3 图表3:分析各状态码随时间的变迁情况 272
9.4.4 集成上述图表 273
9.5 扩展知识与阅读 274
9.6 本章小结 274
参考文献 275