ELK(4) es的数据存储含义

本文深入解析Elasticsearch中的核心概念,如索引、类型、文档、分片及副本的作用,阐述它们如何支撑大规模数据的高效存储与检索。同时,文章详细介绍了映射(mapping)机制,解释了它如何影响数据的索引方式,以及为何在特定场景下需要自定义映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储格式

在这里插入图片描述
在这里插入图片描述
_index:文档所在索引名称
_type:文档所在类型名称
_id:文档唯一id
_uid:组合id,由_type和_id组成(6.x后,_type不再起作用,同_id
_source:文档的原始Json数据,包括每个字段的内容
_all:将所有字段内容整合起来,默认禁用(用于对所有字段内容检索)

名字解释

索引 index

类比传统中的数据库,不同业务的检索通过索引名 索引名必须是全小写字母,es 可以把索引数据存放到另一台服务器上,也可以sharding后存放多台服务器上,每一个索引有一个或多个分片,每个分片可以有多个副本

类型 type

Es6之后,一个index中只能有一个type
在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型
类比数据库中的表,后期高版本会去除

字段Field

相当于是数据表的字段,对文档数据根据不同属性进行的分类标识

document

一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON(Javascript Object Notation)格式来表示,而JSON是一个到处存在的互联网数据交互格式。在一个index/type里面,你可以存储任意多的文档。注意,尽管一个文档,物理上存在于一个索引之中,文档必须被索引/赋予一个索引的type。

found

是否被找到

_source

存储的字段

映射(mapping)

Mapping,就是对索引库中索引的字段名及其数据类型进行定义。
ES默认是动态创建索引和索引类型的mapping的。这就相当于无需定义Solr中的Schema,无需指定各个字段的索引规则就可以索引文件,很方便。但有时方便就代表着不灵活。比如,ES默认一个字段是要做分词的,但我们有时要搜索匹配整个字段却不行。如有统计工作要记录每个城市出现的次数。对于NAME字段,若记录“new york”文本,ES可能会把它拆分成“new”和“york”这两个词,分别计算这个两个单词的次数,而不是我们期望的“new york”。

这时,就需要我们在创建索引时定义mapping。此外,es支持多字段结构,例如:我们希望两个字段中有相同的值,一个用于搜索,一个用户排序;或者一个用于分词器分析,一个用于空白字符。
在这里插入图片描述

数据概念

分片

一个分片本身就是一个完整的搜索引擎。文档存储在分片中,而分片则会被分配到集群中节点中,随着集群的扩大和缩小,es会自动地将分片在节点之间进行迁移,以保证集群能保持一种平衡。

1.如果我们的索引数据量很大,超过硬件存放单个文件的限制,就会影响查询请求的速度。Es引入了分片技术;
2.将一个完整的index分成若干部分存储在相同或不同的节点上。
3. 每个分片都有自己搜索,更新,删除等和index一样全部功能的一小块。
4.好处:水平分割和扩展我们存放的内容索引;分发和并行跨碎片操作提高性能/吞吐量;
5.假设索引为firsttime,在elasticsearch-xx/data/elasticsearch/0/indices/firsttime下有5个分片,从0-4

副本:replica

1.冗余备份,防止数据丢失;
2.负载均衡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值