ElasticSearch 教程

  • 教程

    lucene
    ElasticSearch是一个实时的分布式开放源代码全文本搜索和分析引擎。它用于单页应用程序(SPA)项目中。Elasticsearch是用Java开发的开放源代码,并且被世界上许多大型组织使用。它是根据Apache许可版本2.0许可的。
    在本教程中,您将详细学习Elasticsearch的基础知识及其重要功能。
  • 概述

    Elasticsearch是基于Apache Lucene的搜索服务器。它由Shay Banon开发并于2010年出版。现在由Elasticsearch BV维护。它的最新版本是7.10.2。
    Elasticsearch是一个实时的分布式开放源代码全文本搜索和分析引擎。可从RESTful Web服务界面访问它,并使用无模式的JSON(JavaScript对象表示法)文档存储数据。它基于Java编程语言构建,因此Elasticsearch可以在不同平台上运行。它使用户能够以很高的速度浏览大量数据。
  • 一般特征

    Elasticsearch的一般功能如下-
    • Elasticsearch可扩展至PB级结构化和非结构化数据。
    • Elasticsearch可以替代MongoDB和RavenDB等文档存储。
    • Elasticsearch使用非规范化来提高搜索性能。
    • Elasticsearch是流行的企业搜索引擎之一,目前已被Wikipedia,The Guardian,StackOverflow,GitHub等许多大型组织使用。
    • Elasticsearch是一个开放源代码,可以在Apache许可版本2.0下使用。
  • 关键概念

    Elasticsearch的关键概念如下-
    节点(node)
    它指的是单个正在运行的Elasticsearch实例。单个物理和虚拟服务器可容纳多个节点,具体取决于它们的物理资源(例如RAM(内存),存储(硬盘)和处理能力)的能力。
    集群(Cluster)
    它是一个或多个节点的集合。群集为所有数据提供了跨所有节点的集体索引和搜索功能。
    索引(index)
    它是不同类型的文档及其属性的集合。索引还使用分片的概念来提高性能。例如,一组文档包含社交网络应用程序的数据。
    文档(Document)
    它是以JSON格式定义的特定方式的字段集合。每个文档都属于一种类型,并且位于索引内。每个文档都与称为UID的唯一标识符相关联。
    扇区(Shard)
    索引在水平方向上细分为碎片。这意味着每个扇区都包含文档的所有属性,但所包含的JSON对象的数量要少于索引。水平分隔使分片成为一个独立的节点,可以将其存储在任何节点中。主分片是索引的原始水平部分,然后将这些主分片复制到副本分片中。
    副本(Replicas)
    Elasticsearch允许用户创建其索引和扇区的副本。副本不仅有助于在发生故障的情况下提高数据的可用性,而且还可以通过在这些副本中执行并行搜索操作来提高搜索性能。
  • 优点

    • Elasticsearch是在Java上开发的,因此使其几乎可以在所有平台上兼容。
    • Elasticsearch是实时的,换句话说可以在此引擎中搜索一秒钟之前添加的文档
    • Elasticsearch是分布式的,因此可以轻松地在任何大型组织中进行扩展和集成。
    • 使用Elasticsearch中存在的网关概念,创建完整备份很容易。
    • 与Apache Solr相比,在Elasticsearch中处理多用户非常容易。
    • Elasticsearch使用JSON对象作为响应,这使得可以使用大量不同的编程语言来调用Elasticsearch服务器。
    • 除了不支持文本渲染的文档类型外,Elasticsearch支持几乎所有文档类型。
  • 缺点

    • 在处理请求和响应数据方面,Elasticsearch不提供多语言支持(仅在JSON中可用),与Apache Solr不同,后者可以CSV,XML和JSON格式。
    • 有时,Elasticsearch会出现分裂的情况。
  • Elasticsearch和RDBMS之间的比较

    Elasticsearch中,索引(index)类似于RDBMS(关系数据库管理系统)中的表。每个表都是行的集合,就像每个索引都是Elasticsearch中的文档的集合一样。
    下表对这些术语进行了直接比较-
    Elasticsearch RDBMS
    Cluster Database
    Shard Shard
    Index Table
    Field Column
    Document Row
  • 听众

    本教程专为希望通过简单的步骤学习Elasticsearch及其编程概念的软件专业人员而设计。它通过适当的示例描述了Elasticsearch的组件。本教程旨在以简单,系统的方式配置SAP HR模块。附带大量屏幕截图,对于顾问和最终用户都非常有用。在开始本教程之前,您应该对Java,JSON,搜索引擎和Web技术有基本的了解。通过RESTful API与Elasticsearch进行交互;因此,始终建议您了解RESTful API。
    如果您不熟悉这些概念中的任何一个,我们建议您在开始使用Elasticsearch之前获得基于这些主题的教程的帮助。