Elasticsearch基本概念

2019-12-12  本文已影响0人  Splunker

索引


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 文档所属的索引名
#_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。

节点

Master-eligible 节点 和 Master 节点
Data 节点 和 Coordinating 节点
其他节点

分片

  1. 分片数设置过小
    导致后续无法增加节点进行水平扩展。
    导致分片的数据量太大,数据在重新分配时耗时。
  2. 分片数设置过大
    影响搜索结果的相关性打分,影响统计结果的准确性。
    单个节点上过多的分片,会导致资源浪费,同时也会影响性能。
上一篇 下一篇

猜你喜欢

热点阅读