Elasticsearch基本概念

索引

  • 索引是文档的容器,是一类文档的集合

    1. index 体现了逻辑空间的概念: 每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型。
    2. Shard 体现了物理空间的概念:索引中的数据分散在Shard上。
  • 索引这个词在 ElasticSearch 会有三种意思:

    1. 索引(名词)
      类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库(Database)。索引由其名称(必须为全小写字符)进行标识。
    2. 索引(动词)
      保存一个文档到索引(名词)的过程。这非常类似于SQL语句中的 INSERT关键词。如果该文档已存在时那就相当于数据库的UPDATE。
    3. 倒排索引
      关系型数据库通过增加一个B+树索引到指定的列上,以便提升数据检索速度。索引ElasticSearch 使用了一个叫做 倒排索引 的结构来达到相同的目的。
  • 与关系型数据库的类比



Type

Type 可以理解成关系数据库中Table。
之前的版本中,索引和文档中间还有个类型的概念,每个索引下可以建立多个类型,文档存储时需要指定index和type。从6.0.0开始单个索引中只能有一个类型,7.0.0以后将将不建议使用,8.0.0 以后完全不支持。

弃用该概念的原因:
  1. 我们虽然可以通俗的去理解Index比作 SQL 的 Database,Type比作SQL的Table。但这并不准确,因为如果在SQL中,Table 之前相互独立,同名的字段在两个表中毫无关系。但是在ES中,同一个Index 下不同的 Type 如果有同名的字段,他们会被 Luecence 当作同一个字段 ,并且他们的定义必须相同。所以我觉得Index现在更像一个表,而Type字段并没有多少意义。
  2. 目前Type已经被Deprecated,在7.0开始,一个索引只能建一个Type为_doc

文档(Document)

  • Index 里面单条的记录称为Document(文档)。等同于关系型数据库表中的行
  • Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位。
    1. 一部电影的具体信息/一张唱片的详细信息
  • 文档会被序列化JSON格式,保存在Elasticsearch中
    1. JSON对象由字段组成
    2. 每个字段都有对应的字段类型 (字符串/数值/布尔/日期/二进制/范围类型)
  • 每个文档都有一个Unique ID
    1. 你可以自己指定ID
    2. 或者通过Elasticsearch自动生成
  • 文档的源数据


#源数据用于标注文档的相关信息
#_index 文档所属的索引名
#_type 文档所属的类别名
#_id 文档的唯一id
#_source 文档的原始Json数据
#_version 文档的版本信息
#_seq_no 严格递增的顺序号,每个文档一个,Shard级别严格递增,保证后写入的Doc的_seq_no大于先写入的Doc的_seq_no
#primary_term primary_term也和_seq_no一样是一个整数,每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1
#found 查询的ID正确那么ture, 如果 Id 不正确,就查不到数据,found字段就是false。

节点

  • 节点是一个Elasticsearch的实例
    1. 本质上就是一个JAVA进程。
    2. 一台机器可以运行多个Elasticsearch进程,但是生产环境一般建议还是一台机器运行一个Elasticsearch实例。
  • 每个节点都有名字,通过配置文件配置,或者启动的时候 -E node.name=node1 指定
  • 每个节点在启动之后,会分配一个UID,保存在data目录下
Master-eligible 节点 和 Master 节点
  • 每个节点启动后,默认就是一个Master eligible 节点
  • Master-eligible节点可以参加选主流程,成为Master节点
  • 当第一个节点启动的时候,它会将自己选举成Master节点
  • 每个节点上都保存了集群的状态,但是只有Master节点才能修改集群的状态信息
    1. 集群状态(Cluster State),维护了一个集群中,必要的信息所有的节点信息所有的索引和其相关的Mapping 与 Setting 信息分篇的路由信息
Data 节点 和 Coordinating 节点
  • Data 节点
    1. 可以保存数据的节点,叫做Data Node。负责保存分片数据,在数据扩展上起到了至关重要的作用。
  • Coordinating 节点
    1. 负责接受Client的请求,将请求分发到合适的节点,最终把结果汇聚到一起。
    2. 每个节点默认都起到了Coordinating Node 的职责。
其他节点
  • Hot & Warm 节点
    1. 不同硬件配置的Data Node,用来实现Hot & Warm 结构,降低集群部署的成本。
  • Machine Learning Node
    1. 负责跑机器学习的Job。

分片

  • 主分片,用以解决数据水平扩展的问题,通过主分片,可以将数据分布到集群的所有节点之上
    1. 一个分片是一个运行的Lucene的实例。
    2. 主分片在索引创建时指定,后续不允许修改,除非Reindex。
  • 副本,用以解决数据高可用的问题,副本分片是主分片的拷贝
    1. 副本分片数,可以动态调整。
    2. 增加副本数,还可以在一定程度上提高服务可用性(读取的吞吐)。
  • 分片的设定
  1. 分片数设置过小
    导致后续无法增加节点进行水平扩展。
    导致分片的数据量太大,数据在重新分配时耗时。
  2. 分片数设置过大
    影响搜索结果的相关性打分,影响统计结果的准确性。
    单个节点上过多的分片,会导致资源浪费,同时也会影响性能。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341