新書推薦:
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
当你沉默时(悬疑推理 反PUA 反家暴 女性独立小说,揭秘情感PUA的真相,女性自我救赎的文学典范)
》
售價:NT$
255.0
《
不止江湖
》
售價:NT$
449.0
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:NT$
704.0
《
双城史
》
售價:NT$
505.0
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:NT$
254.0
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:NT$
230.0
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:NT$
403.0
|
編輯推薦: |
如果你是软件工程师、大数据基础架构工程师或Elasticsearch开发人员,你会发现本书对你很有用。本书还将帮助在电子商务和快速消费品(FMCG)行业工作的数据专业人员,他们可以使用Elastic进行指标评估和搜索分析,以获取更深刻的见解,从而做出更好的业务决策。
如果你已经拥有使用Elasticsearch的经验,那么这将有助于你充分利用本书。
|
內容簡介: |
本书详细阐述了与Elasticsearch 7.0相关的基本解决方案,主要包括管理映射、搜索功能详解、文本和数字查询、关系和地理查询、聚合、Elasticsearch中的脚本、管理集群、备份和还原数据、用户界面、使用采集模块、Java集成、Scala集成、Python集成、插件开发、大数据集成等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
|
目錄:
|
第1章 入门 1
1.1 技术要求 1
1.2 下载并安装Elasticsearch 1
1.3 设置网络 6
1.4 设置节点 9
1.5 设置Linux系统 11
1.6 设置不同的节点类型 13
1.7 设置协调器节点 14
1.8 设置采集节点 15
1.9 在Elasticsearch中安装插件 18
1.10 删除插件 21
1.11 更改日志记录设置 22
1.12 通过Docker设置节点 23
1.13 在Elasticsearch Cloud Enterprise上部署 26
第2章 管理映射 35
2.1 使用显式映射创建方法 36
2.2 映射基本类型 39
2.3 映射数组 43
2.4 映射对象 44
2.5 映射文档 46
2.6 在文档映射中使用动态模板 48
2.7 管理嵌套对象 50
2.8 使用连接字段管理子文档 52
2.9 添加具有多个映射的字段 56
2.10 映射GeoPoint字段 58
2.11 映射GeoShape字段 60
2.12 映射IP字段 61
2.13 映射别名字段 62
2.14 映射Percolator字段 64
2.15 映射特征和特征向量字段 67
2.16 将元数据添加到映射 69
2.17 指定不同的分析器 70
2.18 映射完成字段 72
第3章 基本操作 75
3.1 创建索引 76
3.2 删除索引 79
3.3 打开或关闭索引 81
3.4 将映射放入索引 83
3.5 获取映射 85
3.6 重建索引 87
3.7 刷新索引 90
3.8 冲洗索引 92
3.9 强制合并索引 93
3.10 缩小索引 95
3.11 检查索引是否存在 99
3.12 管理索引设置 100
3.13 使用索引别名 103
3.14 滚动索引 106
3.15 建立文档索引 108
3.16 获取文档 112
3.17 删除文档 115
3.18 更新文档 117
3.19 加快原子操作(批量操作) 121
3.20 加快GET操作(多个GET) 124
第4章 搜索功能详解 127
4.1 技术要求 127
4.2 执行搜索 128
4.3 对结果进行排序 136
4.4 突出显示结果 141
4.5 执行滚动查询 145
4.6 使用search_after功能 149
4.7 返回结果中的内部匹配 152
4.8 建议正确的查询 154
4.9 匹配结果计数 157
4.10 解释查询 159
4.11 查询性能分析 161
4.12 通过查询删除 163
4.13 通过查询更新 166
4.14 匹配所有文档 169
4.15 使用布尔查询 171
4.16 使用搜索模板 175
第5章 文本和数字查询 179
5.1 使用词条查询 179
5.2 使用多词条查询 184
5.3 使用前缀查询 187
5.4 使用通配符查询 191
5.5 使用正则表达式查询 194
5.6 使用跨度查询 196
5.7 使用匹配查询 204
5.8 使用查询字符串查询 207
5.9 使用简单的查询字符串查询 211
5.10 使用范围查询 214
5.11 常用词条查询 217
5.12 使用ID查询 220
5.13 使用函数评分查询 222
5.14 使用存在查询 227
第6章 关系和地理查询 231
6.1 使用has_child查询 231
6.2 使用has_parent查询 235
6.3 使用嵌套查询 238
6.4 使用geo_bounding_box查询 241
6.5 使用geo_polygon查询 243
6.6 使用geo_distance查询 245
第7章 聚合 249
7.1 执行聚合 250
7.2 执行统计聚合 255
7.3 执行词条聚合 257
7.4 执行重要词条聚合 261
7.5 执行范围聚合 264
7.6 执行直方图聚合 269
7.7 执行日期直方图聚合 274
7.8 执行过滤器聚合 278
7.9 执行多过滤器聚合 281
7.10 执行全局聚合 284
7.11 执行地理距离聚合 286
7.12 执行子级聚合 289
7.13 执行嵌套聚合 292
7.14 执行最高命中聚合 295
7.15 执行矩阵统计聚合 298
7.16 执行地理边界聚合 300
7.17 执行地理质心聚合 302
7.18 执行管道聚合 304
第8章 Elasticsearch中的脚本 309
8.1 关于Painless脚本 309
8.2 安装其他脚本插件 314
8.3 管理脚本 317
8.4 使用脚本对数据进行排序 321
8.5 使用脚本计算返回字段 326
8.6 使用脚本过滤搜索 328
8.7 在聚合中使用脚本 331
8.8 使用脚本更新文档 335
8.9 使用脚本重建索引 339
第9章 管理集群 343
9.1 使用API控制集群的运行状况 344
9.2 使用API控制集群的状态 347
9.3 使用API获取集群节点信息 352
9.4 通过API获取节点统计信息 358
9.5 使用任务管理API 365
9.6 使用热点线程API 368
9.7 管理分片分配 370
9.8 使用段API监控段 373
9.9 清理缓存 375
第10章 备份和还原数据 377
10.1 管理存储库 377
10.2 执行快照 380
10.3 还原快照 385
10.4 设置NFS共享进行备份 387
10.5 从远程集群重建索引 389
第11章 用户界面 393
11.1 安装和使用Cerebro 394
11.2 安装和使用ElasticHQ 401
11.3 安装Kibana 408
11.4 管理Kibana发现 413
11.5 使用Kibana可视化数据 417
11.6 使用Kibana开发工具 422
第12章 使用采集模块 425
12.1 管道定义 425
12.2 插入采集管道 428
12.3 获取采集管道 430
12.4 删除采集管道 431
12.5 模拟采集管道 432
12.6 内置处理器 437
12.7 Grok处理器 441
12.8 使用采集附件插件 445
12.9 使用采集GeoIP插件 448
第13章 Java集成 451
13.1 创建标准的Java HTTP客户端 452
13.2 创建HTTP Elasticsearch客户端 456
13.3 创建高级REST客户端 461
13.4 管理索引 463
13.5 管理映射 466
13.6 管理文档 470
13.7 管理批量操作 475
13.8 建立查询 479
13.9 执行标准搜索 482
13.10 使用聚合执行搜索 485
13.11 执行滚动搜索 490
13.12 集成DeepLearning4J 492
第14章 Scala集成 499
14.1 在Scala中创建客户端 500
14.2 管理索引 503
14.3 管理映射 505
14.4 管理文档 508
14.5 执行标准搜索 512
14.6 使用聚合执行搜索 514
14.7 集成DeepLearning.scala 517
第15章 Python集成 523
15.1 创建客户端 524
15.2 管理索引 526
15.3 管理映射 529
15.4 管理文档 532
15.5 执行标准搜索 536
15.6 使用聚合执行搜索 539
15.7 与NumPy和scikit-learn集成 542
第16章 插件开发 547
16.1 创建插件 547
16.2 创建分析器插件 552
16.3 创建REST插件 556
16.4 创建集群操作 561
16.5 创建采集插件 569
第17章 大数据集成 577
17.1 安装Apache Spark 577
17.2 使用Apache Spark索引数据 580
17.3 使用Apache Spark索引包含meta的数据 582
17.4 使用Apache Spark读取数据 586
17.5 使用Spark SQL读取数据 587
17.6 使用Apache Pig索引数据 589
17.7 结合使用Elasticsearch和Alpakka 593
17.8 结合使用Elasticsearch和MongoDB 598
|
內容試閱:
|
Elasticsearch是基于Lucene的分布式搜索服务器,它允许用户使用PB级的数据对非结构化内容进行索引和搜索。在本书中,读者将学习到有关Elasticsearch 7.0的全面操作秘笈,并了解如何创建和运行复杂的查询和分析。
本书是Elasticsearch Cookbook一书的第4版,包含有关使用Elasticsearch执行索引映射、聚合和脚本编写的秘笈,以帮助读者掌握用于执行日常任务和非常规任务(例如,部署Elasticsearch节点、集成其他工具到Elasticsearch,以及创建不同的可视化结果等)的众多解决方案和快速技术。读者将学习到如何安装Kibana来监视集群,以及如何使用各种插件对Elasticsearch进行扩展。最后,本书还介绍了如何将Java、Scala、Python和大数据应用程序(例如Apache Spark和Pig)与Elasticsearch集成在一起,从而创建由增强功能和自定义插件提供支持的高效数据应用程序。
通读本书之后,你将获得有关实现Elasticsearch架构的深入知识,并且能够使用Elasticsearch有效地管理、搜索和存储数据。
本书读者
如果你是软件工程师、大数据基础架构工程师或Elasticsearch开发人员,你会发现本书对你很有用。本书还将帮助在电子商务和快速消费品(FMCG)行业工作的数据专业人员,他们可以使用Elastic进行指标评估和搜索分析,以获取更深刻的见解,从而做出更好的业务决策。
如果你已经拥有使用Elasticsearch的经验,那么这将有助于你充分利用本书。
内容介绍
第1章入门,讨论了使用Elasticsearch的基本步骤,包括简单安装和云端部署。本章还介绍了若干种设置案例。
第2章管理映射,详细介绍了数据字段的正确定义,以提高索引和搜索的质量。
第3章基本操作,介绍了在Elasticsearch中提取数据并进行管理所需的常见操作。
第4章搜索功能详解,讨论了执行搜索、排序和相关API调用。本章讨论的API是必不可少的。
第5章 文本和数字查询,介绍了文本和数字字段的Search DSL部分,这是Elasticsearch
搜索功能的核心。
第6章关系和地理查询,讨论了可在相关文档(子文档父文档和嵌套文档)和地理位置字段上使用的查询。
第7章聚合,详细介绍了Elasticsearch的另一功能,即可以对搜索结果执行分析以改善用户体验,并深入研究Elasticsearch中包含的信息。
第8章Elasticsearch中的脚本,演示了如何使用脚本自定义Elasticsearch,以及如何使用不同的语言在Elasticsearch的不同部分(搜索、聚合和采集)使用脚本功能。本章的重点是Elastic团队开发的新脚本语言Painless。
第9章管理集群,显示了如何分析集群节点的行为以了解常见的陷阱。
第10章备份和还原数据,讨论了管理数据中最重要的组成部分之一:备份。它显示了如何管理分布式备份和快照的还原。
第11章用户界面,介绍了Elasticsearch两个最常见的用户界面:Cerebro(主要用于管理活动)和Kibana,另外,X-Pack是Elasticsearch的常见UI扩展。
第12章使用采集模块,讨论了通过采集管道在Elasticsearch中导入数据的采集功能。
第13章Java集成,介绍了如何使用REST和原生协议将Elasticsearch集成到Java应用程序中。
第14章Scala集成,介绍了如何使用elastic4s将Elasticsearch集成到Scala中。
elastic4s是一种基于原生Java API的高级类型安全且功能丰富的Scala库。
第15章Python集成,介绍了官方Elasticsearch Python客户端的用法。
第16章插件开发,讨论了如何创建原生插件以扩展Elasticsearch功能。本章通过一些示例显示了插件框架、设置过程以及它们的构建。
第17章大数据集成,介绍了如何将Elasticsearch集成到常见的大数据工具中,例如Apache Spark和Apache Pig。
充分利用本书
如果读者对Java、Scala和Python有基本了解,那么这对于充分利用本书将是有益的。
下载示例代码文件
读者可以从www.packtpub.com下载本书的示例代码文件。具体步骤如下。
(1)登录或注册www.packtpub.com。
(2)选择Support(支持)选项卡。
(3)单击Code Downloads&Errata(代码下载和勘误表)。
(4)在Search(搜索)框中输入图书名称Elasticsearch 7.0 Cookbook,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用最新版本解压缩或解压缩文件夹:
? WinRAR7-Zip(Windows系统)。
? ZipegiZipUnRarX(Mac系统)。
? 7-ZipPeaZip(Linux系统)。
本书的代码包也已经在GitHub上托管,网址如下,欢迎访问:
https:github.comPacktPublishingElasticsearch-7.0-Cookbook
如果代码有更新,则也会在现有GitHub存储库上更新。
下载彩色图像
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图图表的彩色图像。可以通过以下地址下载:
https:www.packtpub.comsitesdefaultfilesdownloads9781789956504_ColorImages.pdf
本书约定
本书中使用了许多文本约定。
(1)CodeInText:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。以下段落就是一个示例:
有关Python Elasticsearch客户端的官方说明文档提供了有关可用于初始化客户端的多个选项的更详细说明。其网址如下:
https:elasticsearch-py.readthedocs.ioenmasterindex.html
(2)有关代码块的设置如下所示:
PUT myindex
{
"settings": {
"index": {
"number_of_shards": 2,
"number_of_replicas": 1
}
}
}
(3)当希望引起读者对代码块的特定部分的注意时,相关的行或项目以粗体显示:
searchSourceBuilder.queryquery.size30;
SearchRequest searchRequest = new SearchRequest
.indicesindex.sourcesearchSourceBuilder
.scrollTimeValue.timeValueMinutes2;
(4)任何命令行输入或输出都采用如下所示的粗体代码形式:
[2019-02-05T21:15:36,311][INFO ][o.e.p.PluginsService ]
[iMacParo.local] loaded plugin [rest-plugin]
[2019-02-05T21:15:38,736][INFO ][o.e.x.s.a.s.FileRolesStore]
[iMacParo.local]
parsed [0] roles from file [Usersalbertoelasticsear
(5)粗体:术语或重要单词使用粗体显示,并且在括号内保留其英文原文。对于菜单或对话框中的界面词汇,则以原文形式出现,并使用括号添加其中文翻译,方便读者对照查看。示例如下:
传输操作通常定义为映射(Map)和归约(Reduce)作业。
在使用Kibana之前,建议加载一些数据集,这些数据集是在安装中提供的。只需单击Add sample data(添加样本数据)标题下的Load a data set and a Kibana dashboard(加载数据集和Kibana仪表盘)即可打开Add Data to Kibana(添加数据到Kibana)页面。
(6)本书还使用了以下两个图标。
表示警告或重要的注意事项。
表示提示或小技巧。
关于作者
Alberto Paro是一名工程师、项目经理和软件开发人员。他目前在意大利NTTDATA担任大数据实践负责人,负责大数据技术、本地云和NoSQL解决方案。他喜欢研究与云和大数据处理、NoSQL数据库、自然语言处理(NLP)和神经网络有关的新兴解决方案和应用程序。2000年,他毕业于米兰理工大学计算机科学工程系。他曾经在多家公司工作,主要使用ScalaJava和Python来开发知识管理解决方案,并使用最新的大数据软件开发高级数据挖掘产品。他还花费了大量的时间讲授如何有效使用大数据解决方案、NoSQL数据存储和相关技术。
如果没有很多人的支持,那么我将很难完成这本书。首先,我要感谢我的妻子、孩子(Andrea和Giulia)以及全家人对我的支持。我还要对我最好的朋友Mauro和Michele、我的同事以及所有帮助过我和我的家人的人们表示感谢。我要感谢Packt Publishing出版社参与本书开发和制作的每个人。感谢Athikho Sapuni Rishana对于本书给予的指导,感谢审稿人耐心地阅读了初稿并提供了宝贵的反馈意见。他们的专业精神、谦逊有礼、良好的判断力和对书籍的热情令人深表感佩。
关于审稿人
Craig Brown是一名独立顾问,为Elasticsearch和其他大数据软件提供服务。他拥有25年以上的Java核心开发经验,以及十多年的Elasticsearch经验。他在机器学习、Hadoop和Apache Spark方面也有良好的实践经验,并且是美国犹他州Big Mountain Data用户组的联合创始人。他是Elasticsearch和其他大数据主题的发言人。Craig创立了NosqlRevolution LLC,专注于Elasticsearch和大数据服务。他还创立了PicoCluster LLC,这是一个桌面数据中心,致力于对集群计算和大数据框架进行原型化。
|
|