ElasticSearch8.14.x课程大纲
2025-02-26 15:33:42 0 举报
AI智能生成
ElasticSearch8.14.x课程大纲,分享给大家学习。 更多干货内容,欢迎关注我的公众号:Fox爱分享
作者其他创作
大纲/内容
课程介绍
已经会mysql了,为什么还要学ES
课程特点
系统全面,学习ES不用到处找资料和课程
学习ES常见的问题
ES产品版本更新快,资料跟不上
ElasticSearch最新版8.14.3
市面上绝大部分书籍和课程还是ES7及以下版本的
ES实战案例太少,会理论不会动手
实战案例多
百度搜索,CSDN文章搜索,航班数据可视化等等
真实生产需求实战案例
仿京东电商商品搜索实战
微服务架构日志采集与分析系统实战
缺少实际生产经验
ElaticSearch生产问题的解决方案多
ElasticSearch企业级生产最佳实践中涵盖了常见的ES生产问题解决方案
课程安排
入门篇
前三章基础入门部分
高阶篇
后三章进阶部分
前置基础
需要基础
用数据库做过简单的数据管理系统,比如用过mysql
用linux安装过软件
用springboot写过一个hello接口
课程完整的笔记和代码都会上传到网盘,同学们到ES课程的目录下下载即可
1.ElasticSearch的概述
什么是ElasticSearch
开源的分布式搜索和数据分析引擎
排名第一的搜索引擎
官网地址
ElasticSearch的应用场景
全文检索
百度,谷歌,京东商城搜索
日志分析
美团,抖音日志分析系统
Elastic Stack生态介绍
ElasticSearch
核心搜索和分析引擎,提供存储、索引和分布式搜索功能
Logstach
数据处理管道,负责数据收集、处理和传输
Beats
轻量级数据采集器,负责从各种来源采集数据并发送到 Logstash 或 Elasticsearch
Kibana
可视化和管理工具,提供数据展示和交互式查询
2.ElasticSearch快速安装上手
快速安装ElasticSearch
windows快速安装ElasticSearch
1) 下载并解压ES安装包
2) 配置JDK环境变量
3 ) 修改ES配置文件
4) 启动ES服务
linux快速安装ElasticSearch
1) 环境准备
2) 下载并解压ES安装包
3) 配置JDK环境变量
4)修改ES配置文件
5)启动ES服务
生产者模式启动ES服务常见错误总结
安装ES浏览器插件Elasticsearch Head
安装中文分词插件
什么是分词器
在线安装analysis-icu分词插件
离线安装IK分词插件
使用案例:快速搭建一个自己的百度搜索服务
安装可视化客户端Kibana
1) 下载并解压Kibana安装包
2) 修改Kibana配置文件
3) 启动Kibana服务
4) 演示Kibana的使用
使用案例:基于kibana快速搭建一个自己的百度搜索服务
3. ElasticSearch基础数据管理详解
了解ElasticSearch核心概念
了解搜索引擎的基础知识
什么是全文检索
什么是倒排索引
了解ElasticSearch常用术语
什么是索引(Index)
类似于Mysql中的表
什么是映射(Mapping)
类似于Mysql表的Schema表结构
什么是文档(Document)
类似于Mysql表中的一行记录
ElasticSearch索引操作详解
索引的实战场景
场景一:将采集的不同业务类型的数据存储到不同的索引
场景二:按日期切分存储日志索引
索引的基本操作
创建索引
创建索引的基本语法
只定义索引名,而settings、mappings取默认值
实践练习:创建一个名为 student_index 的索引,并设置一些自定义字段
删除索引
查询索引
修改索引
动态更新索引的settings部分
动态更新索引的部分mapping字段信息
实践练习:向 student_index 添加一个名为 grade 的新字段,类型为 integer,并将副本数量更新为 2。
索引别名详解
为什么需要别名
场景1:面对PB级别的增量数据,对外提供服务的是基于日期切分的n个不同索引,每次检索都要指定数十个甚至数百个索引,非常麻烦。
场景2:线上提供服务的某个索引设计不合理,比如某字段分词定义不准确,那么如何保证对外提供服务不停止,也就是在不更改业务代码的前提下更换索引?
如何为索引添加别名
创建索引的时候可以指定别名
为已有索引添加别名
多索引检索的实现方案
不使用别名的方案
方式一:使用逗号对多个索引名称进行分隔
方式二:使用通配符进行多索引检索
使用别名的方案
1) 使别名关联已有索引
2) 使用别名进行检索
思考:使用别名和基于索引的检索效率一样吗?
ElasticSearch文档操作详解
文档的基本操作
新增文档
新增单个文档
基本语法
示例
批量新增文档
基本语法
示例
实践练习:批量插入员工信息
查询文档
根据id查询文档
基本语法
示例
根据搜索关键词查询文档
基本语法
示例
删除文档
删除单个文档
基本语法
示例
批量删除文档
基本语法
示例
更新文档
更新单个文档
基本语法
示例
批量更新文档
基本语法
示例
并发场景下更新文档如何保证线程安全
实践练习:实现某金融企业理财平台的理财产品信息检索功能
1) 创建索引
2) 新增文档
3) 搜索数据
ElasticSearch文件建模最佳实践
Elasticsearch中如何处理关联关系
嵌套对象(Nested Object)类型
Join父子文档类型
宽表冗余存储
业务端关联
ElasticSearch文档建模的最佳实践
4.ElasticSearch复杂查询语法详解
ElasticSearch高级查询DSL语法详解
match_all ——匹配所有文档
基本语法
示例
精确匹配
term——单字段精确匹配查询
基本语法
示例
terms——多值精确匹配
基本语法
示例
range——范围查询
基本语法
示例
exists——是否存在查询
基本语法
示例
ids——根据一组id查询
基本语法
示例
prefix——前缀匹配
基本语法
示例
wildcard——通配符匹配
基本语法
示例
regexp——正则匹配查询
基本语法
示例
fuzzy——支持编辑距离的模糊查询
基本语法
示例
term set——用于解决多值字段中的文档匹配问题
基本语法
示例
全文检索
match——分词查询
基本语法
示例
multi_match——多字段查询
基本语法
示例
match_phrase短语查询
基本语法
示例
query_string——支持与或非表达式的查询
基本语法
示例
simple_query_string
基本语法
示例
bool查询
query context和filter context的区别
bool查询示例
highlight高亮显示实现
自定义高亮html标签
多字段高亮配置
地理空间位置查询
ElasticSearch8.x 向量检索
实践练习:实现CSDN博客文章搜索功能
1)根据博客数据模型构建索引
2)生成测试数据
3) 测试案例
搜索相关性评分详解
相关性的概述
什么是相关性
计算相关性评分
TF-IDF
BM25
通过Explain API查看TF-IDF
Elasticsearch自定义评分
自定义评分的策略
Index Boost: 在索引层面修改相关性
boosting: 修改文档相关性
negative_boost: 降低相关性
function_score: 自定义评分
rescore_query:查询后二次打分
多字段搜索场景优化
ElasticSearch聚合操作详解
聚合的概述
聚合的分类
指标聚合详解
桶聚合详解
管道聚合详解
实践练习:航班飞行数据分析并生成可视化图表
ES聚合分析不精准原因分析
聚合性能优化
5.ElasticSearch仿京东商品搜索服务实战
ElasticSearch整合SpringBoot实战
技术选型
JAVA实现方案
使用ElasticsearchRepository
使用ElasticsearchTemplate
使用ElasticsearchClient
项目实战:基于ElasticSearch实现京东商品搜索服务
图灵商城商品搜索服务业务场景分析
商品数据文档建模
基于DSL语句实现商品搜索功能
整合微服务实现商品搜索功能
6.ElasticSearch企业级生产最佳实践
ES 深度分页问题及其解决方案详解
什么是深度分页
深度分页不推荐使用from+size
适用场景:需要随机跳转不同页; 在10000条数据之内分页显示
深度分页问题的常见解决方案
方案一:尝试避免使用深度分页
方案二:Scroll Search滚动查询
适用场景:需要遍历全量数据
方案三: search_after查询
适用场景:仅需要向后翻页;超过10000条数据,需要分页
ElasticSearch自定义分词需求实战
分词概述
认识分词
中文分词案例: 杭州市长春药店
为什么需要分词
分词发生的阶段
写入数据阶段
执行检索阶段
分词器的组成
字符过滤器Character Filter——分词之前的预处理,过滤无用字符
切词器Tokenizer——用于分词
词项过滤器Token Filter——用来处理分词完成之后的词项,例如把大小写转换,删除停用词或同义词处理等
实践练习:自定义分词器实现对书籍作者的精确匹配
Ngram自定义分词实战
需求背景
当对keyword类型的字段进行高亮查询时,若值为123asd456,查询sd4,则高亮结果是<em>123asd456<em>。那么,有没有办法只对sd4高亮呢?
解决方案分析
Ngram分词实战
ElasticSearch高可用集群架构实战
为什么要使用ES集群架构
集群核心概念详解
集群
节点
分片
实践练习:搭建三节点ES集群
安装可视化客户端Cerebro
安装可视化客户端Kibana
ElasticSearch集群安全认证配置详解
ElasticSearch集群架构生产最佳实践
节点角色配置方案详解
节点角色详解
一个节点只承担一个角色的配置
增加节点的场景分析
高可用场景部署方案详解
读写分离架构
Hot & Warm 架构
ElasticSearch跨集群搜索(CCS)详解
如何对集群的容量进行规划
如何设计和管理分片
ElasticSearch性能调优最佳实践
ES底层读写工作原理分析
分片路由
ES写入数据的过程
ES读取数据的过程
根据id查询数据的过程
根据关键词查询数据的过程
写数据底层原理分析
如何提升ES集群的读写性能
提升集群读取性能的方法
数据建模
优化分片
提升写入性能的方法
建模时的优化
降低 Refresh的频率
降低Translog写磁盘的频率,但是会降低容灾能力
分片设定
调整Bulk 线程池和队列
项目实战:微服务日志采集与分析系统实战
为什么要使用 ELK
传统日志管理方式难以满足需求
ELK的整体架构分析
经典的ELK架构
整合消息队列+Nginx的ELK架构
数据处理管道Logstash详解
Logstash的概述
Logstash的工作原理分析
Logstash的安装与配置
实践练习:同步mysql数据到Elasticsearch
拓展:如何保证Mysql数据库到ES的数据一致性
轻量级采集器FileBeat详解
FileBeat的概述
FileBeat的工作原理分析
FileBeat与Logstash的区别
Filebeat的安装与配置
实践练习1:FileBeat采集tomcat服务器日志到Logstash
实践练习2: 整合ELK采集与分析tomcat日志
项目实战:微服务整合ELK实现日志采集与分析实战
实现思路分析
微服务整合Logstash实现日志采集
通过Kibana分析微服务日志

收藏

收藏
0 条评论
下一页