es索引

2021-10-15  本文已影响0人  奋斗的韭菜汪

索引的概念

索引是一个虚拟的空间,类似于关系型数据库的table
一个索引至少由一个分片组成,索引可以包含一个主分片和多个副本分片

索引命名(建议)

业务类型命名:名称+数字版本号
日志类型命名:名称+时间

索引的创建:

DELETE example_001

GET example_001

PUT /example_001/_doc/1
{
  "name":"wangzx",
  "createDate":"2021-10-05"
}

GET example_001结果:

{
  "example_001" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "createDate" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1633443774651",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "1LrIo5mKTXm1oOvtHnQUsQ",
        "version" : {
          "created" : "7040299"
        },
        "provided_name" : "example_001"
      }
    }
  }
}
PUT /example-002
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

创建索引时指定一个索引别名可以通过别名来访问索引元数据信息(索引和别名是多对多关系,一个别名可以用在多个索引上,一个索引也可以有多个别名)

PUT /example-003
{
  "aliases": {
    "example003-aliases": {}
  }
}

GET /example-003
GET /example003-aliases   //和上面效果相同

3、滚动创建


image.png
image.png

如何滚动创建索引(先静态创建带别名的索引,然后post _rollover api)

PUT /example-005-rollover-index-000001
{
  "aliases": {
    "example-005-rollover": {}
  }
}

POST /example-005-rollover/_rollover

结果:
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "old_index" : "example-005-rollover-index-000001",
  "new_index" : "example-005-rollover-index-000002",
  "rolled_over" : true,
  "dry_run" : false,
  "conditions" : { }
}

索引的属性设置:

索引文档数据模型(表结构)

es数据模型与传统关系型数据库类比.png

文档模型:Json类型
元数据:_index、_type、_id、_version、 _seqno _primary_term、 其他

上一篇 下一篇

猜你喜欢

热点阅读