书籍详情
《深入理解Elasticsearch计算机与互》[24M]百度网盘|亲测有效|pdf下载
  • 深入理解Elasticsearch计算机与互

  • 出版社:互动出版网图书专营店
  • 出版时间:2017-05
  • 热度:9668
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

 书名:  (正版特价)深入理解Elasticsearch(原书第2版)|230482
 图书定价:  79元
 图书作者:  (美)拉斐尔·酷奇(Rafal Ku)
 出版社:  机械工业出版社
 出版日期:  2017/5/1 0:00:00
 ISBN号:  9787111568254
 开本:  16开
 页数:  0
 版次:  1-1
 作者简介
Ku是一个很有天赋的团队领袖以及软件开发人员。他现在担任Sematext集团公司的咨询专家及软件工程师,专注于开源技术,如Apache Lucene、Solr、Elasticsearch、 Hadoop stack等。他拥有超过13年的软件研发经验,涉及领域广阔,从银行软件到电子商务产品,主要侧重于Java平台。除此之外,他对能提高研发效率的任意工具或编程语言都抱有极高的热情。同时他也是solr.pl网站的创始人之一,该网站致力于帮助人们解决Solr、Lucene相关问题。他还是世界范围内各种会议热邀的演讲嘉宾,之前受邀出席过Lucene Eurocon、Berlin Buzzwords、 ApacheCon、 Lucene Revolution、DevOps Days等会议。
早在2002年就接触到Lucene,一开始他并不喜欢这个开源产品,然而在2003年,当他再次使用Lucene时,他改变了自己的看法,并看到了搜索技术的巨大潜力。随后Solr诞生了。于2010年开始使用Elasticsearch。目前主要着眼于Lucene、 Solr、Elasticsearch和信息检索等方面的研究。
是《Solr 3.1 Cookbook》一书及其后续版本《Solr 4.0 Cookbook》以及再版作品《Solr Cookbook, Third Edition》的作者。他也是《Elasticsearch Server》第1版和第2版、《Mastering Elasticsearch》第1版的作者,这些书均由Packt Publishing出版。
随着Elasticsearch的快速发展,我和Marek考虑针对本书第1版做一次更新。这本书并不适合所有读者,不过在第1版中我们没有做出足够的强调。我们把本书第1版作为《Elasticsearch Server》的升级版。本书第1版的定位也是如此:此刻你手捧的这本书是对《Elasticsearch Server,Second Edition》的扩展和续作。正因为如此,本书可以聚焦在一些高级主题上,比如如何选择恰当的查询方式、如何扩展Elasticsearch、大量的评分细节和示例、过滤器内部机制、新增的聚集器、不同文档关系处理方式的优劣对比,等等。期望在读完本书后,读者能够更好地理解Elasticsearch和Apache Lucene底层架构的各种细节,这将有助于他们更方便快捷地获取所需知识。
在此,我想感谢我的家庭,当我在电脑屏幕前全身心投入本书写作的那些日日夜夜里,他们表现出极大的耐心,是我最坚强的后盾。
同样也要感谢Sematext所有的同事们,尤其是Otis,感谢他为我付出的时间,并让我深刻认识到Sematext是一个非常适合我的公司。
最后,非常诚挚地感谢Elasticsearch、Lucenec项目的所有创建者和开发者,感谢他们杰出的工作和对开源项目的热情。没有他们,就没有本书的诞生;没有他们,开源搜索引擎就不会有现在的这种活力。
再次感谢你们!
—RafalKu·
Marek Rogoziski是一个有着超过10年经验的软件架构师和咨询师。其技术专长涉及基于开源搜索引擎(如Solr、Elasticsearch等)的解决方案及大数据分析技术(Hadoop、HBase、Twitter Storm等)。
他也是solr.pl网站的联合创始人之一,该网站致力于提供Solr和Lucene相关资讯和教程。他同时也是Packt Publishing出版的《Elasticsearch Server》第1版和第2版、《Mastering Elasticsearch》第1版的作者之一。
目前,他是ZenCard公司的首席技术官和主架构师。ZenCard公司提供实时处理和分析大规模交易事务的相关工具,可自动化、匿名识别所有零售渠道(移动电子商务、电子商务、实体店)的零售客户,给零售商提供客户留存和忠诚度运营的工具。
这已经是我们完成的第4本关于Elasticsearch的书了。在编写本书时,我一再沉醉于Elasticsearch的快速进化。我们一直在被标记为“试验中”和“正在开发中”的各种特性之间求取平衡,也不得不冒着最终代码变更,甚至某些有趣的功能被废弃的风险写作相关内容。本书第2版重写了很多内容,并引入不少Elasticsearch的新特性。不过,这些更新也是有代价的:我们剔除了一些对读者来说不是那么重要的信息。在本书中,我们还试图为读者介绍一些Elasticsearch相关的扩展主题。不过请注意,Elasticsearch的完整生态系统和ELK开发栈(Elasticsearch、Logstash和Kibana)或者Hadoop集成,都需要精心撰写单独的书籍加以介绍。
现在,致谢时间到了。
感谢Elasticsearch、Lucene及所有相关产品的创造者们。
同时也要感谢本书的出版团队。尤其是感谢帮助检查错误、校稿、消除表达歧义的伙伴们。非常感谢给我们留言评论和提出建设性意见的读者们。发现有人认可我们的工作令我感到非常惊喜,并深受鼓舞。谢谢你们!
最后,感谢所有支持我和理解我写作的朋友们。
—Marek Rogoziski
评审者简介
Hüseyin Akdogˇan的软件职业生涯起源于GwBasic编程语言。他先后掌握了QuickBasic和Visual Basic语言,并用VB开发了许多应用程序。2000年,他迈入了Web和PHP的世界,后来又穿插使用Java语言进行开发。从2005年起,他一边进行咨询和培训活动,一边继续使用Java EE技术开发企业应用程序。他擅长JavaServer Faces、Spring Frameworks,以及诸如NoSQL和Elasticsearch等大数据技术。除此之外,他还在钻研其他大数据相关技术。
Julien Duponchelle是一位毕业于欧洲理工学院的法国工程师。他致力于开发提升IT团队工作效率的各种工具,并在其职业生涯**献了多个开源软件项目。
自从他加入ETNA(一个法国IT职业教育学校)开始涉足教育领域起,Julien以首席支持工程师的身份协助过好几个创业公司进行工作,并参与了多个重大项目的募资活动,包括Plizy和Youboox。
感谢我的女友Malig,感谢她在我评审本书和开发其他开源项目的无数个夜晚的善意支持和极大的耐心。
—Julien Duponchelle
Marcelo Ochoa现任教于阿根廷布宜诺斯艾利斯省中部国立大学精确科学与自然科学学院的系统实验室,也是Scotas.com公司的CTO,该公司致力于提供基于Solr和Oracle的准实时搜索解决方案。在高校任职的同时,他也参与一些与Oracle、大数据相关的外部项目。他参与过的Oracle相关项目有Oracle手册文档翻译、多媒体培训等。其技术背景涉及数据库、网络、Web、Java等。在XML领域,他参与过Apache Cocoon中的DB Generator,开源项目DBPrism、DBPrism CMS,基于Oracle JVM Directory的Lucene-Oracle集成方案,Restlet.org项目中的Oracle XDB Restlet Adapter(一个能在基于数据库驻存的JVM内部生成本地REST Web服务的解决方案)等项目或模块的开发,并因此为业界所熟知。
从2006年开始,他参与了Oracle ACE计划,这是Oracle公司官方推出的一个计划,旨在认可和奖励Oracle技术社区中技术娴熟并愿意分享他们的知识、经验的成员为该社区所做的贡献。
Marcelo Ochoa还是《Oracle Database Programming Using Java and Web Services》(Kuassi Mensah,由Digital Press出版)和《Professional XML Databases》(Kevin Williams,由 Wrox Press出版)两书的合著者,同时也是Packt出版社的多部书籍,如《Apache Solr 4 Cookbook》《Elasticsearch Server》等的评审者。
 内容简介
