Elasticsearch7.x学习路线图
2022-08-24 17:24:14 34 举报
AI智能生成
Elasticsearch7.x学习路线图(摘录自微信公众号:铭毅天下Elasticsearch)
作者其他创作
大纲/内容
0、搜索引擎认知
0.1 搜索引擎是什么?
0.2 倒排索引 VS 正排索引
0.3 搜索相关性模型
0.4 分词
中文分词原理
中文分词开源工具
ik
ansj
hanlp
结巴
0.5 检索质量评估标准
精准率
召回率
1、Elasticsearch认知
1.1 Elasticsearch是什么?
1.2 Elasticsearch能干什么?
1.3 Elasticsearch和Lucene、solr的不同是什么?
1.4 Elasticsearch核心优势是什么?
1.5 实践:安装Elasticsearch最新版本V7.x+
关注最新特性
低版本升级
2、Elasticsearch基础
2.1 Elasticsearch基础概念
集群
节点
分片
副本
索引
类型
文档
路由
id序列
Mapping映射
动态映射
静态映射
模板
2.2 Elasticsearch基本数据类型
2.2.1 基础类型
2.2.1.1 string类型
keyword
text
2.2.1.2 数据类型
long
integer
short
byte
double
float
half_float
scaled_float
2.2.1.3 时间类型
date
2.2.1.4 布尔类型
boolean
2.2.1.5 二进制类型
binary
2.2.1.6 区间类型
integer_range
float_range
long_range
double_range
date_range
2.2.2 复杂类型
2.2.2.1 数组类型
Array
2.2.2.2 对象类型
Object
2.2.2.3 Nested类型
nested
2.2.3 特定类型
2.2.3.1 GEO地理位置类型
Geo-poing
Geo-shape
2.2.3.2 IP类型
ip
2.2.3.3 自动补全类型
completion
2.2.3.4 string长度类型
tocken_count
2.2.3.5 percolate类型
mumur3
2.2.3.6 父子索引 | Join类型
percolator
2.2.3.7 别名类型
alias
2.3 Elasticsearch基本检索类型
2.3.1 检索和过滤
2.3.1.1 检索和过滤的区别
2.3.1.2 检索和过滤的适用场景
2.3.2 结构化检索
2.3.2.1 精确匹配检索
term单值精确匹配
terms多值精确匹配
2.3.2.2 范围检索
range query
2.3.2.3 存在与否检索
exists query
2.3.2.4前缀检索
prefix query
2.3.2.5 通配符模糊检索
wildcard query
2.3.2.6 正则检索
regexp query
2.3.2.7 类型检索
type query
2.3.2.8 Id检索
ids query
2.3.2.9 模糊检索
fuzzy query
2.3.3 全文检索
2.3.3.1 分词全文检索
match query
2.3.3.2 短语检索
match_phrase query
2.3.3.3 短语前缀检索
match_phrase_prefix query
2.3.3.4 多字段匹配检索
multi_match query
2.3.3.5 支持与或非的字符串检索
query_string
2.3.3.6 简化的字符串检索
simple_query_string
2.3.4 复合检索
2.3.4.1 固定得分检索
2.3.4.2 bool组合检索
must
should
minimum should match
must_not
2.3.4.3 改变评分检索
Dis Max query
function score query
Boosting query
2.3.5 特定检索
2.3.5.1 父子文档检索
Nested检索
父子检索
2.3.5.2 Geo类型检索
2.3.5.3 相似文章检索
more like this
2.3.5.4 脚本检索
script
2.4 Elasticsearch基本聚合类型
2.4.1 Metric聚合
2.4.1.1 cardinality 去重
2.4.1.2 Avg 聚合
2.4.1.3 Max 聚合
2.4.1.4 Mix 聚合
2.4.1.5 Sum 聚合
2.4.1.6 ......
2.4.2 Buckting聚合
2.4.2.1 Terms分组聚合
2.4.2.2 立方图Histogram聚合
2.4.2.3 时间区间聚合Data histogram聚合
2.4.2.4 过滤Filter聚合
2.4.2.5 Nested聚合
2.4.2.6 ......
2.4.3 Pipeline聚合
2.4.3.1 Bucket Script聚合
2.4.3.2 Bucket Selector聚合
2.4.3.3 Bucket Sort聚合
2.4.3.4 Max/Min/AVG/Sum Bucket聚合
2.4.3.5 ......
2.4.4 Matrix聚合
后续版本可能会删除
2.5 Elasticsearch基本操作
2.5.1 Elasticsearch集群基本操作
2.5.1.1 集群状态分类
green
yellow
red
health API
2.5.1.2 集群状态监控
集群状态
state
集群统计
stats
集群任务管理
_tasks
节点信息
_nodes
活跃线程信息
_nodes/hot_threads
2.5.1.3 集群备份
_snapshot
_restore
2.5.2 Elasticsearch索引基本操作
2.5.2.1 增
put index
2.5.2.2 删
delete index
2.5.2.3 改
索引数据迁移
reindex
第三方工具
elasticsearch-dump
Elasticsearch-Exporter
logstash
elasticsearch-migration
修改副本数
注意索引一旦创建,分片数不可以更改,除非reindex
索引压缩
shrink
2.5.2.4 查
Get index 结合 _settings
2.5.3 Elasticsearch文档基本操作
2.5.3.1 增
单个文档写入
put document
批量写入
bulk写入
第三方导入
logstash_input_*
关系型数据库导入
mysql
sql server
oracle
pgsql
非关系型数据库导入
mongo
redis
大数据导入
hadoop
spark
flume
kafka-connector
kafka实时数据流
2.5.3.2 删
单个删除
delete document
批量删除
delete by query
2.5.3.3 改
单个修改
update结合script
批量修改
update_by_query
2.5.3.4 查
单个检索
详见2.3
批量检索
scroll游标遍历
分页
from+size
2.5.3.5 高亮
Unified Highlighter
默认
plain Highlighter
fvh Highlighter
适合大文件
2.5.3.6 推荐
Term Suggester
Phrase Suggester
Completion Suggester
Context Suggester
2.5.3.7 分词
中英文分词的区别
中文分词插件
ik
jieba
ansj
动态更新词典策略
2.5.3.8 同义词
同义词词典配置
2.5.3.9 调试
profile:true
2.6 Elasticsearch常用工具
kibana工具
xpack提升安全
Head浏览器插件
cerebro监控工具
3、Elasticsearch进阶
3.1 Elasticsearch 集群规划
3.1.1 Elasticsearch 节点数规划
Master主节点
Client路由节点
data数据节点
3.1.2 Elasticsearch 分片/副本规划
Elasticsearch每个分片支持数据量
业务数据分类数量VSES存储
3.1.3 Elasticsearch 堆内存核心原理
3.1.4 Elasticsearch 部署优化
堆内存优化设置
线程数、队列优化设置
候选主节点设置
更新中文分词词典
3.2 Elasticsearch 数据建模
3.2.1 Elasticsearch数据建模的重要性
3.2.2 Elasticsearch建模流程
3.3 Elasticsearch 生命周期管理
3.3.1 基于时间轴动态创建索引
template
rollover
3.3.2 定时清理索引
curator
3.3.3 Elasticsearch冷热数据分离
3.4 Elasticsearch 写入性能优化
3.4.1 Elasticsearch写入为什么慢
没有使用批量操作
使用批量操作,但值设置不对
ES队列线程池设置不合理
3.4.2 Elasticsearch写入提速
3.4.2.1 逐步调大批量请求数
3.4.2.2 增加刷新间隔
3.4.2.3 写入前关闭副本
3.4.2.4 禁用refresh
3.4.2.5 尽量使用自动生成id
3.5 Elasticsearch 检索性能优化
3.5.1 Elasticsearch检索为什么慢
索引设置不合理
如:所有数据写入固定一个索引
Mapping映射字段设置不合理
DSL设置不合理,有优化空间
如:wildcard
返回字段非常多
如:cont/html_cont
慢日志监控
监控集群状态
cpu、内存、堆内存使用率
确认是否有并发写入等
3.5.2 Elasticsearch检索提速
3.5.2.1 先确认是哪里慢
profile:rtrue分析,找到根本原因
3.5.2.2 硬件层面
预留足够多内存做内存缓存
更快的硬件
3.5.2.3 数据层面
提前数据建模
减少检索字段
Mapping优化
避免使用script
使用近似日期
只读数据force_merge
范围检索使用keyword而非range
3.5.2.4缓存方面
使用文件系统缓存
preference优化缓存利用率
3.6 Elasticsearch 磁盘读写优化
3.7 Elasticsearch 插件开发
3.8 Elasticsearch 集群高效监控
kibana分析+使用
3.9 Elasticsearch底层核心原理
写入原理
检索原理
......
4、Elasticsearch实践
4.1 Elasticsearch日志分析
借助ELK可视化分析
4.2 Elasticsearch全文检索
梳理需求,写出需求文档、设计文档
创建模板、索引、Mapping
导入数据
tika文档解析整合
检索实战
聚合实战
数据可视化
0 条评论
下一页