# 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 版本

  1. ES 的索引速度提升了 20%
  2. 我们重新引入了时间点 ( pit ),这是一种保存搜索索引状态的轻量级方法。凹坑通过使 ui 更具反应性来改善最终用户体验。
  3. 默认情况下,我们使大多数 EQL 运算符和函数区分大小写。 我们还添加了:,一个新的不区分大小写的 equal 运算符。 专为安全用例而设计
  4. REST API 对系统索引的访问已弃用
  5. 系统索引的新线程池。添加了两个新的线程池: system_read和system_write 。 这些线程池可确保对 Elastic Stack 至关重要的系统索引(例如安全性或 Kibana 所使用的系统索引)在集群承受沉重的查询或索引负载时保持响应能力。 system_read 是固定线程池,用于管理针对系统索引的读取操作的资源。 同样, system_write 是一个固定线程池,用于管理用于针对系统索引的写操作的资源。 两者的最大线程数等于可用处理器的 5 或一半,以较小者为准。

# ES 的生态圈

ElasticsearchElastic 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-packelasticsearch 的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,可以轻松的启用或者关闭一些功能

# ES 的应用场景

  • 将搜索框添加到应用或网站
  • 存储和分析日志,指标和安全事件数据
  • 使用机器学习来实时自动建模数据行为
  • 使用 Elasticsearch 作为存储引擎自动化业务工作流程
  • 使用 Elasticsearch 作为地理信息系统( GIS )管理,集成和分析空间信息
  • 使用 Elasticsearch 作为生物信息学研究工具来存储和处理遗传数据

# 最后

期望与你一起遇见更好的自己

期望与你一起遇见更好的自己

更新于 阅读次数

请我喝[咖啡]~( ̄▽ ̄)~*

方小白 微信支付

微信支付

方小白 支付宝

支付宝

方小白 numberpay

numberpay