elasticsearch - 按日期划分数据

时间:2016-06-08 04:25:02

标签: elasticsearch

由于维护原因,我需要按日期创建分区索引(按每月拆分)。

例如,假设我需要删除10-2015个文档 - 我只会删除10-2015索引。

假设我有这个映射:

PUT my_logs
{
  "mappings": {
    "logs": {  
      "properties": { 
        "data":    { "type": "string"  }
      }
    }
  }
}

将数据放置在正确的日期非常重要,而无需在特定月份创建上述相同的映射。

实现它的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

使用index template,您可以实现自己想要的目标。

首先创建一个索引模板,如下所示:

PUT /_template/my_logs
{
  "template": "logs-*",
  "mappings": {
    "logs": {  
      "properties": { 
        "data":    { "type": "string"  }
      }
    }
  }
}

然后,每次将新文档索引到名称以logs-开头的索引时,此模板将在索引创建时应用。

PUT /logs-10-2015/logs/7234t27
{ 
   "data": "some data"
}