ElasticSearch 索引创建

0 阅读2分钟

方式一:动态创建

概念定义

索引无需提前创建,第一条数据插入即可创建完成。

应用场景

非严格数据模型限制规范的场景、日志、监控

示例

创建一个索引

POST /postkarte_001/_doc 
{ "name": "postkarte", 
  "createDate": "2026-01-19", 
  "teams": [ "james", "mic", "tom" ] 
}

image.png

查看索引

GET postkarte_001

image.png

删除索引

DELETE postkarte_001

image.png

再次查询发现查询不到了

image.png

方式二: 静态创建

概念

根据客观背景提前创建好索引,提前做好索引数据分布与相应设置。

应用设置

业务系统数据需要严格规范。索引分布在极端情况下需要消耗系统资源,避免集中创建索引时,集群响应慢。

创建

PUT postkarte_002 
{

}

image.png

方式三: 滚动创建/自动创建

创建别名

创建一个索引同时指定别名

PUT postkarte_003 
{ "aliases": { "post-alias": {} } }

image.png

通过别名进行查询

GET post-alias

image.png

head插件中会显示一个粉色的别名

image.png

创建别名的第二种方式,可以使用如下方式进行创建。

PUT postkarte_002/_alias/post-alias-002

image.png

滚动创建概要

rollover特性

  1. 利用别名alias
  2. 利用rollover特性
  3. 自动化滚动创建,达到一定阈值创建

应用场景

  1. 日志领域,需要自动化根据触发条件滚动创建。
  2. 大数据领域,单索引能力局限需要创建很多。

创建语法

语法一

POST /<rollover-target>/_rollover/<target-index>

语法二

POST /<rollover-target>/_rollover/

语法三

PUT /postkarte-rollover-index-000001
{
    "aliases": {
        "postkarte-rollover-index": {}
    }
}

实际操作

创建一个带有别名的索引

PUT /postkarte-rollover-index-000001 
{ "aliases": { "postkarte-rollover-index": {} } }

image.png

将上面创建的索引进行滚动操作

POST postkarte-rollover-index/_rollover

image.png

查看索引,可以看到指向了000002

image.png