Elasticsearch 教程

Elasticsearch教程

Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 采用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

Elasticsearch 用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和许多其他语言中都是可用的。

根据 DB-Engines 的排名显示,Elasticsearch 是最受欢迎的企业搜索引擎,其次是 Apache Solr,也是基于 Lucene。

Elasticsearch 教程提供了基本的和Elasticsearch 数据库的高级概念。本教程基本上是为初学者以及想要学习 Elasticsearch 基础知识和高级概念的专业人士设计的。 

我们在本教程中提供的指南旨在提供有关如何使用 Elasticsearch 的知识。要使用 Elasticsearch,您应该具备 Java、Web 技术和 JSON 的基本知识。

什么是 Elasticsearch?

Elasticsearch 是一种 NoSQL数据库,是一个高度可扩展的文档存储引擎。类似于MongoDB,它以文档格式存储数据。它使用户能够执行高级查询以执行详细分析并集中存储所有数据。

Elasticsearch 数据库在 Apache 2.0 版下获得许可,并基于 Apache Lucene 搜索引擎。它是内置的 RESTful API,有助于完成请求和响应请求。它是 Elastic Stack 的重要组成部分,或者我们也可以说它是 Elastic Stack 的核心。它是开源的,这意味着它可以免费获得。因此,任何人都可以下载它而无需支付任何费用。

Elasticsearch 主要用于单页应用程序(SPM) 项目。世界各地的许多大型组织都在使用它。它支持完全基于文档而不是模式和表的全文搜索。还有一些其他基于搜索的引擎可用,但它们都基于表和模式。一个典型的 Elasticsearch 文档看起来像这样:

{
  "first_name": "Alex",
  "last_name": "Batson",
  "phone_no": "987654321",
  "email": abc@gmail.com,
  "city": "New York",
  "country": "USA",
  "occupation": "Software Developer",
}

为什么选择 Elasticsearch?

对于大型数据集,关系数据库的工作速度相对较慢,并且在执行查询时会导致从数据库中获得缓慢的搜索结果。 RDBMS 可以优化,但也带来了一系列限制,例如每个字段都不能被索引,以及为大量索引的表更新行

Elasticsearch 是一个 NoSQL 分布式数据库,这是一个解决方案快速检索和存储数据。

使用 Elasticsearch NoSQL 数据库还有一些其他原因:

  • Elasticsearch 允许您执行和组合各种类型的搜索,例如结构化和非结构化。它还有助于处理基于地理和矩阵的数据。
  • 您可以根据需要从导入的数据中检索结果。这一切都基于结构化查询集。
  • 它允许用户以任何他们想要的方式询问查询。
  • Elasticsearch 提供聚合,可帮助我们探索数据中的趋势和模式。
  • Elasticsearch 负责数据的查询和分析。
  • Elasticsearch 数据库有助于根据之前的搜索自动完成搜索查询。

Elasticsearch 的历史

Elasticsearch 由 Shay Banon 在 2010 年 2 月创建。他发布了 Elasticsearch 的第一个版本 0.4,但公司成立于 2012 年。 Elasticsearch 当前版本是 7.7,于 2020 年 5 月 13 日发布。

Elasticsearch History

Elasticsearch 做了各种改动,下面详细讨论:

说明
2010 年 2 月 2010 年 2 月,Shay Banon 发布了 Elasticsearch 0.4 的第一个版本。
2012 2012 年,Elasticsearch 公司成立。
2015 年 2 月 2014 年 2 月,Elasticsearch 1.0 发布。
2015 年 3 月 Elasticsearch 于 2015 年 3 月更名为 Elastic。
2015 年 10 月 另一个版本的 Elasticsearch 2.0 发布了。
2016 年 10 月 Elasticsearch 5.0 于 2016 年 10 月发布。
2017 年 1 月 Elasticsearch 5.2 于 2017 年 1 月发布。
2020 年 5 月 当前版本的 Elasticsearch 7.7 于 2020 年 5 月 13 日发布。

Elasticsearch 的使用

知道为什么要使用 Elasticsearch 之后?现在让我们讨论 Elasticsearch 的用途:

Elasticsearch Uses

  • Textual搜索

Elasticsearch 对于搜索纯文本很有用。它主要用于有大量文本的地方,但我们想用特定的短语搜索数据以获得最佳匹配。换句话说,我们搜索纯文本。

  • 产品搜索

Elasticsearch 使用属性和名称,可提供更快的产品搜索。

  • 地理搜索

Elasticsearch 还用于对任何产品进行地理定位。例如-可以使用"所有在印度提供 PGDM 课程的机构"这样的搜索查询来显示相关信息Elasticsearch 的研究所,该机构在印度提供 PGDM 课程。

  • 数据聚合

聚合的框架提供基于搜索查询的聚合数据。它允许使用简单的搜索查询对数据进行分组和执行计算和统计。聚合可以是

  • 自动建议

Elasticsearch 有一个自动建议功能,它提供了一些建议来完成一个不完整的查询。这允许用户输入几个字符,然后它会自动显示几个建议来完成查询。

  • 自动完成

基于之前的搜索, Elasticsearch 数据库帮助自动完成搜索查询。

  • JSON 文档存储

Elasticsearch 以文档的形式存储数据。文档是存储在 Elasticsearch 索引中的 JSON 对象。换言之,文档被视为可以编制索引的基本存储单元。

  • 指标和分析

它分析了一个仪表板,该仪表板包括多个电子邮件、日志、系统日志和数据库,可帮助企业了解其数据并提供可操作的见解。

Elasticsearch 可以在哪里使用?

  • Elasticsearch(ES) 用作存储和分析由不同系统生成的日志的工具。
  • 它具有无架构的性质。因此,它不需要添加新列来向表中添加新列。 Elasticsearch 允许向索引中的传入数据添加新列。它容纳了新列并使它们可用于进一步操作。
  • Elasticsearch 允许从传入连接中实时提取指标。因此,它适用于数据的时间序列分析。

下一章:Elasticsearch 优缺点

Elasticsearch 是一个分布式的面向文档的搜索引擎,用于以文档的形式存储数据。它有几个优点,也有一些缺点。下面详细讨论了 Elasticsearch 的以下主题:优势缺点功能让我们看看使用 El ...