elasticsearch核心概念

警告
本文最后更新于 2021-11-02 23:09,文中内容可能已过时。

一、NRT(近实时)

从数据被写到ES到可被检索可以达到秒级

二、Document(文档)

理解为一个JSON数据。比如下面是一个商品文档

1
2
3
4
5
6
{
    "name": "键盘",
    "desc": "这是一个红轴键盘",
    "price": 1200,
    "brand": "cherry",
}

三、Field(字段)

文档中的属性,理解为json中的key

四、Index(索引)

一个index包含多个数据结构相似的document。

五、Type(类型)

从6.0.0开始单个索引中只能有一个类型,7.0.0以后将将不建议使用,8.0.0 以后完全不支持。 每个索引中可以包含多个type,type可以为index做逻辑分类,不同的分类可以定义不同的field。比如一个商品索引,可以包含许多不同种类的商品,不同种类的商品数据结构字段可能不相同。举个例子:

下面有两个商品

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
外设分类
{
    "name": "键盘",
    "desc": "这是一个红轴键盘",
    "price": 1200,
    "brand": "cherry"
}

食品分类
{
    "name": "方便面",
    "desc": "香辣牛肉面",
    "price": 15,
    "shelfLife": "6个月"
}

六、Mapping(映射)

映射是定义文档如何存储和索引的过程,所以创建索引时要指定索引和文档的映射关系。例如下面定义了字段的数据类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
    "mappings": {
        "peripheral": {
            "properties": {
                "name": {"type": "string"},
                "desc": {"type": "string"},
                "price": {"type": "double"},
                "brand": {"type": "string"}
            }
        }
    }
}

七、Shard(分片)

Shard也称为Primary Shard es可以将一个索引中的数据切分成多个较小的Shard,分布在不同的Node上存储。 ES会把查询发送给每个相关的分片,从而提高吞吐量。这样就可以解决单台机器性能瓶颈问题。 默认情况下有5个Primary Shard

八、Replica(副本)

Replica也称为Replica Shard 当某个Node发生故障时,shard会处于丢失状态,因此可以为每个shard创建多个副本。好处如下

冗余能力 当某个Node故障时可以使用其他Node中的replica来作为备用。 提高检索性能 Replica Shard也可以提供查询的能力,所以在执行多个检索操作的时候可以将请求发送到不通的副本中

默认情况下每个Primary Shard有1个Replica Shard。Replica Shard不能和Primary Shard在同一节点上。

九、索引模板

索引模板是用于定义索引的 mapping 和 settings 的机制。可以在 索引数据 之前定义索引的结构和属性。模板可以使用通配符或正则表达式来匹配索引名称,例如,可以使用"logs-*“来匹配以"logs-“开头的索引名称。模板可以包含字段映射、设置和分析器配置等信息,这些信息将被应用于新创建的索引。

请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%