深入理解Elasticsearch(原书第2版)

深入理解Elasticsearch(原书第2版) pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:Rafal Kuc
出品人:
页数:304
译者:
出版时间:2017-5
价格:0
装帧:
isbn号码:9787111568254
丛书系列:云计算与虚拟化技术丛书
图书标签:
  • es
  • 计算机科学
  • 计算机
  • Elasticsearch
  • 搜索
  • 全文检索
  • Lucene
  • 分布式
  • 数据分析
  • 可扩展性
  • 开发
  • 运维
  • 实战
想要找书就要到 本本书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

作者简介

ElasticSearch是一个优秀的开源分布式搜索引擎,同时有良好的社区和商业支持。对于中小型的垂直搜索引擎,ElasticSearch是一个不错的选择。本书是一本ElasticSearch的进阶教材,深入剖析DSL、索引控制、分布式实现、系统运维等高级内容,特别适合深入研究ElasticSearch。

—— 徐川 明星衣橱CTO,前雅虎高级工程师

ElasticSearch的出现,让开源搜索产品真正进入分布式时代。本书是一本不可多得的关于ElasticSearch的著作,既对ElasticSearch的全文索引、IR模型、分布式机制有深入剖析,又有生动翔实的示例,能帮助读者快速提升在该领域的技术水平。

—— 高剑林 腾讯(架构平台部)资深技术专家

除了用于搜索,ElasticSearch也是日志存储、离线数据分析挖掘的利器。本书深入浅出,案例丰富,在信息检索模型、准实时搜索、分布式架构、系统优化等诸多方面都有精彩的论述。

—— 李伟博士 微软(bing)数据挖掘组高级工程师

很高兴看到《Mastering ElasticSearch》中文版面市,本书对ElasticSearch的分布式系统架构、系统调优有较深入的探讨,是一本进阶的好读物,其中一些系统设计思维对于文件系统研发人员也是有所裨益的。

—— 许加强 前IBM(GPFS)资深工程师

尽管ElasticSearch是一个开源搜索产品,它在百度也被广泛应用。目前已经覆盖到20多个业务线。这本书针对性较强,既不乏典型实例,也有一定的理论深度。非常适合进阶用户阅读。

—— 陈铁兵 百度网页搜索部高级工程师

目录信息

译者序
作者简介
评审者简介
前言
第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
· · · · · · (收起)

读后感

评分

现在的ES版本是6.5,这本书里面提到的ES版本是1.4。另外这本书叫 深入理解……,其实有点不太符合深入二字。书中很多内容其实都是官方文档中提到的东西,只是官方文档是英文,如果英文不太好,理解起来不到位,结合一下中文书看看,理解起来效率会高一点。比如说:书中第二章对L...  

评分

感觉大部分内容是直接用百度翻译而来,很多地方的语言比较晦涩难懂。。。比如:上面提到的过滤器中,最后三个本身并不使用字段缓存,但由于它们操作其他过滤器,因而它们不缓存。翻译地太生硬。。。还有一些地方,说明数据明显与案例对应的数据不符。。。希望作者下次翻译书籍...  

评分

