elasticsearch7学习
2019-11-18 10:32:08 0 举报
AI智能生成
elasticsearch7学习
作者其他创作
大纲/内容
ElasticSearch7+
elasticsearch
搜索引擎认知
搜索引擎是什么?
倒排索引VS正排索引
搜索相关性模型
分词
中文分词原理
中文分词开源工具
ik
ansj
hanlp
结巴
检索质量评价标准
精准率
召回率
elasticsearch简介
基本定义
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据
目的
通过Restful隐藏luence的复杂性
简化全文搜索
特性
基于luence
全文搜索和分析引擎
分布式的实时文件存储
为什么它是近实时的?
分布式的实时搜索引擎
易于扩展,可处理PB级别的数据
elasticsearch基础
elasticsearch的基础概念
集群
节点
分片
number_of_shards
The number of primary shards in an index is fixed at the time that an index is created
副本
number_of_replicas
索引
索引是含有相同文档的集合,因为在7.0删除了type(类型)所以我们可以将索引理解为关系型数据库中的一张table
类型
文档
路由
id序列
mapping映射
动态映射
静态映射
常用数据类型
text、keyword、number、array、range、boolean、date、geo_point、ip、nested、object
模板
elasticsearch的基本数据类型
基础类型
string类型
keyword
不进行分词;keyword类型默认开启doc_values来加速聚合排序操作,占用了大量磁盘io 如非必须可以禁用doc_values
text
默认会进行分词,支持模糊查询(5.x之后版本string类型已废弃,请使用text)
数据类型
long
integer
short
byte
double
float
half_float
scaled_float
number
如果只有过滤场景 用不到range查询的话,使用keyword性能更佳,另外数字类型的doc_values比字符串更容易压缩。
时间类型
date
支持毫秒、根据指定的format解析对应的日期格式,内部以long类型存储。
布尔类型
boolean
只接受true、false 也可以是字符串类型的“true”、“false”
二进制类型
binary
区间类型
integer_range
对数据的范围进行索引;目前支持 number range、date range 、ip range。
float_range
long_range
double_range
date_range
复杂类型
数组类型
Array
es不需要显示定义数组类型,只需要在插入数据时用'[]'表示即可,'[]'中的元素类型需保持一致。
对象类型
Object
嵌套类型,不支持数组。
Nested类型
nested
嵌套类型,一种特殊的object类型,存储object数组,可检索内部子项。
特定类型
GEO地理位置类型
Geo-point
存储经纬度数据对。
Geo-shape
IP类型
ip
将ip数据存储在这种数据类型中,方便后期对ip字段的模糊与范围查询。
自动补全类型
completion
string长度类型
tocken_count
percolate类型
mumur3
父子索引join类型
percolator
别名类型
alias
并不实际存在,而是对已有字段的一种别名映射,搜索该字段与搜索实际字段返回的内容没有本质的区别。
7.0新增的数据类型
date_nanos
另一种时间类型,可精确到纳秒,用法类似date。
features
用来存储特征向量,数据不能为0和负数,查询时只能使用rank_feature query,该字段主要为支持后续机器学习相关功能做准备。
vector
存储特征数组,支持稀疏与稠密向量存储,该字段主要为支持后续机器学习相关功能做准备。
elasticsearch的基本检索类型
检索和过滤
检索和过滤的区别
检索和过滤的适用场景
结构化检索
精确匹配检索
term 单值精确匹配
terms 多值精确匹配
范围检索
range query
存在与否检索
exists query
前缀检索
prefix query
通配符模糊检索
wildcard query
正则检索
regexp query
类型检索
type query
id检索
ids query
模糊检索
fuzzy query
全文检索
分词全文检索
match query
短语检索
match_phrase query
短语前缀检索
match_phrase_prefix query
多字段匹配检索
multi_match query
支持与或非的字符串检索
query_string
简化的字符串检索
simple_query_string
复合检索
固定得分检索
bool组合检索
must
should
minimum should match
must_not
改变评分检索
Dis Max query
function score query
boostring query
特定检索
父子文档检索
Nested检索
父子检索
Geo类型检索
相似文章检索
more like this
脚本检索
script
elasticsearch的基本聚合类型
Metric聚合
cardinality 去重
Avg聚合
Max聚合
Min聚合
Sum聚合
。。。
Buckting聚合
Terms分组聚合
立方图Histogram聚合
时间区间聚合Data Histogram聚合
过滤Filter聚合
Nested聚合
Pipeline聚合
Bucket script聚合
Bucket Selector 聚合
Bucket Sort聚合
Max/Min/avg/Sum Bucket聚合
Matrix聚合
后续版本可能会删除
elasticsearch的基本操作
elasticsearch集群基本操作
集群状态分类
green
yellow
red
heallth API
集群状态监控
集群状态
state
集群统计
stats
集群任务管理
_tasks
节点信息
_nodes
活跃线程信息
_nodes/hot_threads
集群备份
_snapshot
_restore
elasticsearch索引的基本操作
增
put index
删
delete index
改
索引数据库迁移
reindex
第三方工具
elasticsearch-dump
elasticsearch-Exporter
logstash
elasticsearch-migration
修改副本数
注意索引一旦创建,分片数不可以更改,除非reindex
索引压缩
shrink
查
Get index结合_settings
elasticsearch文档的基本操作
单个文档写入
put document
批量写入
bulk写入
第三方导入
logstash_input_*
关系型数据库导入
mysql
Oracle
sql server
pgsql
非关系型数据库导入
redis
mongo
大数据导入
hadoop
spack
flume
kafka-connector
kafka实时数据流
单个删除
delete document
批量删除
delete_by_query
单个修改
update结合script
批量修改
update_by_query
单个检索
批量检索
scroll游标遍历
分页
from+size
高亮
Unified highlighter
默认
Plain highlighter
最适合在单一领域突出简单的查询匹配
Fast vector highlighter
适合大文件
推荐
Term suggester
Phrase Suggester
Completion Suggester
Context Suggester
中英文分词的区别
中文分词插件
ik分词器
jieba
动态更新词典
同义词
同义词词典配置
调试
profile:true
elasticsearch常用工具
kibana工具
Head浏览器插件
cerebro监控工具
x-pack
安装
curl -H \"Content-Type:application/json\" -XPOST http://localhost:9200/_xpack/license/start_trial?acknowledge=true(启用 trial license)
curl -H \"Content-Type:application/json\" -XPOST -u elastic 'http://localhost:9200/_xpack/security/user/elastic/_password' -d '{ \"password\" : \"111111\" }' 修改密码命令
配置
在elasticsearch.yml文件中添加
elasticsearch-6.3.0/bin/elasticsearch-setup-passwords interactive(设置用户名密码)
在kibana.yml文件中添加
分支主题
head插件访问
添加如图配置
http://localhost:9100/?auth_user=elastic&auth_password=you_pass
包含组件
elasticsearch进阶
elasticsearch集群规划
elasticsearch节点数规划
Master主节点
Client路由节点
data数据节点
elasticsearch分片/副本规划
elasticsearch每个分片支持的数据量?
业务数据分类梳理VSES存储
elasticsearch堆内存核心原理
elasticsearch部署优化
堆内存优先设置
线程数、队列优化设置
候选主节点设置
更新中文分词词典
elasticsearch数据建模
数据建模的重要性
建模的流程
elasticsearch生命周期管理
基于时间轴动态创建索引
template
rollover
定时清理索引
curator
冷热数据分离
elasticsearch写入性能优化
什么原因导致elasticsearch写入慢?
没有使用批量操作
使用批量操作,但值设置不对
ES队列线程设置不合理
怎么提升elasticsearch的写入速度
调大批量请求数
增加刷新间隔
写入前关闭副本
禁用refresh
尽量使用自动生成id
elasticsearch检索性能优化
什么原因导致elasticsearch检索这么慢
索引设置不合理
如:所有数据写入一个固定索引
mapping映射字段设置不合理
DSL设置不合理,有优化空间
如:wildcard
返回字段非常多
如:cont/html_cont
慢日志查询
监控集群状态
cpu、内存、堆内存使用率
确认是否有并行写入等
怎么提升elasticsearch的检索速度
确认是哪里慢了?
profile:true 分析,找到根本原因
硬件层面
预留足够多内存做内存缓存
更快的硬件
数据层面
提前数据建模
减少检索字段
mapping优化
避免使用script
使用近似日期
只读数据force_merge
范围检索使用keyword而非range
缓存方面
使用文件系统缓存
preference优化缓存利用率
elasticsearch磁盘读写优化
elasticsearch插件开发
elasticsearch集群高效监控
kibana分析+使用
elasticsearch底层核心原理
写入原理
检索原理
elasticsearch实践
elasticsearch 日志分析
安装elasticsearch7.X最新版本
安装logstash
安装kibana 可视化分析
elasticsearch 全文检索
需求梳理 写出需求文档 设计文档
创建模板 索引 mapping
导入数据
tika 文档解析整合
检索实战
聚合实战
数据可视化
收藏
收藏
0 条评论
下一页