新書推薦:
《
大国脊梁:漫画版
》
售價:HK$
80.2
《
跟着渤海小吏读历史:大唐气象(全三册)
》
售價:HK$
189.0
《
心智的构建:大脑如何创造我们的精神世界
》
售價:HK$
81.4
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:HK$
81.4
《
中国古代北方民族史丛书——东胡史
》
售價:HK$
87.8
《
巨人传(插图珍藏本)
》
售價:HK$
705.6
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:HK$
76.7
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
|
內容簡介: |
Elasticsearch是一个强大的搜索引擎,提供了近实时的索引、搜索、分析功能。本书作者根据自己多年的开发经验,总结了使用和开发Elasticsearch的实战经验。本书全面介绍Elasticsearch系统结构与功能配置,以及实际应用案例,包括工具、方法、原则和佳实践。主要内容包括Elasticsearch基本概念与配置,索引的基本概念、管理与设置,架构设计中的字段、对象、映射,搜索中的结构、各种查询方式,聚合中的数字聚合、桶聚合、管道聚合,集群中的监控方式、配置案例,分析模块中的中文分词器、过滤器,高级设置中的关键点,监控与安全方面的技巧,ELK综合示例等。不管你是全文检索和Elasticsearch的初学者,还是Elasticsearch用户,你都能从书中获益。
|
目錄:
|
目 录 Contents前言第1章 Elasticsearch入门11.1 Elasticsearch是什么11.1.1 Elasticsearch的历史21.1.2 相关产品31.2 全文搜索31.2.1 Lucene介绍41.2.2 Lucene倒排索引41.3 基础知识61.3.1 Elasticsearch术语及概念61.3.2 JSON介绍101.4 安装配置121.4.1 安装Java121.4.2 安装Elasticsearch121.4.3 配置131.4.4 运行151.4.5 停止171.4.6 作为服务171.4.7 版本升级191.5 对外接口211.5.1 API约定221.5.2 REST介绍251.5.3 Head插件安装261.5.4 创建库271.5.5 插入数据281.5.6 修改文档281.5.7 查询文档291.5.8 删除文档291.5.9 删除库301.6 Java接口301.6.1 Java接口说明301.6.2 创建索引文档331.6.3 增加文档341.6.4 修改文档351.6.5 查询文档351.6.6 删除文档351.7 小结36第2章 索引372.1 索引管理372.1.1 创建索引372.1.2 删除索引392.1.3 获取索引392.1.4 打开关闭索引402.2 索引映射管理412.2.1 增加映射412.2.2 获取映射442.2.3 获取字段映射452.2.4 判断类型是否存在462.3 索引别名462.4 索引配置512.4.1 更新索引配置512.4.2 获取配置522.4.3 索引分析522.4.4 索引模板542.4.5 复制配置552.4.6 重建索引562.5 索引监控602.5.1 索引统计602.5.2 索引分片622.5.3 索引恢复632.5.4 索引分片存储642.6 状态管理642.6.1 清除缓存642.6.2 索引刷新642.6.3 冲洗652.6.4 合并索引652.7 文档管理662.7.1 增加文档662.7.2 更新删除文档692.7.3 查询文档732.7.4 多文档操作762.7.5 索引词频率802.7.6 查询更新接口832.8 小结87第3章 映射883.1 概念883.2 字段数据类型903.2.1 核心数据类型913.2.2 复杂数据类型963.2.3 地理数据类型1003.2.4 专门数据类型1063.3 元字段1083.3.1 _all字段1093.3.2 _field_names字段1093.3.3 _id字段1103.3.4 _index字段1103.3.5 _meta字段1113.3.6 _parent字段1113.3.7 _routing字段1123.3.8 _source字段1143.3.9 _type字段1153.3.10 _uid字段1153.4 映射参数1163.4.1 analyzer参数1163.4.2 boost参数1183.4.3 coerce参数1193.4.4 copy_to参数1203.4.5 doc_values参数1213.4.6 dynamic参数1223.4.7 enabled参数1223.4.8 fielddata参数1233.4.9 format参数1263.4.10 geohash参数1283.4.11 geohash_precision参数1293.4.12 geohash_prefix参数1303.4.13 ignore_above参数1313.4.14 ignore_malformed参数1313.4.15 include_in_all参数1323.4.16 index参数1333.4.17 index_options参数1333.4.18 lat_lon参数1343.4.19 fields参数1353.4.20 norms参数1363.4.21 null_value参数1373.4.22 position_increment_gap参数1373.4.23 precision_step参数1383.4.24 properties参数1383.4.25 search_analyzer参数1393.4.26 similarity参数1403.4.27 store参数1413.4.28 term_vector参数1413.5 动态映射1423.5.1 概念1423.5.2 _default_映射1433.5.3 动态字段映射1433.5.4 动态模板1453.5.5 重写默认模板1483.6 小结148第4章 搜索1494.1 深入搜索1494.1.1 搜索方式1494.1.2 重新评分1534.1.3 滚动查询请求1554.1.4 隐藏内容查询1584.1.5 搜索相关函数1614.1.6 搜索模板1644.2 查询DSL1674.2.1 查询和过滤的区别1674.2.2 全文搜索1684.2.3 字段查询1794.2.4 复合查询1834.2.5 连接查询1884.2.6 地理查询1904.2.7 跨度查询1974.2.8 高亮显示2004.3 简化查询2034.4 小结206第5章 聚合2075.1 聚合的分类2075.2 度量聚合2095.2.1 平均值聚合2095.2.2 基数聚合2115.2.3 最大值聚合2135.2.4 最小值聚合2145.2.5 和聚合2145.2.6 值计数聚合2155.2.7 统计聚合2155.2.8 百分比聚合2155.2.9 百分比分级聚合2165.2.10 最高命中排行聚合2175.2.11 脚本度量聚合2175.2.12 地理边界聚合2215.2.13 地理重心聚合2225.3 分组聚合2235.3.1 子聚合2245.3.2 直方图聚合2265.3.3 日期直方图聚合2305.3.4 时间范围聚合2335.3.5 范围聚合2345.3.6 过滤聚合2355.3.7 多重过滤聚合2365.3.8 空值聚合2385.3.9 嵌套聚合2395.3.10 采样聚合2405.3.11 重要索引词聚合2425.3.12 索引词聚合2455.3.13 总体聚合2515.3.14 地理点距离聚合2515.3.15 地理散列网格聚合2535.3.16 IPv4范围聚合2555.4 管道聚合2575.4.1 平均分组聚合2595.4.2 移动平均聚合2615.4.3 总和分组聚合2625.4.4 总和累计聚合2625.4.5 最大分组聚合2645.4.6 最小分组聚合2655.4.7 统计分组聚合2665.4.8 百分位分组聚合2685.4.9 差值聚合2695.4
|
內容試閱:
|
Preface 前 言Elasticsearch是目前全球最受欢迎的全文搜索引擎。初识Elasticsearch是在2012年的一个项目中,当时Elasticsearch还是0.19.0版本,但是功能已经比较强大,只是接口稍微有点复杂。到了2015年年初,公司开发了一款日志分析产品,它实时不间断地采集用户网络中各种不同系统的日志,然后从中分析系统的安全情况、系统情况、业务情况。最初所有的数据都存储在MySQL中,随着日志的不断增加,MySQL搜索速度越来越慢。后来在更换技术架构选型的时候又想到了Elasticsearch,这个时候Elasticsearch已经是1.6.0版本了。我们对此进行了简单的测试,在上亿条的数据搜索中很多都在一秒内完成,在上亿条的数据中进行统计分析大多也是在秒级完成,它展示了强大实力。我们顺势就把Elasticsearch整合到了现在的产品中,取得了很好效果。到了2016年3月的时候,Elasticsearch发布了2.3.0版本,各方面更加成熟,我们的产品又再一次升级到这个新版本上。Elasticsearch产品的更新变化非常快,在我们开发研究的过程中基本上找不到新版本的中文资料,目前市场上介绍Elasticsearch的中文书籍都是在版本1.0左右,甚至更早,这些书的很多内容尤其是开发接口相关的部分都已经过时,没有办法在新版本中使用。所以我们开发的过程中基本上都是研究官方文档,有时候甚至研究它的源码才能解决问题。在接口选择的时候我们在HTTP JSON接口和Java接口中做了取舍,我们当时分析HTTP JSON接口最终还是要转换成Java接口,不如直接使用Java接口,一是效率可能更高,二是在部署实施的时候减少一个端口,三是对后续的升级更有利,比如后续增加权限认证等。但这些东西都没有资料,我们基本上都是研究系统源码来克服的。在后续研究过程中,我们发现HTTP接口转换到Java接口是有规律的,所以对HTTP接口的掌握对后续Elasticsearch的开发和扩展也有很大的帮助。在持续研究的过程中,我们积累了大量经验,并想把这些经验分享给更多需要的人。后来我把这个想法给出版社的吴怡编辑做了沟通,她非常支持我们的想法,便有了这本书。本书首先介绍Elasticsearch的相关基础知识,然后由浅入深地介绍Elasticsearch索引查询相关的知识,包括索引、映射、搜索、聚合,接着介绍Elasticsearch的集群、分词、重要的配置等高级功能,以及Elasticsearch相关的其他产品,包括告警、监控、权限管理,最后通过一个ELK示例结束本书。在写作的时候考虑到读者的接受能力,由浅入深地进行讲解,建议读者从前往后阅读。本书主要内容包括:第1章 Elasticsearch入门,介绍Elasticsearch是什么、Apache Lucene的基础知识、Elasticsearch的术语、JSON介绍、Elasticsearch的安装运行、Elasticsearch的HTTP接口和Elasticsearch的Java API接口。第2章 索引,介绍和Elasticsearch索引相关的接口,包括索引管理、索引映射管理、索引别名、索引设置、索引监控、索引其他重要接口以及文档管理。第3章 映射,介绍Elasticsearch文档的内部结构,Elasticsearch支持的字段类型,除此之外,本章还将展示Elasticsearch内置的元字段,映射的参数和动态映射功能。第4章 搜索,详细介绍和搜索相关的知识,包括搜索的详细参数,搜索的评分机制、滚动查询、系统内部隐藏内容的查询、搜索模板等;接着介绍Elasticsearch的领域查询语言DSL(Domain-specific Language)相关的知识点;最后介绍Elasticsearch的精简查询接口。第5章 聚合,聚合可以对文档中的数据进行统计汇总、分组等,通过聚合可以完成很多的统计功能,该章介绍聚合相关的知识,包括度量聚合、分组聚合和管道聚合。第6章 集群管理,详细介绍和集群相关的内容,包括集群的监控、集群分片迁移、集群的节点配置、集群发现、集群平衡的原理和配置。第7章 索引分词器,介绍Elasticsearch的分词器和分词的原理,以及如何添加新的分词器等;还介绍Elasticsearch的插件相关知识,包括插件安装等。第8章 高级配置,介绍Elasticsearch的高级配置,包括网络配置、脚本配置、快照和恢复配置、线程池配置和索引配置。第9章 告警、监控和权限管理,介绍Elasticsearch官方支持的几个比较好的插件:Watcher、Marvel、Shield,它们可以对Elasticsearch进行告警、监控和权限管理。第10章 ELK应用,介绍Elasticsearch与另外两个产品Logstash和Kibana如何组合使用,Logstash是对日志进行收集和处理,Kibana是对存储在Elasticsearch中的索引进行展示和报表分析;最后通过一个简单的示例来介绍ELK几个产品是如何关联的。在编写本书的时候,Elasticsearch的最新版本是2.2.0,但本书准备正式出版的时候,Elasticsearch发布了最新的5.0版本。所以本书增加了一个附录专门介绍5.0版本的特性与改进。本书前面的部分截图是2.2.0版本的,书中所有的例子和功能都可以在Elasticsearch 2.3.3下运行,大部分的功能都可以在5.0下运行,详细的新版本差别请参考附录部分。本书中的例子大部分都是HTTP接口的,这些接口的测试
|
|