《深入理解ElasticSearch》——导读

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:


581bdf307bd94a6a45b3659aebef4903f5954b64

前  言 Preface
欢迎来到ElasticSearch的世界。通过阅读本书,我们将带你接触与ElasticSearch紧密相关的各种话题。本书会从介绍Apache Lucene及ElasticSearch的基本概念开始。即使读者熟悉这些知识,简略的介绍也是很有必要的,掌握背景知识对于全面理解集群构建、索引文档、搜索这些操作背后到底发生了什么至关重要。
之后,读者将学习Lucene的评分过程是如何工作的,如何影响评分,以及如何让ElasticSearch选择不同的评分算法。本书也将介绍什么是查询重写以及进行查询重写的原因。除此之外,本书还将介绍如何修改查询来影响ElasticSearch的缓存功能以及如何最大限度地使用缓存。
接着你将学习索引控制的相关知识:如何通过设置不同的倒排表格式(posting format)来改变索引字段的写入模式;索引的段合并机制和段合并的重要性,以及如何调整段合并来适应应用场景;深入探讨索引分片(shard)的分配机制、路由机制,以及当数据量、查询量日渐增长时的应对策略。
当然本书也不会遗漏垃圾收集的相关内容,包括垃圾收集的工作原理、触发时间以及如何调整垃圾收集的行为。此外,本书也将涉及ElasticSearch状态诊断的介绍,例如,描述系统段合并状况,ElasticSearch在高级API背后是如何工作以及如何限制I/O操作的。然而,本书并不仅限于讨论ElasticSearch的底层机制,同时也涵盖了如何改进用户搜索体验,例如处理拼写检查,高效地输入自动提示以及如何改进查询等内容。
除了前面介绍的那些,本书还将指导读者熟悉ElasticSearch的Java API,并演示它的使用方法,其中不仅包含CRUD(增删查改)等基本功能,同时也包含集群、索引的维护与操作等高级功能。最后,读者将通过开发一个用于数据索引的自定义river插件,以及一个在检索期和索引期用于数据分析的自定义分析插件来深入了解ElasticSearch的扩展机制。
目  录
前言
第1章 ElasticSearch简介
1.1 Apache Lucene简介
[1.2 ElasticSearch简介
1.2.1 ElasticSearch的基本概念
1.2.2 ElasticSearch架构背后的关概念
1.2.3 ElasticSearch的工作流程](https://yq.aliyun.com/articles/107906)
1.3 小结
[第2章 查询DSL进阶
2.1 Apache Lucene默认评分公式解释
2.1.1 何时文档被匹配上
2.1.2 TF/IDF评分公式
2.1.3 ElasticSearch如何看评分](https://yq.aliyun.com/articles/107918)
[2.2 查询改写
2.2.1 前缀查询范例
2.2.2 回顾Apache Lucene
2.2.3 查询改写的属性](https://yq.aliyun.com/articles/107930)
[2.3 二次评分
2.3.1 理解二次评分
2.3.2 范例数据
2.3.3 查询
2.3.4 二次评分查询的结构
2.3.5 二次评分参数配置
2.3.6 小结](https://yq.aliyun.com/articles/107938)
[2.4 批量操作
2.4.1 批量取
2.4.2 批量查询](https://yq.aliyun.com/articles/107949)
[2.5 排序
2.5.1 基于多值字段的排序
2.5.2 基于多值geo字段的排序
2.5.3 基于嵌套对象的排序](https://yq.aliyun.com/articles/107958)
[2.6 数据更新API
2.6.1 简单字段更新
2.6.2 使用脚本按条件更新
2.6.3 使用更新 API创建或删除文档](https://yq.aliyun.com/articles/107971)
[2.7 使用过滤器优化查询
2.7.1 过滤器与缓存
2.7.2 词项查找过滤器](https://yq.aliyun.com/articles/107984)
[2.8 ElasticSearch切面机制中的过滤器与作用域
2.8.1 范例数据
2.8.2 切面计算和过滤
2.8.3 过滤器作为查询的一部分
2.8.4 切面过滤器
2.8.5 全局作用域](https://yq.aliyun.com/articles/108004)
2.9 小结
[第3章 底层索引控制
3.1 改变Apache Lucene的评分方式
3.1.1 可用的相似度模型
3.1.2 为每字段配置相似度模型](https://yq.aliyun.com/articles/108011)
[3.2 相似度模型配置
3.2.1 选择默认的相似度模型
3.2.2 配置被选用的相似度模型](https://yq.aliyun.com/articles/108025)
[3.3 使用编解码器
3.3.1 简单使用范例
3.3.2 工作原理解释
3.3.3 可用的倒排表格式
3.3.4 配置编解码器](https://yq.aliyun.com/articles/108038)
[3.4 准实时、提交、更新及事务日志
3.4.1 索引更新及更新提交
3.4.2 事务日志
3.4.3 准实时读取](https://yq.aliyun.com/articles/108048)
[3.5 深入理解数据处理
3.5.1 输入并不总是进行文本分析
3.5.2 范例的使用
3.5.3 索引期更换分词器
3.5.4 搜索时更换分析器
3.5.5 陷阱与默认分析](https://yq.aliyun.com/articles/108057)
[3.6 控制索引合并
3.6.1 选择正确的合并策略
3.6.2 合并策略配置
3.6.3 调度](https://yq.aliyun.com/articles/108070)
3.7 小结
第4章 分布式索引架构
4.1 选择合适的分片和副本数
4.1.1 分片和过度分配
4.1.2 一个过度分配的正面例子
4.1.3 多分片与多索引
4.1.4 副本
4.2 路由
4.2.1 分片和数据
4.2.2 测试路由功能
4.2.3 索引时使用路由
4.2.4 别名
4.2.5 多个路由值
4.3 调整默认的分片分配行为
4.3.1 分片分配器简介
4.3.2 even_shard 分片分配器
4.3.3 balanced分片分配器
4.3.4 自定义分片分配器
4.3.5 裁决者
4.4 调整分片分配
4.4.1 部署意识
4.4.2 过滤
4.4.3 运行时更新分配策略
4.4.4 确定每个节点允许的总分片数
4.4.5 更多的分片分配属性
4.5 查询执行偏好
4.6 应用我们的知识
4.6.1 基本假定
4.6.2 配置
4.6.3 变化来了
4.7 小结
第5章 管理ElasticSearch
5.1 选择正确的目录实现-存储模块
5.2 发现模块的配置
5.2.1 Zen发现
5.2.2 亚马逊EC2发现
5.2.3 本地网关
5.2.4 恢复配置
5.3 索引段统计
5.3.1 segments API简介
5.3.2 索引段信息的可视化
5.4 理解ElasticSearch缓存
5.4.1 过滤器缓存
5.4.2 字段数据缓存
5.4.3 清除缓存
5.5 小结
第6章 故障处理
6.1 了解垃圾回收器
6.1.1 Java内存
6.1.2 处理垃圾回收问题
6.1.3 在类UNIX系统中避免内存交换
6.2 关于I/O调节
6.2.1 控制IO节流
6.2.2 配置
6.3 用预热器提升查询速度
6.3.1 为什么使用预热器
6.3.2 操作预热器
6.3.3 测试预热器
6.4 热点线程
6.4.1 澄清热点线程API的用法误区
6.4.2 热点线程API的响应信息
6.5 现实场景
6.5.1 越来越差的性能
6.5.2 混杂的环境和负载不平衡
6.5.3 我的服务器出故障了
6.6 小结
第7章 改善用户搜索体验
7.1 改正用户拼写错误
7.1.1 测试数据
7.1.2 深入技术细节
7.1.3 completion suggester
7.2 改善查询相关性
7.2.1 数据
7.2.2 改善相关性的探索之旅
7.3 小结
第8章 ElasticSearch Java API
8.1 ElasticSearch Java API简介
8.2 代码190
8.3 连接到集群
8.3.1 成为ElasticSearch节点
8.3.2 使用传输机连接方式
8.3.3 选择合适的连接方式
8.4 API剖析
8.5 CRUD操作
8.5.1 读取文档
8.5.2 索引文档
8.5.3 更新文档
8.5.4 删除文档
8.6 ElasticSearch查询
8.6.1 准备查询请求
8.6.2 构造查询
8.6.3 分页
8.6.4 排序
8.6.5 过滤
8.6.6 切面计算
8.6.7 高亮
8.6.8 查询建议
8.6.9 计数
8.6.10 滚动
8.7 批量执行多个操作
8.7.1 批量操作
8.7.2 根据查询删除文档
8.7.3 Multi GET
8.7.4 Multi Search
8.8 Percolator
8.9 explain API
8.10 构造JSON格式的查询和文档
8.11 管理API
8.11.1 集群管理API
8.11.2 索引管理API
8.12 小结
第9章 开发ElasticSearch插件
9.1 建立Apache Maven项目结构
9.1.1 了解基本知识
9.1.2 Maven Java项目的结构
9.1.3 POM的理念
9.1.4 运行构建过程
9.1.5 引入Maven装配插件
9.2 创建一个自定义river插件
9.2.1 实现细节
9.2.2 测试
9.3 创建自定义分析插件
9.3.1 实现细节
9.3.2 测试自定义分析插件
9.4 小结

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
存储 搜索推荐 关系型数据库
为什么需要 Elasticsearch
为什么需要 Elasticsearch
21 0
|
5天前
|
存储 JSON 数据可视化
Elasticsearch
Elasticsearch
21 6
|
2月前
|
搜索推荐 关系型数据库 MySQL
【Elasticsearch】初识elasticsearch
【Elasticsearch】初识elasticsearch
40 1
|
7月前
|
存储 关系型数据库 MySQL
Elasticsearch(二)
Elasticsearch(二)
38 0
|
11月前
|
存储 Java 关系型数据库
一起来学ElasticSearch(九)
前言 目前正在出一个Es专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 本节给大家讲下es中如何做聚合操作, 内容有点多,需要耐心看完~ 本文偏实战一些,好了, 废话不多说直接开整吧~ 什么是聚合 聚合的概念有点类似mysql中group by,sum(...),这么说大家可能就有点印象了, 但是在es中聚合操作功能更强大。 在了解es中聚合的概念之前,先来看下这两个概念, 聚合就是一个或多个桶和零个或多个指标的组合。
|
自然语言处理 索引
如果还不会Elasticsearch这七个问题 那么你的Elasticsearch白学
如果还不会Elasticsearch这七个问题 那么你的Elasticsearch白学
56 0
|
存储 自然语言处理 关系型数据库
ElasticSearch
ElasticSearch 什么? 基于Luncene的搜索服务器。用Java开发的,主要解决mysql性能低、功能有限的问题。 mysql是关系型数据库 like ‘%小区%’ 如果使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低。
102 1
|
SQL 搜索推荐 数据挖掘
大话ElasticSearch(下)
搜索引擎简述 什么是搜索? 搜索:就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息。 搜索分类: 普通的网页搜索、垂直搜索引擎等
|
缓存 自然语言处理 安全