本书涵盖了Elasticsearch的许多中高级功能,并介绍了缓存、ApacheLucene库以及监控等模块的内部运作机制。其中,还涉及一些实用案例,比如配置Elasticsearch参数、使用监控API等。
 目录

译者序
作者简介
评审者简介
前言
第1章 Elasticsearch简介 1
1.1 Apache Lucene简介 1
1.1.1 熟悉Lucene 2
1.1.2 Lucene的总体架构 2
1.1.3 分析数据 4
1.1.4 Lucene查询语言 5
1.2 何为Elasticsearch 8
1.2.1 Elasticsearch的基本概念 8
1.2.2 Elasticsearch架构背后的关键概念 10
1.2.3 Elasticsearch的工作流程 10
1.3 在线书店示例 14
1.4 小结 17
第2章 查询DSL进阶 18
2.1 Apache Lucene默认评分公式解释 18
2.1.1 何时文档被匹配上 19
2.1.2 TF/IDF评分公式 19
2.1.3 Elasticsearch如何看评分 21
2.1.4 一个例子 21
2.2 查询改写 24
2.2.1 前缀查询示例 24
2.2.2 回到Apache Lucene 26
2.2.3 查询改写的属性 28
2.3 查询模板 30
2.3.1 引入查询模板 31
2.3.2 Mustache模板引擎 33
2.3.3 把查询模板保存到文件 35
2.4 过滤器的使用及作用原理 36
2.4.1 过滤及查询相关性 36
2.4.2 过滤器的工作原理 40
2.4.3 性能考量 41
2.4.4 后置过滤和过滤查询 42
2.4.5 选择正确的过滤方式 44
2.5 选择正确的查询方式 45
2.5.1 查询方式分类 45
2.5.2 使用示例 50
2.6 小结 65
第3章 不只是文本搜索 66
3.1 查询二次评分 66
3.1.1 什么是查询二次评分 67
3.1.2 一个查询例子 67
3.1.3 二次评分查询的结构 67
3.1.4 二次评分参数 70
3.1.5 总结 70
3.2 多匹配控制 71
3.3 重要词项聚合 78
3.3.1 一个例子 79
3.3.2 选择重要词项 81
3.3.3 多值分析 81
3.3.4 额外的配置 84
3.3.5 使用限制 89
3.4 文档分组 89
3.4.1 top_hits聚合 90
3.4.2 一个例子 90
3.5 文档关系 95
3.5.1 对象类型 95
3.5.2 嵌套文档 98
3.5.3 parent-child关系 99
3.5.4 其他解决方案 102
3.6 Elasticsearch各版本中脚本的变化 102
3.6.1 脚本变迁 102
3.6.2 Groovy简单介绍 103
3.6.3 全文检索中的脚本 108
3.6.4 Lucene表达式 115
3.7 小结 118
第4章 改善用户搜索体验 119
4.1 改正用户拼写错误 119
4.1.1 测试数据 120
4.1.2 深入技术细节 121
4.1.3 suggester 121
4.2 改善查询相关性 142
4.2.1 数据 142
4.2.2 改善相关性的探索之旅 145
4.3 小结 157
第5章 分布式索引架构 159
5.1 选择合适的分片和副本数 159
5.1.1 分片和过度分配 160
5.1.2 一个过度分配的正面例子 161
5.1.3 多分片与多索引 161
5.1.4 副本 161
5.2 路由 162
5.2.1 分片和数据 162
5.2.2 测试路由功能 162
5.2.3 索引时使用路由 166
5.2.4 别名 169
5.2.5 多个路由值 169
5.3 调整默认分片的分配行为 170
5.3.1 部署意识 171
5.3.2 过滤 173
5.3.3 运行时更新分配策略 174
5.3.4 确定每个节点允许的总分片数 175
5.3.5 确定每个物理机器允许的总分片数 175
5.4 查询执行偏好 179
5.5 小结 181
第6章 底层索引控制 182
6.1 改变Apache Lucene的评分方式 182
6.1.1 可用的相似度模型 183
6.1.2 为每字段配置相似度模型 183
6.1.3 相似度模型配置 184
6.1.4 选择默认的相似度模型 185
6.2 选择适当的目录实现—store模块 188
6.3 准实时、提交、更新及事务日志 191
6.3.1 索引更新及更新提交 192
6.3.2 事务日志 193
6.3.3 准实时读取 194
6.4 控制索引合并 195
6.4.1 选择正确的合并策略 196
6.4.2 合并策略配置 197
6.4.3 调度 199
6.5 关于I/O调节 200
6.5.1 控制I/O节流 200
6.5.2 配置 200
6.6 理解Elasticsearch缓存 202
6.6.1 过滤器缓存 203
6.6.2 字段数据缓存 204
6.6.3 查询分片缓存 212
6.6.4 使用circuit breaker 213
6.6.5 清除缓存 214
6.7 小结 215
第7章 管理Elasticsearch 216
7.1 发现和恢复模块 216
7.1.1 发现模块的配置 217
7.1.2 主节点 218
7.1.3 网关和恢复模块的配置 223
7.1.4 索引恢复API 226
7.2 使用人类友好的Cat API 229
7.2.1 基础知识 230
7.2.2 使用Cat API 231
7.2.3 一些例子 232
7.3 备份 232
7.4 联盟搜索 236
7.4.1 测试用的集群 236
7.4.2 建立部落节点 237
7.4.3 通过部落节点读取数据 238
7.4.4 通过部落节点写入数据 239
7.4.5 处理索引冲突 240
7.4.6 屏蔽写操作 241
7.5 小结 242
第8章 提高性能 243
8.1 使用doc values来优化查询 243
8.1.1 字段缓存存在的问题 244
8.1.2 使用doc values的例子 245
8.2 了解垃圾回收器 247
8.2.1 Java内存 248
8.2.2 解决垃圾回收问题 249
8.2.3 在类UNIX系统上避免内存交换 254
8.3 对查询做基准测试 255
8.3.1 为基准测试配置集群 256
8.3.2 进行基准测试 256
8.3.3 控制运行中的基准测试 259
8.4 热点线程 261
8.4.1 热点线程的使用说明 261
8.4.2 热点线程API的响应 262
8.5 扩展Elasticsearch 263
8.5.1 垂直扩展 263
8.5.2 水平扩展 264
8.5.3 在高负载的场景下使用Elasticsearch 271
8.6 小结 283
第9章 开发Elasticsearch插件 284
9.1 创建Maven项目 284
9.2 了解基本知识 285
9.2.1 Maven Java项目的结构 285
9.2.2 POM的理念 285
9.2.3 执行构建过程 286
9.2.4 引入Maven装配插件 287
9.3 创建自定义REST行为 289
9.3.1 设定 289
9.3.2 实现细节 289
9.4 创建自定义分析插件 295
9.4.1 实现细节 295
9.4.2 测试自定义分析插件 302
9.5 小结 304