1 Elasticsearch概述
1.1 Elasticsearch是什么
1.2 全文搜索引擎
1.3 Elasticsearch And Solr
1.4 Elasticsearch Or Solr
1.5 Elasticsearch应用案例
2 Elassticsearch入门
2.1 Elasticsearch 安装
2.1.1 下载软件
2.1.2 安装软件
2.1.3 问题解决
2.2 Elasticsearch基本操作
2.2.1 RESTful
2.2.2 客户端安装
2.2.3 数据格式
2.2.4 HTTP 操作
2.2.4.1 索引操作
2.2.4.2 文档操作
2.2.4.3 映射操作
2.2.4.4 高级查询
2.2.5 Java API 操作
Elasticsearch 软件是由 Java 语言开发的,所以也可以通过 Java API 的方式对 Elasticsearch
服务进行访问
2.2.5.1 创建 Maven 项目
我们在 IDEA 开发工具中创建 Maven 项目(模块也可)ES
2.2.5.2 客户端对象
创建com.atguigu.es.test.Elasticsearch01_Client类,代码中创建Elasticsearch客户端对象因为早期版本的客户端对象已经不再推荐使用,且在未来版本中会被删除,所以这里我们采用高级REST客户端对象
2.2.5.3 索引操作
2.2.5.4 文档操作
2.2.5.5 高级查询
2.2.5.5.1 请求体查询
2.2.5.5.2 高亮查询
2.2.5.5.3 聚合查询
3 Elasticsearch环境
3.1 相关概念
3.1.1 单机&集群
3.1.2 集群Cluster
3.1.3 节点Node
3.2 Windows集群
3.2.1 部署集群
3.2.2 启动集群
3.2.3 测试集群
3.3Linux单机
3.3.1 软件下载
3.3.2 软件安装
3.3.3 启动软件
3.3.4 测试软件
浏览器中输入地址:http://linux1:9200/
3.4 Linux集群
3.4.1 软件下载
3.4.2 软件安装
3.4.3 启动软件
3.4.4 测试集群
4 Elasticsearch进阶
4.1 核心概念
4.1.1 索引(Index)
4.1.2 类型(Type)
4.1.3 文档(Document)
4.1.4 字段(Field)
相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。
4.1.5 映射(Mapping)
4.1.6 分片(Shards)
4.1.7 副本(Replicas)
4.1.8 分配(Allocation)
4.2 系统架构
4.3 分布式集群
4.3.1 单节点集群
4.3.2故障转移
4.3.3 水平扩容
4.3.4 应对故障
4.4 路由计算
4.5 分片控制
4.5.1 写流程
4.5.2 读流程
4.5.3 更新流程
部分更新一个文档结合了先前说明的读取和写入流程:
4.5.4 多文档操作流程
4.6 分片原理
4.6.1 倒排索引
4.6.2 文档搜索
4.6.3 动态更新索引
4.6.4 近实时搜索
4.6.5 持久化变更
4.6.6 段合并
4.7 文档分析
4.7.1 内置分析器
4.7.2 分析器使用场景
4.7.3 测试分析器
4.7.4 指定分析器
4.7.5 IK分词器
4.7.6 自定义分析器
4.8 文档处理
4.8.1 文档冲突
4.8.2 乐观并发控制
4.8.3 外部系统版本控制
4.9 Kibana
5 Elasticsearch集成
5.1 Spring Data框集成
5.1.1 Spring Data框架介绍
5.1.2 Spring Data Elasticsearch介绍
5.1.3 Spring Data Elasticsearch 版本对比
5.1.4 框架集成
5.2 Spark Streaming框架集成
5.2.1 Spark Streaming框架介绍
5.2.2 框架集成
5.3 Flink 框架集成
5.3.1 Flink 框架介绍
5.3.2 框架集成
6 Elasticsearch优化
6.1 硬件选择
6.2 分片策略
6.2.1 合理设置分片数
6.2.2 推迟分片分配
6.3 路由选择
6.4 写入速度优化
6.4.1 批量数据提交
6.4.2 优化存储设备
6.4.3 合理使用合并
6.4.4 减少 Refresh 的次数
6.4.5 加大 Flush 设置
6.4.6 减少副本的数量
6.5 内存设置
6.6 重要配置
7 Elasticsearch面试题
7.1 为什么要使用 Elasticsearch?
7.2 Elasticsearch 的 master 选举流程?
7.3 Elasticsearch 集群脑裂问题?
7.4 Elasticsearch 索引文档的流程?
7.5 Elasticsearch 更新和删除文档的流程?
7.6 Elasticsearch 搜索的流程?
7.7 Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
7.8 GC 方面,在使用 Elasticsearch 时要注意什么?
7.9 Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
7.10 在并发情况下,Elasticsearch 如果保证读写一致?
7.11 如何监控 Elasticsearch 集群状态?
7.12 是否了解字典树?
7.13 Elasticsearch 中的集群、节点、索引、文档、类型是什么?
7.14 Elasticsearch 中的倒排索引是什么?
倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。ES中的倒排索引其实就是lucene的倒排索引,区别于传统的正向索引,倒排索引会再存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询时,将查询内容进行分词后在倒排表中进行查询,最后匹配数据即可。