美文网首页
再次学习ES--2--ES的基础知识

再次学习ES--2--ES的基础知识

作者: lionel880 | 来源:发表于2018-12-06 11:25 被阅读0次

    ES的学习资料,一个官方给的 reference最新版
    2是官方的Elasticsearch: The Definitive Guide [2.x] ,但这个只有2.X版本的,其中Getting Started将分档的刷入过程,原理都讲的很详细

    1.ES的基本概念

    • 1.索引
      与Lunece相比,es的索引可能由一个或多个Lucene索引构成,具体细节由es的 分片,复制机制决定。每一个索引都有一个UUID相对应,查看ES目录的data文件夹,你会发现,ES其实存储的是UUID,所以当你一个单机带着旧数据加入集群时,容易发生bug,如index has already exists

    • 2.文档
      一个文档就是一个Json对象,最后存储都会存储为Lucene文档

      1. 映射
        文档写入索引前要进过分析阶段,用户设置参数,决定是否要分析, 采用什么分析策略,有自动映射,但有时候也有手动配置需求
    • 4.类型,type(未来会被移除)
      这个之前一直搞混了,type是针对文档来说的,es为了一个索引能存储多种 文档,并为每个文档提供不同的映射
      这个着重强调一下,毒瘤,之前总搞混
      Type 已经打算在6.0移除了,所以在设计 elasticsearch 的数据结构的时候,要注意到后面版本的变化。
      之前在很多的文章和 PPT 都有介绍Elasticsearch 的几个核心概念,Index 对应 DB,Type 对应表,Document 对应记录,然后就真的按数据库的路子用,一个 index 里面 n 个 type 的情况大有存在,但是在 Lucene 里面其实有很多问题,所以现在es移除也是考虑了很久的。
      Type 移除大概分为两个阶段:
      第一步,不支持新的索引创建多个 type,一个索引只有一个 type,名称也是固定的,不能修改(6.X已经做到)
      第二步,移除
      所以以后就一个index对应一个mapping,不在需要type这种蠢的概念了

    • 5 节点
      单个ES服务实例称为节点,节点由名称标识,启动时会生成通用唯一标识符 UUID

    • 6.集群
      对应节点的概念,多个节点何在一起协同处理就是集群 cluster
      集群状态,red,yellow,green。
      yellow时:所有数据均可用,但有一些副本尚未分配,即还不是处于高可用的状态
      red时:某些数据不可用,注意此时仍然有部分功能是可用的

    • 7 分片
      因为要解决超过单机限制,采用了集群方案,分片的概念就顺理成章了,ES将数据散布到多个物理Lucene索引上,这些Lucene就称为shard分片,这个过程就是分片处理 sharding。
      每个分片其实都是一个Lucene索引,由于lucene自身的限制,最大包含文档为 Integer..MAX_VALUE-128,2,147,483,519

    • 8 副本
      这个是为了解决高可用的方案,以防止数据丢失,为每个分片创建冗余,它允许你扩展吞吐量,因为在副本上也可以执行搜索

    • tip:副本和分片是可以进行动态修改的,可以使用_shrink和_split API,但最好还是预先计划正确的数量,默认为5个分片和1个副本。

    相关文章

      网友评论

          本文标题:再次学习ES--2--ES的基础知识

          本文链接:https://www.haomeiwen.com/subject/kycrpftx.html