Elasticsearch(ES)-索引 (Index) 和 文档 (Document)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

前面我们已经完成了Elasticsearch(ES)的部署,无论是单机还是集群,最终都要向里面写入数据,写入数据就需要先对下面2个概念有一定的理解,他们分别是:索引 (Index) 和 文档 (Document)。

索引 (Index)

  • 索引是文档的集合,是具有相似特征的文档的逻辑容器。它是 Elasticsearch 中数据组织和管理的最高层级。在关系型数据库 (RDBMS) 中,一个 Index 类似于一个 Table。比如一个 products 索引存放所有产品文档,一个 logs 索引存放所有日志文档。

  • 定义数据结构: 索引包含一个映射 (Mapping),它定义了索引中文档的字段结构:定义了字段名字和字段数据类型(类似M有SQL里面的表结构属性)。

  • 定义数据行为: 索引包含设置 (Settings),这些设置控制索引的物理存储和行为:物理体现,索引本身并不直接存储数据,数据实际存储在属于该索引的各个分片 (Shard) 中。每个分片本质上是一个独立的、功能完备的 Lucene 索引。

    • 分片数 (Number of Shards):一个索引被水平分割成多个底层单元(分片)。分片是 ES 分布式特性的基础。数据分布在分片上,分片可以分布在集群的不同节点上。这提供了水平扩展能力(处理更大的数据量和更高的吞吐量)。

    • 副本数 (Number of Replicas):每个主分片可以有零个或多个副本分片。副本是主分片的精确拷贝。它们提供:高可用性 (HA):如果持有主分片的节点挂了,副本分片可以被提升为主分片。提高读取吞吐量: 搜索请求可以在所有副本分片上并行执行。

文档 (Document)

文档是 Elasticsearch 中的 基本数据单元,是你存储和搜索的实体对象,Elasticsearch 中存储的核心数据单元(文档)本质上就是 JSON 格式的数据。数据一旦被写入成功,就不可修改。但是实际上我们是可以操作修改的(删除旧数据,创建新数据)。

唯一标识符: 每个文档在它所属的索引内都有一个唯一的 ID。这个 ID 可以是:你自己指定(比如使用业务相关的 ID,如产品 SKU、用户 ID)。由 ES自动生成(一个随机的 UUID)。

  • 元数据 (Metadata): 除了你定义的 JSON 字段,每个文档还有一些 Elasticsearch 自动添加的元数据字段,最重要的包括:

    • _index: 文档所属的索引名称。

    • _id: 文档的唯一 ID。

    • _source: 存储了你当初索引文档时提供的原始 JSON 数据。这是文档的核心内容。搜索时默认返回的部分就是 _source。你可以选择不存储它(但强烈不建议,因为很多功能依赖它)。

索引 (Index) 和 文档 (Document) 的关系

  1. 容器与内容: 索引是容器,文档是容器中的内容。一个索引包含多个文档

  2. 逻辑分组: 索引将具有相似结构或用途的文档逻辑地分组在一起(例如,customer_indexorder_indexweb_logs_index)。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值