elasticsearch每天滚动拆分索引

在 Elasticsearch 中,可以通过使用索引别名和索引模板来实现每天滚动拆分索引。

首先,您需要创建一个索引模板,以便在每天创建新的索引时,自动应用一组索引设置。以下是一个示例索引模板,它将每天的索引名称设置为 "logs-YYYY.MM.dd",并定义了一些索引设置:

PUT _template/logs
{
  "index_patterns": ["logs-*"],
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "timestamp": {
        "type": "date"
      },
      "message": {
        "type": "text"
      }
    }
  }
}

然后,您需要创建一个索引别名,以便在搜索时引用所有滚动的索引。以下是一个示例,它将别名 "logs" 映射到 "logs-*" 模式的所有索引:

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "logs-*",
        "alias": "logs"
      }
    }
  ]
}

现在,每天都会创建一个新的索引,并且每个索引的名称将包含日期。例如,今天的索引名称将是 "logs-2023.03.08"。由于索引别名 "logs" 映射到 "logs-*" 模式的所有索引,因此可以使用 "logs" 别名搜索所有索引,而不必手动指定特定索引名称。

请注意,索引别名和索引模板需要在索引创建之前设置,否则已经创建的索引不会自动添加到别名中或应用索引模板的设置。

你可能感兴趣的:(elasticsearch)