欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 一本书讲透Elasticsearch(原理进阶与工程实践)/程序员开发宝典系列
      • 作者:杨昌玉|责编:杨福川
      • 出版社:机械工业
      • ISBN:9787111740353
      • 出版日期:2024/01/01
      • 页数:483
    • 售价:51.6
  • 内容大纲

        这是一本关于Elasticsearch技术实战的教程,全面覆盖了Elastic Stack技术体系知识,旨在帮助读者深入了解Elasticsearch的核心技术和应用场景,同时掌握分布式搜索与分析引擎的设计思想和实现原理。
        本书共20章,分为4大部分:
        第一部分Elastic Stack全局概览:主要讨论Elastic Stack的重要组成部分与应用场景,以及Elasticsearch的独特优势。同时,初步探索搜索引擎的基础知识及Elasticsearch的核心概念,如集群、节点、索引等。最后,详细介绍Elasticsearch单节点、多节点集群部署以及Kibana部署等内容。
        第二部分Elasticsearch核心技术:从底层原理和实现方法两个层面切入,深入解读索引、映射、分词、数据预处理、文档、脚本、检索、聚合、集群、安全和运维等核心技术。
        第三部分Elasticsearch进阶指南:主要讨论Elasticsearch各关键操作的基本原理、性能优化方案及实战“避坑”指南等进阶话题。不仅对文档版本冲突及并发控制策略,以及更新/删除、写入、段合并、检索等常见操作实现提供了解决方案,还从通用、写入、检索3个维度提供了性能优化建议,并且讨论了分片、线程池和队列、热点线程、集群规划、客户端选型、缓存、数据建模、性能测试等热点技术,提供了Elasticsearch的应用场景和优化方法,为企业级实战保驾护航。
        第四部分Elasticsearch项目实战:带领读者实战Elasticsearch的三大核心业务场景——知识库检索系统、大数据可视化系统、日志系统,融会贯通理论知识和实践技能。
  • 作者介绍

        杨昌玉(铭毅天下),10多年工作经验的高级工程师,擅长大数据存储和检索。     曾任职于上市公司、科研院所等,主导过PB级数据存储与检索系统项目,拥有多年Elasticsearch培训及咨询经验。     Elastic认证专家、Elasticsearch中国合作培训讲师、Elasticsearch 中文社区2018年、2023年杰出贡献奖(排名Top5)获得者、阿里云MVP (大数据领域最有价值专家)、CSDN博客专家(排名Top150)CSDN 2020年度优秀创作者。     博客累计阅读量超1000万,并被阿里云、腾讯云、华为云、360doc、51CTO等知名媒体平台全量转载,在CSDN 2013年及2016年的博客征文大赛中获特等奖。     “死磕Elasticsearch”知识星球发起人,拥有近2000名付费用户。“铭毅天下Elasticsearch”公众号及博客总计拥有近5万名关注者。成功指导近200人通过Elastic认证专家考试。
  • 目录

    赞誉
    前言
    第一部分  Elastic Stack全局概览
      第1章  Elastic Stack全景
        1.1  Elasticsearch的过去、现在和未来
          1.1.1  Elasticsearch的过去
          1.1.2  Elasticsearch的现在
          1.1.3  Elasticsearch的未来
        1.2  Elastic Stack组成
          1.2.1  Elasticsearch概览
          1.2.2  Logstash概览
          1.2.3  Kibana概览
          1.2.4  Beats概览
        1.3  Elastic Stack的应用场景
          1.3.1  全文检索场景
          1.3.2  日志分析场景
          1.3.3  商业智能场景
        1.4  Elasticsearch竞品分析
          1.4.1  Apache Solr
          1.4.2  Splunk
          1.4.3  OpenSearch
          1.4.4  Doris
          1.4.5  ClickHouse
        1.5  本章小结
      第2章  Elasticsearch基础知识
        2.1  搜索引擎基础知识
          2.1.1  搜索引擎的目标
          2.1.2  搜索引擎的核心要求
          2.1.3  检索质量的评价指标
          2.1.4  倒排索引
          2.1.5  全文检索
        2.2  Elasticsearch的核心概念
          2.2.1  集群
          2.2.2  节点
          2.2.3  索引
          2.2.4  分片
          2.2.5  副本
          2.2.6  文档
          2.2.7  字段
          2.2.8  映射
          2.2.9  分词
        2.3  本章小结
      第3章  Elasticsearch集群部署
        3.1  Elastic Stack集群部署基础知识
          3.1.1  集群部署平台及操作系统的选型
          3.1.2  集群部署的主要步骤
          3.1.3  Elasticsearch集群堆内存设置
          3.1.4  Elasticsearch集群节点角色划分
          3.1.5  Elasticsearch集群核心配置解读
        3.2  Elasticsearch单节点集群与Kibana的极简部署

          3.2.1  Elasticsearch单节点集群极简部署
          3.2.2  Kibana极简部署
        3.3  Elasticsearch单节点集群与Kibana的自定义证书部署
          3.3.1  Elasticsearch单节点集群自定义证书部署
          3.3.2  Kibana自定义证书部署
        3.4  Elasticsearch多节点集群部署
        3.5  Kibana自带样例数据导入
        3.6  本章小结
    第二部分  Elasticsearch核心技术
      第4章  Elasticsearch索引
        4.1  索引的定义
          4.1.1  类比关系型数据库看索引
          4.1.2  索引定义的实现
        4.2  索引操作
          4.2.1  新增/创建索引
          4.2.2  删除索引
          4.2.3  修改索引
          4.2.4  查询索引
        4.3  索引别名
          4.3.1  别名的定义
          4.3.2  别名的实现
          4.3.3  别名应用的常见问题
        4.4  索引模板
          4.4.1  索引模板的定义
          4.4.2  索引模板的基础操作
          4.4.3  动态模板实战
          4.4.4  索引模板应用的常见问题
        4.5  本章小结
      第5章  Elasticsearch映射
        5.1  映射的定义
          5.1.1  认识映射
          5.1.2  元字段
          5.1.3  数据类型
          5.1.4  映射类型
          5.1.5  实战:映射创建后还可以更新吗
        5.2  Nested类型及应用
          5.2.1  Nested类型的定义
          5.2.2  Nested类型的操作
        5.3  Join类型及应用
          5.3.1  认识Join类型
          5.3.2  Join类型基础实战
          5.3.3  Join类型一对多实战
        5.4  Flattened类型及应用
          5.4.1  Elasticsearch字段膨胀问题
          5.4.2  Flattened类型的产生背景
          5.4.3  Flattened类型实战
          5.4.4  Flattened类型的不足
        5.5  多表关联设计
          5.5.1  Elasticsearch多表关联方案
          5.5.2  多表关联方案对比

        5.6  内部数据结构解读
          5.6.1  数据存储的基础知识
          5.6.2  倒排索引
          5.6.3  正排索引
          5.6.4  fielddata
          5.6.5  _source字段
          5.6.6  store字段
        5.7  详解null_value
          5.7.1  null_value的含义
          5.7.2  null_value使用的注意事项
          5.7.3  支持null_value的核心字段
        5.8  本章小结
      第6章  Elasticsearch分词
        6.1  认识分词
        6.2  为什么需要分词
        6.3  分词发生的阶段
          6.3.1  写入数据阶段
          6.3.2  执行检索阶段
        6.4  分词器的组成
          6.4.1  字符过滤
          6.4.2  文本切分为分词
          6.4.3  分词后再过滤
        6.5  分词器的分类
        6.6  特定业务场景的自定义分词案例
          6.6.1  实战问题拆解
          6.6.2  实现方案
          6.6.3  结果验证
        6.7  Ngram自定义分词案例
          6.7.1  实战问题拆解
          6.7.2  Ngram分词器定义
          6.7.3  Ngram分词实战
          6.7.4  Ngram分词选型的注意事项
        6.8  本章小结
      第7章  Elasticsearch预处理
        7.1  预处理定义
        7.2  预处理器分类
        7.3  预处理实现
        7.4  预处理实战案例
          7.4.1  字符串切分预处理
          7.4.2  字符串转JSON格式
          7.4.3  列表操作
          7.4.4  enrich预处理
          7.4.5  预处理实战的常见问题
        7.5  本章小结
      第8章  Elasticsearch文档
        8.1  新增文档
          8.1.1  文档ID
          8.1.2  新增单个文档
          8.1.3  新增批量文档
        8.2  删除文档

          8.2.1  单个文档删除
          8.2.2  批量文档删除
        8.3  修改/更新文档
          8.3.1  更新文档的前置条件
          8.3.2  单个文档部分更新
          8.3.3  全部文档更新
          8.3.4  批量文档更新
          8.3.5  取消更新
        8.4  reindex:迁移文档
          8.4.1  reindex操作的背景及定义
          8.4.2  同集群索引之间的全量数据迁移
          8.4.3  同集群索引之间基于特定条件的数据迁移
          8.4.4  不同集群索引之间的数据迁移
          8.4.5  查看及取消reindex任务
          8.4.6  业务零掉线情况下的数据迁移
        8.5  本章小结
      第9章  Elasticsearch脚本
        9.1  认识Elasticsearch脚本
          9.1.1  Elasticsearch脚本的背景
          9.1.2  Painless脚本语言简介
        9.2  Elasticsearch脚本的应用场景和模板
        9.3  Elasticsearch脚本实战
          9.3.1  自定义字段
          9.3.2  自定义评分
          9.3.3  自定义更新
          9.3.4  自定义reindex
          9.3.5  自定义聚合
          9.3.6  实战常见问题
        9.4  本章小结
      第10章  Elasticsearch检索
        10.1  检索选型指南
          10.1.1  Elasticsearch检索分类
          10.1.2  精准匹配检索和全文检索的本质区别
          10.1.3  精准匹配检索详解
          10.1.4  全文检索类型详解
          10.1.5  组合检索类型详解
          10.1.6  query和filter的区别
        10.2  高亮、排序和分页
          10.2.1  高亮
          10.2.2  排序
          10.2.3  分页
        10.3  自定义评分
          10.3.1  搜索结果相关度与自定义评分的关系
          10.3.2  控制Elasticsearch相关度
          10.3.3  计算相关度评分
          10.3.4  影响相关度评分的查询子句
          10.3.5  自定义评分定义
        10.4  检索模板
          10.4.1  检索模板基础知识
          10.4.2  检索模板实战问题及解决方案

        10.5  深度解读Elasticsearch分页查询
          10.5.1  from + size查询
          10.5.2  search_after查询
          10.5.3  scroll查询
        10.6  本章小结
      第11章  Elasticsearch聚合
        11.1  图解聚合
          11.1.1  数据源
          11.1.2  聚合分类
          11.1.3  聚合应用场景
        11.2  聚合后分页的新实现:组合聚合
          11.2.1  认识组合聚合
          11.2.2  组合聚合的应用场景
          11.2.3  组合聚合的核心功能
          11.2.4  利用组合聚合进行聚合后分页实战
        11.3  通过子聚合求解环比问题
          11.3.1  parent子聚合和sibling子聚合详解
          11.3.2  环比问题拆解
          11.3.3  环比问题求解实现
          11.3.4  bucket相关子聚合的常见问题
        11.4  Elasticsearch去重
          11.4.1  去重需求分析
          11.4.2  去重需求实现
        11.5  本章小结
      第12章   Elasticsearch集群
        12.1  冷热集群架构
          12.1.1  认识冷热集群架构
          12.1.2  冷热集群架构的应用场景
          12.1.3  冷热集群架构的优势
          12.1.4  冷热集群架构实战
        12.2  索引生命周期管理
          12.2.1  认识索引生命周期
          12.2.2  索引生命周期管理的历史演变
          12.2.3  索引生命周期管理的基础知识
          12.2.4  索引生命周期管理的核心概念
          12.2.5  索引生命周期管理实战:DSL命令行
          12.2.6  索引生命周期管理实战:Kibana图形化界面
        12.3  跨机房、跨机架部署
          12.3.1  跨机房、跨机架部署要求
          12.3.2  跨机房、跨机架部署实战
        12.4  集群/索引的备份与恢复
          12.4.1  常见的索引/集群的备份与恢复方案
          12.4.2  Elasticsearch快照和恢复功能
          12.4.3  elasticdump迁移
        12.5  快照生命周期管理
          12.5.1  认识快照生命周期
          12.5.2  快照生命周期管理实现
          12.5.3  恢复快照
          12.5.4  快照生命周期管理的常见命令
          12.5.5  通过Kibana图形化界面进行快照生命周期管理

        12.6  跨集群检索
          12.6.1  跨集群检索定义
          12.6.2  跨集群检索实战
          12.6.3  跨集群检索优势
        12.7  本章小结
      第13章  Elasticsearch安全
        13.1  集群安全基础
          13.1.1  Elasticsearch如何保障安全
          13.1.2  Elasticsearch X-Pack安全配置
          13.1.3  设置或重置账号和密码
        13.2  定义基于角色的访问控制
        13.3  如何安全使用Elasticsearch脚本
          13.3.1  Elasticsearch安全原则
          13.3.2  脚本类型细分
          13.3.3  脚本分级限制
          13.3.4  控制脚本的可用范围
        13.4  本章小结
      第14章  Elasticsearch运维
        14.1  Elasticsearch集群监控的维度及指标
          14.1.1  5个重要监控维度
          14.1.2  10个核心监控指标
        14.2  集群故障排查及修复指南
          14.2.1  集群健康状态的解读
          14.2.2  如何定位红色或黄色的索引
        14.3  运维及故障诊断的常用命令
        14.4  Elasticsearch监控指标可视化
          14.4.1  Elasticsearch监控的前置条件
          14.4.2  Metricbeat安装及Kibana可视化
        14.5  Elasticsearch日志
          14.5.1  Elasticsearch日志基础知识
          14.5.2  最低级别日志能否输出检索语句
          14.5.3  Elasticsearch slowlog的常见问题
        14.6  本章小结
    第三部分  Elasticsearch进阶指南
      第15章  Elasticsearch核心工作原理
        15.1  Elasticsearch文档版本的应用原理
          15.1.1  文档版本控制机制的产生背景
          15.1.2  Elasticsearch文档版本定义
          15.1.3  Elasticsearch文档版本冲突
          15.1.4  常见的并发控制策略
          15.1.5  如何解决或避免Elasticsearch文档版本冲突
        15.2  Elasticsearch文档更新/删除的原理
          15.2.1  更新/删除操作时文档版本号的变化
          15.2.2  文档删除、索引删除和文档更新的本质
          15.2.3  文档更新/删除的常见问题
        15.3  Elasticsearch写入的原理
          15.3.1  Elasticsearch写入的核心概念
          15.3.2  Elasticsearch写入的实现流程
          15.3.3  Elasticsearch refresh和flush操作
        15.4  Elasticsearch段合并的原理

          15.4.1  段的基础知识
          15.4.2  什么是段合并
          15.4.3  为什么要进行段合并
          15.4.4  段合并的潜在问题
          15.4.5  段合并问题的优化建议
        15.5  Elasticsearch检索的原理
        15.6  本章小结
      第16章  Elasticsearch性能优化
        16.1  Elasticsearch性能指标
        16.2  Elasticsearch通用的性能优化建议
        16.3  Elasticsearch写入优化
          16.3.1  写入优化建议
          16.3.2  写入过程监控
        16.4  Elasticsearch检索优化
          16.4.1  全量数据和大文档处理的优化建议
          16.4.2  数据建模层面的优化建议
          16.4.3  检索方法层面的优化建议
          16.4.4  性能优化的DSL命令行
        16.5  本章小结
      第17章  Elasticsearch实战“避坑”指南
        17.1  Elasticsearch分片
          17.1.1  常见分片问题
          17.1.2  分片大小如何影响性能
          17.1.3  分片及副本设置建议
        17.2  25个核心Elasticsearch默认值
          17.2.1  参数类型以及静态参数和动态参数的区别
          17.2.2  6个Elasticsearch集群级别参数的关键默认值
          17.2.3  7个Elasticsearch索引级别参数的关键默认值
          17.2.4  4个Elasticsearch映射级别参数的关键默认值
          17.2.5  8个其他关键默认值
        17.3  Elasticsearch线程池和队列
          17.3.1  线程池简介
          17.3.2  线程池类型
          17.3.3  线程池的基础知识
          17.3.4  队列的基础知识
          17.3.5  线程池实战问题及注意事项
        17.4  Elasticsearch热点线程
          17.4.1  热点线程简介
          17.4.2  热点线程支持的参数
          17.4.3  hot_threads API的应用原理
          17.4.4  hot_threads API的返回结果
        17.5  规划Elasticsearch集群规模和容量
          17.5.1  Elasticsearch基础架构
          17.5.2  维系Elasticsearch高性能的4种资源
          17.5.3  集群规模和容量的预估方法
        17.6  Elasticsearch Java客户端选型
          17.6.1  官方Elasticsearch Java客户端
          17.6.2  非官方Elasticsearch Java客户端
          17.6.3  如何进行Elasticsearch Java客户端选型
        17.7  Elasticsearch缓存

          17.7.1  Elasticsearch缓存分类
          17.7.2  查询与清理缓存
        17.8  Elasticsearch数据建模
          17.8.1  为什么要进行数据建模
          17.8.2  如何实现数据建模
        17.9  利用JMeter进行Elasticsearch性能测试
          17.9.1  Elasticsearch性能测试工具
          17.9.2  JMeter部署与启动
          17.9.3  关于JMeter性能测试的4点认知
          17.9.4  利用JMeter进行Elasticsearch 8.X性能测试
          17.9.5  JMeter性能测试与优化实战
        17.10  本章小结
    第四部分  Elasticsearch项目实战
      第18章  Elasticsearch知识库检索系统实战
        18.1  知识库检索系统的需求分析
        18.2  知识库检索系统的技术选型
          18.2.1  OpenOffice
          18.2.2  Tika
          18.2.3  Ingest Attachment
          18.2.4  FSCrawler
          18.2.5  Python Flask
        18.3  知识库检索系统的技术架构
        18.4  知识库检索系统的实现
          18.4.1  FSCrawler使用步骤详解
          18.4.2  系统实现效果展示
          18.4.3  数据统计可视化
        18.5  本章小结
      第19章  Elastic Stack大数据可视化系统实战
        19.1  大数据可视化系统的需求分析
        19.2  大数据可视化系统的技术架构
        19.3  大数据可视化系统的设计
          19.3.1  影评数据获取的可行性分析
          19.3.2  可分析的数据字段及其结果可视化
          19.3.3  数据清洗
          19.3.4  数据建模
          19.3.5  数据预处理
        19.4  大数据可视化系统的实现
          19.4.1  核心指标的可视化
          19.4.2  数据分析及结论
        19.5  本章小结
      第20章  Elastic Stack日志系统实战
        20.1  日志系统的需求分析
        20.2  日志系统的技术架构
        20.3  日志系统的设计
          20.3.1  date插件
          20.3.2  grok插件
        20.4  日志系统的实现
          20.4.1  Logstash数据处理
          20.4.2  Elasticsearch数据同步
          20.4.3  Kibana可视化分析

        20.5  本章小结
    后记  相信积累的力量