| 作者 |
| (印度)波哈维·荻西特(Bharvi Dixit)付晓岩 |
| 丛书名 |
| 云计算与虚拟化技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782001101545 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------深入理解Elasticsearch(原书第3版)--------------------------- 本书在回顾Elasticsearch基础知识的同时,介绍了最新版本Elasticsearch 5的新功能,并对其中级和高级的功能(如查询、索引、搜索和修改数据)进行了详细说明。本书还将探索聚集、指标控制、分片、复制和聚类等概念,并通过实例展示监控管理模块、创建分析插件等。通过本书,读者可以对Elasticsearch 5有一个全面的认识并掌握其性能。 ---------------------------企业级业务架构设计:方法论与实践--------------------------- 内容简介 这是一部从方法论和工程实践双维度阐述企业级业务架构设计的著作。 作者是一位资深的业务架构师,在金融行业工作超过19年,有丰富的大规模复杂金融系统业务架构设计和落地实施经验。本书在出版前邀请了微软、亚马逊、阿里、百度、网易、Dell、Thoughtworks、58、转转等10余家企业的13位在行业内久负盛名的资深架构师和技术专家对本书的内容进行了点评,一致好评推荐。 作者在书中倡导“知行合一”的业务架构思想,全书内容围绕“行线”和“知线”两条主线展开。“行线”涵盖企业级业务架构的战略分析、架构设计、架构落地、长期管理的完整过程,“知线”则重点关注架构方法论的持续改良。 全书分为五个部分: 业务架构基础篇(第1~3章) 介绍了业务架构的发展历程、作用、与IT架构的关系,以及业务模型的相关知识。 业务架构设计篇(第4~7章) . 详细讲解了战略分析、对标分析、组织结构的影响、业务架构设计方法、标准化方法,并以一个虚拟案例综合演示了业务架构的设计过程。 业务架构落地篇(第8~13章) 演示了业务架构方案制作、基于业务架构的实施、项目完成后的管理机制,比较了与敏捷开发的异同,集中讨论了企业级项目的实施困难,最后以一个设计实例展示了业务架构设计对提升企业开发效率的作用。 架构方法改良篇(第14~16章) 系统总结了如何进行面向构件化的业务架构设计、如何构建轻量级架构设计工具、如何基于构件模型提升传统企业产品创新效率,该部分属于对之前方法的改良设想,需要读者对此多加思索,切勿生搬硬套。 业务架构与中台篇(第17章) 将业务架构设计方法与当前热点——“中台”模式进行了对比,“传统”方法并不一定会因新技术、新概念的发展而黯然失色,对方法论的深入探索和积极思考往往会让“传统”焕发新的“生命力”,深度思考比追逐热点更重要。 |
| 目录 |
---------------------------深入理解Elasticsearch(原书第3版)--------------------------- 译者序 前言 致谢 作者简介 审阅者简介 第1章 回顾Elasticsearch与演进历史 1 1.1 Apache Lucene简介 1 1.1.1 更深入地了解Lucene索引 2 1.1.2 Elasticsearch概览 7 1.2 Elasticsearch 5.x介绍 8 1.2.1 Elasticsearch新特性简介 9 1.2.2 Elasticsearch的演进 10 1.2.3 2.x到5.x的变化 14 1.3 小结 16 第2章 查询DSL进阶 17 2.1 Lucene的新默认文本评分机制——BM25 17 2.1.1 理解精确率与召回率 18 2.1.2 回顾TF-IDF 18 2.1.3 BM25与TF-IDF有什么不同 21 2.2 查询DSL重构 22 2.3 为任务选择合适的查询 22 2.3.1 查询方式分类 22 2.3.2 使用示例 27 2.3.3 查询DSL的其他重要变化 36 2.4 查询改写 37 2.4.1 前缀查询示例 37 2.4.2 回到Apache Lucene 39 2.4.3 查询改写的属性 40 2.5 查询模板 43 2.5.1 引入查询模板 43 2.5.2 Mustache模板引擎 45 2.6 小结 49 第3章 不只是文本搜索 50 3.1 多匹配控制 50 3.2 多匹配类型 51 3.2.1 最佳字段匹配 51 3.2.2 跨字段匹配 54 3.2.3 最多字段匹配 55 3.2.4 短语匹配 56 3.2.5 带前缀的短语匹配 56 3.3 用函数得分查询控制分数 57 3.4 函数得分查询下的内嵌函数 58 3.4.1 weight函数 58 3.4.2 字段值因子函数 59 3.4.3 脚本评分函数 60 3.4.4 衰变函数——linear、exp和gauss 60 3.5 查询二次评分 61 3.6 二次评分查询的结构 62 3.7 Elasticsearch脚本 66 3.7.1 语法 66 3.7.2 Elasticsearch各版本中脚本的变化 66 3.8 新的默认脚本语言Painless 67 3.8.1 用Painless写脚本 67 3.8.2 示例 69 3.8.3 用脚本为结果排序 71 3.8.4 按多个字段排序 72 3.9 Lucene表达式 73 3.9.1 基础知识 73 3.9.2 一个例子 73 3.10 小结 75 第4章 数据建模与分析 76 4.1 Elasticsearch中的数据建模方法 76 4.2 管理Elasticsearch中的关系型数据 77 4.2.1 对象类型 77 4.2.2 嵌套文档 80 4.2.3 父子关系 82 4.2.4 其他可选方案 84 4.2.5 数据反范式的例子 84 4.3 用聚合做数据分析 85 4.3.1 Elasticsearch 5.0的快速聚合 85 4.3.2 重温聚合 86 4.3.3 一类新的聚合:矩阵聚合 93 4.4 小结 96 第5章 改善用户搜索体验 97 5.1 改正用户拼写错误 97 5.1.1 测试数据 98 5.1.2 深入技术细节 99 5.2 suggester 99 5.2.1 在_search端点下使用suggester 99 5.2.2 term suggester 103 5.2.3 phrase suggester 105 5.2.4 completion suggester 113 5.3 实现自己的自动完成功能 117 5.4 处理同义词 120 5.4.1 为同义词搜索准备settings 120 5.4.2 格式化同义词 121 5.4.3 同义词扩展与收缩 122 5.5 小结 123 第6章 分布式索引架构 125 6.1 配置示例的多节点集群 125 6.2 选择合适数量的分片和副本 127 6.2.1 分片和预分配 127 6.2.2 预分配的正面例子 128 6.2.3 多分片与多索引 128 6.3 路由 129 6.3.1 分片和数据 129 6.3.2 测试路由功能 130 6.3.3 在索引过程中使用路由 132 6.3.4 路由实战 132 6.3.5 查询 134 6.3.6 别名 136 6.3.7 多值路由 137 6.4 分片分配控制 137 6.4.1 部署意识 138 6.4.2 确定每个节点允许的总分片数 142 6.4.3 确定每台物理服务器允许的总分片数 143 6.5 查询执行偏好 146 6.5.1 preference参数 146 6.5.2 使用查询执行偏好的例子 148 6.6 将数据切分到多个路径中 148 6.7 索引与类型——创建索引的改进方法 148 6.8 小结 149 第7章 底层索引控制 150 7.1 改变Apache Lucene的评分方式 150 7.2 可用的相似度模型 151 7.3 为每个字段配置相似度模型 151 7.4 相似度模型配置 152 7.5 选择默认的相似度模型 153 7.6 选择合适的实现——store模块 156 7.7 存储类型 156 7.8 准实时、提交、更新及事务日志 158 7.8.1 索引更新及更新提交 159 7.8.2 更改默认的刷新时间 159 7.8.3 事务日志 160 7.8.4 实时读取 161 7.9 控制段合并 162 7.9.1 Elasticsearch合并策略的变化 163 7.9.2 配置tiered合并策略 163 7.9.3 合并调度 164 7.9.4 强制合并 165 7.10 理解Elasticsearch缓存 166 7.10.1 节点查询缓存 166 7.10.2 分片查询缓存 166 7.10.3 字段数据缓存 168 7.10.4 使用circuit breaker 168 7.11 小结 169 第8章 管理Elasticsearch 170 8.1 Elasticsearch的节点类型 170 8.1.1 数据节点 171 8.1.2 主节点 171 8.1.3 Ingest节点 171 8.1.4 部落节点 172 8.1.5 协调节点/客户端节点 172 8.2 发现和恢复模块 172 8.2.1 发现模块的配置 173 8.2.2 网关和恢复模块的配置 177 8.2.3 索引恢复API 179 8.3 使用对人类友好的Cat API 182 8.3.1 Cap API的基础知识 183 8.3.2 使用Cat API 184 8.4 备份 186 8.4.1 快照API 187 8.4.2 在文件系统中保存备份 187 8.4.3 在云中保存备份 189 8.5 快照恢复 193 8.6 小结 196 第9章 数据转换与联盟搜索 197 9.1 用ingest节点在Elasticsearch里对数据进行预处理 197 9.1.1 使用ingest管道 198 9.1.2 处理管道中的错误 202 9.1.3 使用ingest处理器 204 9.2 联盟搜索 208 9.2.1 测试集群 208 9.2.2 建立部落节点 209 9.2.3 通过部落节点读取数据 211 9.2.4 主节点级别的读操作 212 9.2.5 通过部落节点写入数据 213 9.2.6 主节点级别的写操作 213 9.2.7 处理索引冲突 213 9.2.8 屏蔽写操作 215 9.3 小结 215 第10章 提升性能 216 10.1 查询验证与分析器 216 10.1.1 在执行前就验证代价大的查询 217 10.1.2 获得详细查询执行报告的查询分析器 219 10.1.3 关于查询分析用途的思考 221 10.2 热点线程 222 10.2.1 热点线程的使用说明 222 10.2.2 热点线程API的响应 223 10.3 扩展Elasticsearch集群 224 10.3.1 垂直扩展 224 10.3.2 水平扩展 225 10.3.3 在高负载的场景下使用Elasticsearch 231 10.4 用shrink和rollover API高效管理基于时间的索引 242 10.4.1 shrink API 243 10.4.2 rollover API 244 10.5 小结 246 第11章 开发Elastisearch插件 247 11.1 创建Apache Maven的项目架构 247 11.1.1 了解基础知识 248 11.1.2 Maven Java项目的结构 248 11.2 创建自定义REST行为插件 252 11.2.1 设定 252 11.2.2 实现细节 252 11.2.3 测试阶段 256 11.2.4 检验REST行为插件是否工作正常 257 11.3 创建自定义分析插件 258 11.3.1 实现细节 258 11.3.2 测试自定义分析插件 262 11.4 小结 264 第12章 介绍Elastic Stack 5.0 265 12.1 Elastic Stack 5.0简介 265 12.2 介绍Logstash、Beats和Kibana 266 12.2.1 使用Logstash 266 12.2.2 引入Beats作为数据传输器 271 12.2.3 使用Kibana 273 12.3 小结 282 ---------------------------企业级业务架构设计:方法论与实践--------------------------- 推荐语 前言 第一部分 业务架构基础篇 第1章 业务架构的发展历程2 1.1 Zachman模型2 1.2 TOGAF4 1.3 FEA和DODAF5 1.4 沉吟至今6 1.5 业务架构的定义8 第2章 业务架构的作用及与IT架构的关系10 2.1 业务架构的作用10 2.2 业务架构与IT架构的关系14 第3章 架构伴侣:业务模型18 3.1 模型与业务模型18 3.2 常见的建模方法21 3.3 建模原则与模型思维的应用25 第二部分 业务架构设计篇 第4章 业务架构的设计起点33 4.1 企业战略分析33 4.2 对标分析38 4.3 组织结构的影响不容忽视40 第5章 业务架构的设计过程44 5.1 价值链分析44 5.2 行为分析:业务领域和业务流程46 5.3 数据分析:企业级数据模型49 5.4 组件分析:行为与数据的结合51 5.5 业务架构的整体逻辑关系53 第6章 业务架构的设计难点56 6.1 基本的标准化方法56 6.2 避免“过度整合”59 6.3 何以解忧,唯有“融合”59 第7章 虚拟案例:商业银行业务架构设计61 7.1 价值链设计61 7.2 存款领域的模型设计63 7.3 贷款领域的模型设计65 7.4 跨领域的标准化67 7.5 组件设计70 7.6 案例总结73 第三部分 业务架构落地篇 第8章 从业务架构模型到业务架构方案76 8.1 业务架构设计不是为了替代需求分析76 8.2 制作业务架构方案77 8.3 小团队的应对之道83 8.4 需要充分解释架构方案84 8.5 努力打造“通用语言”85 第9章 基于业务架构方案的实施过程88 9.1 基于业务架构的设计89 9.2 基于业务架构的协调94 9.3 处理架构调整的原则96 9.4 企业级物有所值吗?100 第10章 建立转型后的长期应用机制103 10.1 项目结束了该怎么办?103 10.2 促进深度融合的需求管理机制106 第11章 这个“笨重”的过程与敏捷沾边吗?110 11.1 传说中和现实中的双模开发110 11.2 与正宗的敏捷对比112 11.3 与非正宗的敏捷对比114 11.4 且行且珍惜115 第12章 企业级的“五难” 117 12.1 捷径难寻118 12.2 文化难建119 12.3 预期难控120 12.4 权责难定121 12.5 长志难立123 第13章 实战:实现了快速设计的案例124 13.1 项目背景及需求124 13.2 设计思路和业务架构方案125 13.3 案例总结129 第四部分 架构方法改良篇 第14章 如何支持面向构件的设计132 14.1 “乐高积木”式的软件设计132 14.2 “颗粒度”问题134 14.3 构件模型的设计方式136 14.4 建立构件模型的虚拟案例139 14.5 构件模型的技术设计建议146 14.6 本章小结148 第15章 构建轻量级架构管理工具150 15.1 构件模型的抽象要素及逻辑关系150 15.2 轻量级架构管理工具的设计原理153 15.3 采集项目信息的价值155 15.4 轻量级架构管理工具的优缺点155 15.5 应用轻量级架构管理工具管理新需求156 第16章 基于构件模型谈谈传统企业的产品创新159 16.1 信息传导:打造信息传递高速公路160 16.2 信息分析:创造高维数据162 16.3 创新平台:扩展构件模型165 16.4 构件模型及其应用设想的不足169 第五部分 业务架构与中台篇 第17章 中台之上172 17.1 阿里中台简介172 17.2 企业文化的作用174 17.3 由业务架构方法可以推导出中台设计吗?176 尾声 对实践的再次思考179 附录A 位置、力量、资源183 附录B 积木式创新187 |