内容是基于ElasticSearch 0.9版本的 19页的例子好像是没有和前面完全对应上 (抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱歉,你的评论太短了抱...

评分

感觉大部分内容是直接用百度翻译而来,很多地方的语言比较晦涩难懂。。。比如:上面提到的过滤器中,最后三个本身并不使用字段缓存,但由于它们操作其他过滤器,因而它们不缓存。翻译地太生硬。。。还有一些地方,说明数据明显与案例对应的数据不符。。。希望作者下次翻译书籍...  

评分

感觉大部分内容是直接用百度翻译而来,很多地方的语言比较晦涩难懂。。。比如:上面提到的过滤器中,最后三个本身并不使用字段缓存,但由于它们操作其他过滤器,因而它们不缓存。翻译地太生硬。。。还有一些地方,说明数据明显与案例对应的数据不符。。。希望作者下次翻译书籍...  

用户评价

评分

这本书的附录和勘误部分,体现了作者团队的专业和严谨态度。我注意到,书中提供的所有代码示例和配置片段,我都可以在本地环境中一键复现,没有出现那种“代码不兼容”或者“配置已过时”的令人抓狂的情况。很多技术书籍为了追求时效性,往往会忽略对细节的打磨,导致读者实践时困难重重。这本书的详尽程度甚至延伸到了命令行操作的细节,每一步都清晰明确,这对于那些需要快速上手部署和测试的工程师来说,简直是太友好了。它不仅仅是一本理论参考书,更是一套可以被直接应用于生产环境的“可执行手册”。这种高度的实践指导性,让这本书在我的技术书架上占据了不可替代的位置,它是我进行日常维护和深度优化的首选参考资料,而不是那种读完就束之高阁的“一次性读物”。

评分

这本书的纸张手感真是出乎意料地好,拿到手里沉甸甸的,那种厚实感让人觉得内容一定非常扎实。封面设计简洁大方,配色沉稳,非常符合技术书籍的气质。我本来以为这种偏底层的技术书籍会读起来枯燥乏味,但翻开目录后发现,它的结构安排得很合理,从基础概念的梳理到高级特性的深入剖析,循序渐进,逻辑性很强。作者在介绍一些复杂的概念时,总能用非常形象的比喻来辅助理解,这对于初次接触或者理解不够透彻的读者来说,无疑是极大的福音。比如在解释倒排索引的工作原理时,那种娓娓道来的叙述方式,让我仿佛置身于一个经验丰富的导师的课堂上。这本书的排版也值得称赞,字体大小适中,行间距舒适,即便是长时间阅读也不会感到眼睛疲劳,这在技术文档中是非常重要的加分项。光是看着这本书摆在书架上,就给人一种“干货满满”的踏实感,让人忍不住想要立刻打开它,沉浸其中。

评分

我最近在负责一个对实时搜索性能要求极高的项目,原先的方案总是达不到预期的响应速度,这让我焦虑万分。抱着试试看的心态入手了这本书,原本只是想从中淘到一两个提升性能的“小技巧”。结果呢,我发现它提供的不仅仅是技巧,而是一整套系统性的思维框架。特别是关于分片策略和数据分布优化的章节,简直是为我量身定做的。作者对集群状态管理和节点间通信机制的剖析达到了近乎偏执的细致程度,让我终于明白了我们系统性能瓶颈的真正根源,原来是我们对索引生命周期管理理解得太过肤浅。读完这部分内容后,我回去调整了几个关键参数,性能提升立竿见影,延迟降低了近百分之四十。这种从理论到实践的完美闭环,让我对这本书的敬佩之情油然而生。它不是那种只停留在API调用的“CRUD宝典”,而是真正触及了Elasticsearch内核的“内功心法”。

评分

对于一个偏向于数据分析和数据可视化的用户来说,我原本对搜索引擎的底层架构兴趣不大,主要关注点集中在查询语言(DSL)和聚合功能上。然而,这本书的第三部分关于聚合框架的深度解析,彻底颠覆了我的认知。它没有仅仅停留在介绍`terms`和`date_histogram`的用法上,而是深入到了聚合管道(Pipeline Aggregations)的执行顺序和内存消耗控制上。我过去总觉得聚合结果的准确性是理所当然的,但读完后才意识到,背后复杂的计算逻辑和可能存在的精度问题。作者通过几个精心设计的实例,展示了如何构建复杂的多层级分析报告,并且能预估出在不同数据量下系统的负载情况。这让我对未来设计更复杂的BI报表有了信心,不再是盲目堆砌聚合层级,而是带着清晰的性能预期去构建查询,这是一种质的飞跃。

评分

说实话,我是一个对技术文档阅读有严重拖延症的人,很多技术书我都是“买来吃灰”的命运。但是这本书,我竟然连续好几个晚上把它带到咖啡馆里看,这对我来说简直是个奇迹。它的叙事风格非常个人化,不像那种冰冷的官方文档,读起来更像是在听一位技术大牛在跟你分享他多年踩过的那些“坑”。其中有一段讲到如何优雅地处理数据模型设计,作者坦言自己早期也犯过类似的错误,这种真诚的分享瞬间拉近了与读者的距离。此外,书中穿插的一些“专家提示”小栏目,往往是那种需要花费大量时间摸索才能领悟的经验总结,作者直接用几行文字就点明了关键,极大地压缩了我的学习曲线。我甚至觉得,如果早期有人能告诉我这些,我可能能省下好几个月的弯路。这本书的价值,在于它节省下来的不仅仅是时间,更是无数次的调试和调试失败带来的挫败感。

评分

一般般,并不算深入

评分

内容很垃圾,翻译也很垃圾。所有涉及到原理的东西草草了事,接着就开始说实操,看得我一脸懵逼。 1.比如2.2章节提到的查询改写,前缀查询中提到有四个j开头的范例,但在分析里说只有三个,也不说为什么,错漏百出。 2.3.4章涉及到事务日志的更新,csdn上有许多描述底层写过程的文章,从shared到buffer再到cache和segment file。这本书就说了几句用事务日志保证一致性,当出现异常的时候会检索事务日志进行恢复。??这谁不知道啊。关键流程呢?更新算法呢?统统没说,我还不如去搜帖子看呢

评分

翻译比较糟糕,内容老旧

评分

内容很垃圾,翻译也很垃圾。所有涉及到原理的东西草草了事,接着就开始说实操,看得我一脸懵逼。 1.比如2.2章节提到的查询改写,前缀查询中提到有四个j开头的范例,但在分析里说只有三个,也不说为什么,错漏百出。 2.3.4章涉及到事务日志的更新,csdn上有许多描述底层写过程的文章,从shared到buffer再到cache和segment file。这本书就说了几句用事务日志保证一致性,当出现异常的时候会检索事务日志进行恢复。??这谁不知道啊。关键流程呢?更新算法呢?统统没说,我还不如去搜帖子看呢

评分

内容很垃圾,翻译也很垃圾。所有涉及到原理的东西草草了事,接着就开始说实操,看得我一脸懵逼。 1.比如2.2章节提到的查询改写,前缀查询中提到有四个j开头的范例,但在分析里说只有三个,也不说为什么,错漏百出。 2.3.4章涉及到事务日志的更新,csdn上有许多描述底层写过程的文章,从shared到buffer再到cache和segment file。这本书就说了几句用事务日志保证一致性,当出现异常的时候会检索事务日志进行恢复。??这谁不知道啊。关键流程呢?更新算法呢?统统没说,我还不如去搜帖子看呢

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 onlinetoolsland.com All Rights Reserved. 本本书屋 版权所有