现代搜索看起来好像很神奇——在搜索引擎中键几个单词,搜索引擎看上去就好像知道你想要什么。有了Elasticsearch实时搜索和分析引擎,无需行复杂的底层编程,也无需理解高 级的数据科学算法,你就可以为用户提供这种神奇的体验。你只要安装它,调试它,就可以继续你的工作了。 本书将教读者编写提供专业的高质量搜索的应用程序的方法。随着阅读的深,读者将学会为任何应用程序添加基本的搜索特性,通过预测性分析和相关性排序来增强搜索结果,并使用之前搜索中保存的数据为用户提供定制化的体验。这本实战型的书籍聚焦在使用HTTP协议的Elasticsearch REST API。代码片段的书写多数是使用cURL的bash脚本,所以很容易翻译成其他编程语言。
售 价:¥
纸质售价:¥54.10购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
内容提要
译者序
译者简介
前言
资源与支持
致谢
关于本书
关于封面插图
第一部分
第1章 Elasticsearch介绍
1.1 用Elasticsearch解决搜索问题
1.1.1 提供快速查询
1.1.2 确保结果的相关性
1.1.3 超越精确匹配
1.2 探索典型的Elasticsearch使用案例
1.2.1 将Elasticsearch作为主要的后端系统
1.2.2 将Elasticsearch添加到现有的系统
1.2.3 将Elasticsearch和现有工具一同使用
1.2.4 Elasticsearch的主要特性
1.2.5 扩展Lucene的功能
1.2.6 在Elasticsearch中组织数据
1.2.7 安装Java语言
1.2.8 下载并启动Elasticsearch
1.2.9 验证是否工作
1.3 小结
第2章 深入功能
2.1 理解逻辑设计:文档、类型和索引
2.1.1 文档
2.1.2 类型
2.1.3 索引
2.2 理解物理设计:节点和分片
2.2.1 创建拥有一个或多个节点的集群
2.2.2 理解主分片和副本分片
2.2.3 在集群中分发分片
2.2.4 分布式索引和搜索
2.3 索引新数据
2.3.1 通过cURL索引一篇文档
2.3.2 创建索引和映射类型
2.3.3 通过代码样例索引文档
2.4 搜索并获取数据
2.4.1 在哪里搜索
2.4.2 回复的内容
2.4.3 如何搜索
2.4.4 通过ID获取文档
2.5 配置Elasticsearch
2.5.1 在elasticsearch.yml中指定集群的名称
2.5.2 通过logging.yml指定详细日志记录
2.5.3 调整JVM设置
2.6 在集群中加入节点
2.6.1 启动第二个节点
2.6.2 增加额外的节点
2.7 小结
第3章 索引、更新和删除数据
3.1 使用映射来定义各种文档
3.1.1 检索和定义映射
3.1.2 扩展现有的映射
3.2 用于定义文档字段的核心类型
3.2.1 字符串类型
3.2.2 数值类型
3.2.3 日期类型
3.2.4 布尔类型
3.3 数组和多字段
3.3.1 数组
3.3.2 多字段
3.4 使用预定义字段
3.4.1 控制如何存储和搜索文档
3.4.2 识别文档
3.5 更新现有文档
3.5.1 使用更新API
3.5.2 通过版本来实现并发控制
3.6 删除数据
3.6.1 删除文档
3.6.2 删除索引
3.6.3 关闭索引
3.6.4 重新索引样本文档
3.7 小结
第4章 搜索数据
4.1 搜索请求的结构
4.1.1 确定搜索范围
4.1.2 搜索请求的基本模块
4.1.3 基于请求主体的搜索请求
4.1.4 理解回复的结构
4.2 介绍查询和过滤器DSL
4.2.1 match查询和term过滤器
4.2.2 常用的基础查询和过滤器
4.2.3 match查询和term过滤器
4.2.4 phrase_prefix查询
4.3 组合查询或复合查询
4.3.1 bool查询
4.3.2 bool过滤器
4.4 超越match和过滤器查询
4.4.1 range查询和过滤器
4.4.2 prefix查询和过滤器
4.4.3 wildcard查询
4.5 使用过滤器查询字段的存在性
4.5.1 exists过滤器
4.5.2 missing过滤器
4.5.3 将任何查询转变为过滤器
4.6 为任务选择最好的查询
4.7 小结
第5章 分析数据
5.1 什么是分析
5.1.1 字符过滤
5.1.2 切分为分词
5.1.3 分词过滤器
5.1.4 分词索引
5.2 为文档使用分析器
5.2.1 在索引创建时增加分析器
5.2.2 在Elasticsearch的配置中添加分析器
5.2.3 在映射中指定某个字段的分析器
5.3 使用分析API来分析文本
5.3.1 选择一个分析器
5.3.2 通过组合即兴地创建分析器
5.3.3 基于某个字段映射的分析
5.3.4 使用词条向量API来学习索引词条
5.4 分析器、分词器和分词过滤器
5.4.1 内置的分析器
5.4.2 分词器
5.4.3 分词过滤器
5.5 N元语法、侧边N元语法和滑动窗口
5.5.1 一元语法过滤器
5.5.2 二元语法过滤器
5.5.3 三元语法过滤器
5.5.4 设置min_gram和max_gram
5.5.5 侧边N元语法过滤器
5.5.6 N元语法的设置
5.5.7 滑动窗口分词过滤器
5.6 提取词干
5.6.1 算法提取词干
5.6.2 使用字典提取词干
5.6.3 重写分词过滤器的词干提取
5.7 小结
第6章 使用相关性进行搜索
6.1 Elasticsearch的打分机制
6.1.1 文档打分是如何运作的
6.1.2 词频
6.1.3 逆文档频率
6.1.4 Lucene评分公式
6.2 其他打分方法
Okapi BM25
6.3 boosting
6.3.1 索引期间的boosting
6.3.2 查询期间的boosting
6.3.3 跨越多个字段的查询
6.4 使用“解释”来理解文档是如何被评分的
解释一篇文档不匹配的原因
6.5 使用查询再打分来减小评分操作的性能影响
6.6 使用function_score来定制得分
6.6.1 weight函数
6.6.2 合并得分
6.6.3 field_value_factor函数
6.6.4 脚本
6.6.5 随机
6.6.6 衰减函数
6.6.7 配置选项
6.7 尝试一起使用它们吧
6.8 使用脚本来排序
6.9 字段数据
6.9.1 字段数据缓存
6.9.2 字段数据用在哪里
6.9.3 管理字段数据
6.10 小结
第7章 使用聚集来探索数据
7.1 理解聚集的具体结构
7.1.1 理解聚集请求的结构
7.1.2 运行在查询结果上的聚集
7.1.3 过滤器和聚集
7.2 度量聚集
7.2.1 统计数据
7.2.2 高级统计
7.2.3 近似统计
7.3 多桶型聚集
7.3.1 terms聚集
7.3.2 range聚集
7.3.3 histogram聚集
7.4 嵌套聚集
7.4.1 嵌套多桶聚集
7.4.2 通过嵌套聚集获得结果分组
7.4.3 使用单桶聚集
7.5 小结
第8章 文档间的关系
8.1 定义文档间关系的选项概览
8.1.1 对象类型
8.1.2 嵌套类型
8.1.3 父子关系
8.1.4 反规范化
8.2 将对象作为字段值
8.2.1 映射和索引对象
8.2.2 在对象中搜索
8.3 嵌套类型:联结嵌套的文档
8.3.1 映射并索引嵌套文档
8.3.2 搜索和聚集嵌套文档
8.4 父子关系:关联分隔的文档
8.4.1 子文档的索引、更新和删除
8.4.2 在父文档和子文档中搜索
8.5 反规范化:使用冗余的数据管理
8.5.1 反规范化的使用案例
8.5.2 索引、更新和删除反规范化的数据
8.5.3 查询反规范化的数据
8.6 应用端的连接
8.7 小结
第二部分
第9章 向外扩展
9.1 向Elasticsearch集群加入节点
向集群中加入节点
9.2 发现其他Elasticsearch节点
9.2.1 通过广播来发现
9.2.2 通过单播来发现
9.2.3 选举主节点和识别错误
9.2.4 错误的识别
9.3 删除集群中的节点
停用节点
9.4 升级Elasticsearch的节点
9.4.1 进行轮流重启
9.4.2 最小化重启后的恢复时间
9.5 使用_cat API
9.6 扩展策略
9.6.1 过度分片
9.6.2 将数据切分为索引和分片
9.6.3 最大化吞吐量
9.7 别名
9.7.1 什么是别名
9.7.2 别名的创建
9.8 路由
9.8.1 为什么使用路由
9.8.2 路由策略
9.8.3 使用_search_shards API来决定搜索在哪里执行
9.8.4 配置路由
9.8.5 结合路由和别名
9.9 小结
第10章 提升性能
10.1 合并请求
10.1.1 批量索引、更新和删除
10.1.2 多条搜索和多条获取API接口
10.2 优化Lucene分段的处理
10.2.1 刷新和冲刷的阈值
10.2.2 合并以及合并策略
10.2.3 存储和存储限流
10.3 充分利用缓存
10.3.1 过滤器和过滤器缓存
10.3.2 分片查询缓存
10.3.3 JVM堆和操作系统缓存
10.3.4 使用预热器让缓存热身
10.4 其他的性能权衡
10.4.1 大规模的索引还是昂贵的搜索
10.4.2 调优脚本,要么别用它
10.4.3 权衡网络开销,更少的数据和更好的分布式得分
10.4.4 权衡内存,进行深度分页
10.5 小结
第11章 管理集群
11.1 改善默认的配置
11.1.1 索引模板
11.1.2 默认的映射
11.2 分配的感知
11.2.1 基于分片的分配
11.2.2 强制性的分配感知
11.3 监控瓶颈
11.3.1 检查集群的健康状态
11.3.2 CPU:慢日志、热线程和线程池
11.3.3 内存:堆的大小、字段和过滤器缓存
11.3.4 操作系统缓存
11.3.5 存储限流
11.4 备份你的数据
11.4.1 快照API
11.4.2 将数据备份到共享的文件系统
11.4.3 从备份中恢复
11.4.4 使用资料库插件
11.5 小结
附录A 处理地理空间的数据
附录B 插件
附录C 高亮
附录D Elasticsearch的监控插件
附录E 使用渗滤器将搜索颠倒过来
附录F 为自动完成和“您是指”功能使用建议器
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