zoukankan      html  css  js  c++  java
  • ElasticSearch基础入门一

    一、基本概念

    1、什么是 ElasticSearch

      ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。

    2、主要术语

    节点 node

      它指的是Elasticsearch的单个正在运行的实例。单个物理和虚拟服务器容纳多个节点,这取决于其物理资源的能力,如RAM,存储和处理能力。它是群集的一部分,可以存储数据,并参与群集的索引和搜索功能。

    集群 cluster

      它是一个或多个节点的集合。 集群为整个数据提供跨所有节点的集合索引和搜索功能。

    分片 shards

      索引被水平细分为分片。这意味着每个分片包含文档的所有属性,但包含的数量比索引少。水平分隔使分片成为一个独立的节点,可以存储在任何节点中。主分片是索引的原始水平部分,然后这些主分片被复制到副本分片中。

      一个分片是一个底层的工作单元,它仅保存全部数据中的一部分,它是一个Lucence实例 (一个lucene索引最大包含2,147,483,519 (= Integer.MAX_VALUE - 128)个文档数量)

    副本 replicas

      Elasticsearch允许用户创建其索引和分片的副本。用于保障数据安全与分担检索压力

    索引 index

      它是不同类型的文档和文档属性的集合。索引还使用分片的概念来提高性能。

    类型/映射 type

      它是共享同一索引中存在的一组公共字段的文档的集合。

    文档 document

      它是以JSON格式定义的特定方式的字段集合。每个文档都属于一个类型并驻留在索引中。每个文档都与唯一标识符(称为UID)相关联。

    数据恢复 recovery

      代表数据恢复或叫数据重新分布,节点加入或退出时会根据负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

    数据源River

      从其它存储方式(如:数据库)同步数据到es的一个方法,读取river中的数据并把它索引到es。

    网关 gateway

      持久化存储方式索引存放到内存中,当内存满了时再持久化到硬盘。

    3.ElasticSearch 与 MySQL 的相关术语比较

    ElasticSearch

    MySQL

    索引Index

    数据库Database

    类型Type [7.0 可不用,8.0废弃]

    表Table

    文档

    记录(行)row

    字段Field

    数据列Column

    映射Mapping

    模式Schema

    Query DSL(查询专用语言)

    SQL(结构化查询语言)

    4基本原理及架构

    ① ES集群的简单结构

    ② ElasticSearch 架构图

     

    解释:

    Gateway代表ElasticSearch索引的持久化存储方式。在Gateway中,ElasticSearch默认先把索引存储在内存中,然后当内存满的时候,再持久化到Gateway里。当ES集群关闭或重启的时候,它就会从Gateway里去读取索引数据。比如LocalFileSystem和HDFS、AS3等。

    Distributed Lucene Directory,它是Lucene里的一些列索引文件组成的目录。它负责管理这些索引文件。包括数据的读取、写入,以及索引的添加和合并等。

    River,代表是数据源。是以插件的形式存在于ElasticSearch中。 

    Mapping,映射的意思,非常类似于静态语言中的数据类型。声明存储数据类型, 如何来索引数据,以及数据是否被索引到等。

    Search Moudle,搜索模块

    Index Moudle,索引模块

    Disvcovery,主要是负责集群的master节点发现。比如某个节点突然离开或进来的情况,进行一个分片重新分片等。这里有个发现机制。发现机制默认的实现方式是单播和多播的形式,即Zen,同时也支持点对点的实现。另外一种是以插件的形式,即EC2。

    Scripting,即脚本语言。包括很多,这里不多赘述。如mvel、js、python等。   

    Transport,代表ElasticSearch内部节点,代表跟集群的客户端交互。包括 Thrift、Memcached、Http等协议

    RESTful Style API,通过RESTful方式来实现API编程。

    3rd plugins,代表第三方插件。

    Java(Netty),是开发框架。

    JMX,是监控。

     

  • 相关阅读:
    [LintCode] 最长上升子序列
    [LintCode] 最长公共前缀
    [LintCode] A + B 问题
    [hihoCoder] 拓扑排序·一
    [LintCode] 拓扑排序
    [LintCode] 第k大元素
    [LintCode] 最小路径和
    [LeetCode] Factorial Trailing Zeros
    [LintCode] 尾部的零
    [LeetCode] Length of Last Word
  • 原文地址:https://www.cnblogs.com/L-moye/p/13025831.html
Copyright © 2011-2022 走看看