ElasticSearch 索引创建

16 阅读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

带触发条件的滚动创建

滚动索引创建触发条件

  1. 索引最大文档数
  2. 索引创建时间
  3. 索引最大大小

创建

POST /postkarte-rollover2-index/_rollover 
{
    "conditions": {
        "max_docs": 2,
        "max_age": "1d",
        "max_size": "5gb"
    }
}

参数说明

  • conditions: 触发条件
  • max_docs: 文档数
  • max_age: 索引创建时间
  • max_size: 索引磁盘大小

image.png