首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch(ES)-索引 (Index) 和 文档 (Document)

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

作者头像
运维小路
发布2025-08-04 09:54:16
发布2025-08-04 09:54:16
2470
举报
文章被收录于专栏:运维小路运维小路

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

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_index, order_index, web_logs_index)。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档