ElasticSearch中的基本概念

1、关系型数据库 VS elasticsearch

2、索引(Index)

一个索引就是一个拥有几分相似特征的文档的集合。比如说,可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。
一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。

3、文档(Document)

  • ES是面向文档的,文档是所有可搜索数据的最小单位。
    • 一部电影的具体信息
    • 一张唱片的详细信息
    • 一篇文档的具体内容
  • 文档会被序列化成JSON格式,保存在ES中。
    • JSON对象由字段组成
    • 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)
  • 每个文档都有一个Unique ID
    • 可以通过指定ID或者通过ES自动生成。
  • 一篇文档包含了一系列字段,类似数据库表的一条记录
  • JSON文档,格式灵活,不需要预先定义格式
    • 字段的类型可以指定或者通过ES自动推算
    • 支持数组/嵌套

文档元数据

元数据,用于标注文档的相关信息

  • _index:文档所属的索引名
  • _type:文档所属的类型名
  • _id:文档唯一ID
  • _source:文档的原始JSON数据
  • version:文档的版本号,修改删除操作version都会自增1
  • seq_no:和version一样,一旦数据发生更改,数据也是一直累计的。Shard级别严格递增,保证后写入的Doc的seq_no大于先写入的Doc的seq_no。
  • primary_term:主要是用来恢复数据时处理当多个文档的_seq_no一样时的冲突,避免Primary Shard上的写入被覆盖。每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1。

 

posted @ 2022-11-15 23:46  晓123  阅读(36)  评论(0编辑  收藏  举报