# Elasticsearch 简介
Elasticsearch
是一个开源的分布式 RESTful
搜索和分析引擎,能够解决越来越多不同的应用场景。
Elasticsearch
是一个高度可扩展的开源分布式全文本搜索和分析引擎。 它使您可以快速,近乎实时地存储,搜索和分析大量数据。 它通常用作支持具有复杂搜索功能和要求的应用程序的基础引擎 / 技术。提供了丰富的 RESTful
API.
这里 特别记住 搜索 和 分析 这两个词,后面我们花大量篇幅去学习 ES
的这两个功能,体验 ES
的强大之处。
# ES 发展历史
# 2010 年 2 月 第一次发布
# 2014 年 1 月 发布了 1.0 版本
# 2015 年 10 月,发布 2.0 版本
# 2016 年 10 月,发布 5.0 版本
- 支持 lucene 6.x. 性能提升。默认打分机制从 TF-IDF 改为 BM25
- 支持 Ingest 节点 / Painless Scripting / Completion Suggested 支持 / 原生的 Java Rest 客户端
- Type 标记为 deprecated , 支持 keyword 的类型
- 性能优化
- 内部引擎移除了避免同一文档并发更新的竞争锁,带来了 15%-20% 的性能提升
- Instant Aggregation ,支持分片上聚合的缓存
- 新增了 Profile API
# 2017 年 10 月, 发布 6.0 版本
- 支持 Lucence 7.x 版本
- 新增功能:跨集群复制,索引生命周期管理,SQL 的支持
- 更友好的升级和数据迁移:在主要版本之间的迁移更为简化,体验升级。 全新的基于操作的数据复制框架,可以加快数据恢复。
- 性能优化:有效存储稀疏字段的新方法,降低了存储成本。 在索引时进行排序,可以加快排序的查询性能。
# 2019 年 4 月,发布 7.0 版本
- 支持
Lucene 8.0
版本 - 重大改进 - 正式废除单个索引下多个 Type 的支持
7.1
开始,Security
功能免费使用ECK
- 支持Elasticsearch operator on kubernetes
- 新功能:
New Cluster Coordination
,Feature-Complete High Level Rest Client
,Script Score Query
- 性能优化:默认的
Primary Shard
数从5
改为1
,避免Over Sharding
. 性能优化,更快的Top K
# 2020 年 12 月 发布了 7.10 版本
ES
的索引速度提升了20%
。- 我们重新引入了时间点 (
pit
),这是一种保存搜索索引状态的轻量级方法。凹坑通过使 ui 更具反应性来改善最终用户体验。 - 默认情况下,我们使大多数 EQL 运算符和函数区分大小写。 我们还添加了:,一个新的不区分大小写的
equal
运算符。 专为安全用例而设计 REST API
对系统索引的访问已弃用- 系统索引的新线程池。添加了两个新的线程池:
system_read和system_write
。 这些线程池可确保对Elastic Stack
至关重要的系统索引(例如安全性或 Kibana 所使用的系统索引)在集群承受沉重的查询或索引负载时保持响应能力。system_read
是固定线程池,用于管理针对系统索引的读取操作的资源。 同样,system_write
是一个固定线程池,用于管理用于针对系统索引的写操作的资源。 两者的最大线程数等于可用处理器的 5 或一半,以较小者为准。
# ES 的生态圈
# elastic search
Elasticsearch
是 Elastic Stack
核心的分布式搜索和分析引擎。 Logstash
和 有助于收集,聚合和丰富您的数据并将其存储在 Elasticsearch
中。 使用 ,您可以交互式地探索,可视化和共享对数据的见解,并管理和监视堆栈。 Elasticsearch
是发生索引,搜索和分析 魔力的地方。
Elasticsearch
为所有类型的数据提供近乎实时的搜索和分析。 无论您是结构化文本还是非结构化文本,数字数据或地理空间数据, Elasticsearch
都能以支持快速搜索的方式有效地对其进行存储和索引。 您不仅可以进行简单的数据检索,还可以聚合信息来发现数据中的趋势和模式。 随着数据和查询量的增长, Elasticsearch
的分布式特性使您的部署可以随之无缝地增长。
# kibana
Kibana
是一个开源的分析和可视化平台。使用 Kibana
来探索你的 Elasticsearch
数据,然后建立漂亮的可视化和仪表板。
Kibana
具有管理弹性栈的 UI。管理您的安全设置,分配用户角色,拍摄快照,卷起您的数据,以及更多,都从一个 Kibana UI
的便利。
Elastic
栈解决方案的集中式中心。从日志分析到文档发现.
# beats
Beats
是您作为代理安装在服务器上的开源数据发送者,用于将运营数据发送到 Elasticsearch
。其提供了数据审核,日志文件,云数据,可用性,系统日志,指标,网络流量, Windows
事件记录等功能。 Beats
可以将数据直接发送到 Elasticsearch
或通过 Logstash
发送,您可以在此处进一步处理和增强数据,然后再在 Kibana 中进行可视化。
beats
为不同的功能,提供了不同的组件,可以根据自己的需求,安装特定的产品.
# logstash
Logstash
是一个具有实时管道功能的开源数据收集引擎。 Logstash
可以动态地统一来自不同数据源的数据,并将数据规范化到您选择的目的地。为各种高级下游分析和可视化用例清理和民主化所有数据。虽然 Logstash
最初推动了日志收集方面的创新,但它的功能远远超出了这个用例。任何类型的事件都可以通过大量的输入、过滤和输出插件来丰富和转换,并且使用许多本地编解码器进一步简化了吸收过程。
# x-pack
x-pack
是 elasticsearch
的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,可以轻松的启用或者关闭一些功能
# ES 的应用场景
- 将搜索框添加到应用或网站
- 存储和分析日志,指标和安全事件数据
- 使用机器学习来实时自动建模数据行为
- 使用
Elasticsearch
作为存储引擎自动化业务工作流程 - 使用
Elasticsearch
作为地理信息系统(GIS
)管理,集成和分析空间信息 - 使用
Elasticsearch
作为生物信息学研究工具来存储和处理遗传数据
…
# 最后
期望与你一起遇见更好的自己