elasticsearch 核心概念

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

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

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

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

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

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

从 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个月"
}

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

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

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%