注重体验与质量的电子书资源下载网站
分类于: 计算机基础 互联网 云计算&大数据
简介
深入理解Elasticsearch(原书第2版) 豆 6.6分
资源最后更新于 2020-03-29 03:17:25
作者:〔美〕拉斐尔·酷奇〔美〕马雷克·罗戈任斯基
译者:张世武余洪淼商旦
出版社:出版社机械工业出版社
出版日期:2017-05
ISBN:9787111568254
文件格式: pdf
简介· · · · · ·
随着互联网时代的来临,人类面临着前所未有的信息过载问题。为了方便人们从海量信息中快速精准地检索感兴趣的内容,Web搜索引擎应运而生。在互联网发展早期,数据量比较小,单机索引就能支撑起一个完整应用。在这个时期,Apache Lucene凭借其精巧的代码设计、优异的性能、丰富的查询接口,以及众多衍生搜索产品(如Apache Solr、Nutch等),在开源搜索领域大放异彩。随着互联网的发展,数据量快速膨胀,此时对搜索引擎提出了分布式、准实时、高容错、可扩展、易于交互等诸多进阶要求。基于Lucene的简单二次开发已经不能满足日常搜索需求,Elasticsearch的诞生很好地满足了上述大数据时代的搜索产品需求。Elasticsearch是一款基于Apache Lucene的开源搜索引擎产品,最早发布于2010年。之后Elasticsearch的开发团队成立了专门的商业公司,继续对其进行开发并提供服务和技术支持。Elasticsearch具有开源、分布式、准实时、RESTFul、便于二次开发等特点,代码实现精巧,系统稳定可靠,已经被国内外众多知名组织和公司广泛采用。
目录
译者序
作者简介
评审者简介
前言
第1章 Elasticsearch简介
1.1 Apache Lucene简介
1.1.1 熟悉Lucene
1.1.2 Lucene的总体架构
1.1.3 分析数据
1.1.4 Lucene查询语言
1.2 何为Elasticsearch
1.2.1 Elasticsearch的基本概念
1.2.2 Elasticsearch架构背后的关键概念
1.2.3 Elasticsearch的工作流程
1.3 在线书店示例
1.4 小结
第2章 查询DSL进阶
2.1 Apache Lucene默认评分公式解释
2.1.1 何时文档被匹配上
2.1.2 TF/IDF评分公式
2.1.3 Elasticsearch如何看评分
2.1.4 一个例子
2.2 查询改写
2.2.1 前缀查询示例
2.2.2 回到Apache Lucene
2.2.3 查询改写的属性
2.3 查询模板
2.3.1 引入查询模板
2.3.2 Mustache模板引擎
2.3.3 把查询模板保存到文件
2.4 过滤器的使用及作用原理
2.4.1 过滤及查询相关性
2.4.2 过滤器的工作原理
2.4.3 性能考量
2.4.4 后置过滤和过滤查询
2.4.5 选择正确的过滤方式
2.5 选择正确的查询方式
2.5.1 查询方式分类
2.5.2 使用示例
2.6 小结
第3章 不只是文本搜索
3.1 查询二次评分
3.1.1 什么是查询二次评分
3.1.2 一个查询例子
3.1.3 二次评分查询的结构
3.1.4 二次评分参数
3.1.5 总结
3.2 多匹配控制
3.3 重要词项聚合
3.3.1 一个例子
3.3.2 选择重要词项
3.3.3 多值分析
3.3.4 额外的配置
3.3.5 使用限制
3.4 文档分组
3.4.1 top_hits聚合
3.4.2 一个例子
3.5 文档关系
3.5.1 对象类型
3.5.2 嵌套文档
3.5.3 parent-child关系
3.5.4 其他解决方案
3.6 Elasticsearch各版本中脚本的变化
3.6.1 脚本变迁
3.6.2 Groovy简单介绍
3.6.3 全文检索中的脚本
3.6.4 Lucene表达式
3.7 小结
第4章 改善用户搜索体验
4.1 改正用户拼写错误
4.1.1 测试数据
4.1.2 深入技术细节
4.1.3 suggester
4.2 改善查询相关性
4.2.1 数据
4.2.2 改善相关性的探索之旅
4.3 小结
第5章 分布式索引架构
5.1 选择合适的分片和副本数
5.1.1 分片和过度分配
5.1.2 一个过度分配的正面例子
5.1.3 多分片与多索引
5.1.4 副本
5.2 路由
5.2.1 分片和数据
5.2.2 测试路由功能
5.2.3 索引时使用路由
5.2.4 别名
5.2.5 多个路由值
5.3 调整默认分片的分配行为
5.3.1 部署意识
5.3.2 过滤
5.3.3 运行时更新分配策略
5.3.4 确定每个节点允许的总分片数
5.3.5 确定每个物理机器允许的总分片数
5.4 查询执行偏好
5.5 小结
第6章 底层索引控制
6.1 改变Apache Lucene的评分方式
6.1.1 可用的相似度模型
6.1.2 为每字段配置相似度模型
6.1.3 相似度模型配置
6.1.4 选择默认的相似度模型
6.2 选择适当的目录实现——store模块
6.3 准实时、提交、更新及事务日志
6.3.1 索引更新及更新提交
6.3.2 事务日志
6.3.3 准实时读取
6.4 控制索引合并
6.4.1 选择正确的合并策略
6.4.2 合并策略配置
6.4.3 调度
6.5 关于I/O调节
6.5.1 控制I/O节流
6.5.2 配置
6.6 理解Elasticsearch缓存
6.6.1 过滤器缓存
6.6.2 字段数据缓存
6.6.3 查询分片缓存
6.6.4 使用circuit breaker
6.6.5 清除缓存
6.7 小结
第7章 管理Elasticsearch
7.1 发现和恢复模块
7.1.1 发现模块的配置
7.1.2 主节点
7.1.3 网关和恢复模块的配置
7.1.4 索引恢复API
7.2 使用人类友好的Cat API
7.2.1 基础知识
7.2.2 使用Cat API
7.2.3 一些例子
7.3 备份
7.4 联盟搜索
7.4.1 测试用的集群
7.4.2 建立部落节点
7.4.3 通过部落节点读取数据
7.4.4 通过部落节点写入数据
7.4.5 处理索引冲突
7.4.6 屏蔽写操作
7.5 小结
第8章 提高性能
8.1 使用doc values来优化查询
8.1.1 字段缓存存在的问题
8.1.2 使用doc values的例子
8.2 了解垃圾回收器
8.2.1 Java内存
8.2.2 解决垃圾回收问题
8.2.3 在类UNIX系统上避免内存交换
8.3 对查询做基准测试
8.3.1 为基准测试配置集群
8.3.2 进行基准测试
8.3.3 控制运行中的基准测试
8.4 热点线程
8.4.1 热点线程的使用说明
8.4.2 热点线程API的响应
8.5 扩展Elasticsearch
8.5.1 垂直扩展
8.5.2 水平扩展
8.5.3 在高负载的场景下使用Elasticsearch
8.6 小结
第9章 开发Elasticsearch插件
9.1 创建Maven项目
9.2 了解基本知识
9.2.1 Maven Java项目的结构
9.2.2 POM的理念
9.2.3 执行构建过程
9.2.4 引入Maven装配插件
9.3 创建自定义REST行为
9.3.1 设定
9.3.2 实现细节
9.4 创建自定义分析插件
9.4.1 实现细节
9.4.2 测试自定义分析插件
9.5 小结