出版社:清华大学出版社
年代:2016
定价:40.0
本书第一版已重印,并已输出到台湾。内容涵盖了基于ElasticSearch构建的Web信息检索与日志挖掘处理的多个重要组成部分,并从多个视角对基于ElasticSearch构建的Web信息检索和数据挖掘技术进行了分析。作者团队对当今大数据与分布式计算、大规模网站构建等给出了自己独到的见地,并将重点放在了实现上。
第1章概述1
1.1Elasticsearch的安装与简单配置3
1.2走进Elasticsearch6
1.2.1相关概念6
1.2.2Elasticsearch API的简单使用方式8
1.2.3部分插件简介9
1.2.4Elasticsearch 基本架构11
1.3Elasticsearch索引及其构建12
1.3.1概述12
1.3.2借助Head工具构建索引12
1.3.3Mapping简述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管理索引文件362.4.1打开、关闭、检测、删除索引文件36
2.4.2清空索引缓存36
[1][2][1][3]2.4.3刷新索引数据37
2.4.4优化索引数据37
2.4.5flush操作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.3term查询、terms查询、wildcard通配符查询58
3.3.4match、match_all、match_phrase查询59
3.3.5query_string查询60
3.3.6prefix、range查询61
3.3.7more_like_this、fuzzy_like_this查询63
3.3.8跨字段检索64
3.4filter概述65
3.5常用filter及其应用67
3.5.1and filter及or filter67
3.5.2bool filter68
3.5.3exists filter和missing filter68
3.5.4type filter69
3.5.5match_all filter69
3.5.6not filter70
3.5.7query filter70
3.6复合查询71
3.7结果排序74
3.8实例75
3.9扩展知识与阅读79
3.10本章小结79
第4章信息统计分析与搜索提示80
4.1facets概述81
4.2各种不同的facets统计82
4.2.1terms facets: 指定字段的分布情况统计82
4.2.2range facets: 在某个范围的分布情况统计86
4.2.3histogram facets89
4.2.4date_histogram facets92
4.2.5statistical facets94
4.2.6terms_stats facets96
4.3aggregations97
4.3.1概述97
4.3.2最值、求和、均值统计98
4.3.3stats aggregation及extended stats aggregation101
4.3.4terms aggregations103
4.3.5range aggregations108
4.3.6date_range aggregations111
4.3.7histogram aggregations111
4.3.8date_histogram aggregations114
4.3.9filter aggregations117
4.3.10missing aggregations119
4.4搜索提示121
4.5实例122
4.6扩展知识与阅读127
4.7本章小结127
第5章Elasticsearch部分功能的Java客户端实现129
5.1Elasticsearch节点实例化129
5.1.1通过Maven添加对Elasticsearch依赖130
5.1.2初始化Elasticsearch Client132
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.2multiSearch143
5.4.3Query DSL概述144
5.4.4matchQuery145
5.4.5matchAllQuery146
5.4.6multiMatchQuery146
5.4.7boolQuery147
5.4.8termQuery148
5.4.9wildcardQuery149
5.4.10queryString149
5.4.11moreLikeThis150
5.4.12filter概述151
5.4.13termFilter152
5.4.14existsFilter152
5.4.15matchAllFilter153
5.4.16queryFilter153
5.4.17rangeFilter154
5.4.18typeFilter155
5.4.19过滤器间的组合: boolFilter、notFilter、orFilter、andFilter155
5.5统计分析157
5.5.1facets157
5.5.2aggregations158
5.6对检索结果的进一步处理160
5.6.1控制每页的显示数量及显示排序依据160
5.6.2基于Scroll方法的检索结果及其分页161
5.6.3高亮显示检索词163
5.7实例164
5.7.1连接Elasticsearch164
5.7.2信息采集与索引构建165
5.7.3搜索模块的实现167
5.7.4推荐模块的实现169
5.8扩展知识与阅读170
5.9本章小结170
第6章Elasticsearch配置与集群管理171
6.1Elasticsearch部分基本配置及其说明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.2input: 处理输入的日志数据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.3codecs: 格式化日志数据199
7.3.1json格式199
7.3.2rubydebug格式201
7.3.3plain格式202
7.4基于filter的日志处理与转换202
7.4.1json filter203
7.4.2grok filter204
7.4.3kv filter206
7.5output: 处理输出的日志数据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安装Kibana223
8.2Kibana概述224
8.2.1在仪表盘上添加新行226
8.2.2在行中添加新面板226
8.2.3设置Query和Filtering228
8.3常用面板类型230
8.3.1histogram230
8.3.2table233
8.3.3map和bettermap234
8.3.4terms234
8.3.5text236
8.3.6sparklines237
8.3.7trends238
8.4网站性能监控可视化应用的设计与实现238
8.4.1概述239
8.4.2Page View240
8.4.3响应/请求时间241
8.4.4流量走势与统计242
8.4.5状态码监控245
8.4.6UA行248
8.5Kibana V4简介249
8.5.1新建视图250
8.5.2建立Dashboard252
8.5.3配置252
8.6扩展知识与阅读253
8.7本章小结254
第9章网络信息检索与分析实践255
9.1信息采集255
9.2基于Python的信息检索及Web端设计260
9.2.1安装 Python及Django260
9.2.2安装 Elasticsearch的Python插件261
9.2.3Web页面设计262
9.3基于Logstash的日志处理265
9.3.1安装和配置Nginx266
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
大数据的搜索与挖掘,在当今的“互联网+”时代是很有必要的。本书提出的分布式大数据搜索与日志挖掘及可视化方案是基于ELK Stack而提出的,它能有效应对海量大数据所带来的分布式存储与处理、全文检索、日志挖掘、可视化等问题。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析。据国际权威的数据库产品评测机构DBEngines的统计,在2016年1月,Elasticsearch已超过Solr等,成为排名第一的搜索引擎类应用;Logstash能有效处理来源于各种数据源的日志信息;Kibana能得出可视化分析结果。了解基于ELK Stack的大数据搜索与日志挖掘及可视化方案,掌握Elasticsearch、Logstash、Kibana的基本使用方法和技巧,很有必要。全书以模块化的方式进行组织。和第一版相比,本书力求反映ELK Stack的最新成果,内容新颖、强调实践。本书也可为高等学校相关专业(如计算机科学与技术、软件工程、物联网、信息管理与信息系统)学生的学习和科研工作提供帮助,同时对于从事大数据搜索与挖掘、日志分析、信息可视化技术的工程技术人员和希望了解网络信息检索技术的人员也具有较高的参考价值和工程应用价值。
大数据时代,建立一个网站或应用程序,搜索功能是必备的。本书将Elasticsearch、Logstash、Kibana联袂奉献给广大读者,可使读者尽快熟悉ELK架构,并构建自己的Web应用程序,完成分布式信息检索与分析工作。本书适合需要了解和开发类似产品的人员阅读。