策展人reindex动作 - 动态索引名称

问题描述 投票:1回答:1

我们有每天晚上运行的管家脚本,从每日指数重新索引到月度指数并删除每日指数

actions:
  1:
    description: "Reindex application-YYYY.MM.dd into application-YYYY.MM"
    action: reindex
    options:
      disable_action: False
      wait_interval: 9
      max_wait: -1
      request_body:
        source:
          index: REINDEX_SELECTION
        dest:
          index: application-2018.10 #change this
    filters:
    - filtertype: pattern
      kind: prefix
      value: application-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 1
  2:
    action: delete_indices
    description: >-
      Delete application-%Y.%m.%d indices older than 1 day
    options:
      ignore_empty_list: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: regex
      value: '^application-\d{4}\.\d{2}.\d{2}'
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 1

我们如何动态制作月度索引名称?我想做这样的应用程序 - %Y。%m而不是硬编码年和月应用程序-2018.10

当我使用application-%Y.%m如下 - 它不起作用。

  request_body:
    source:
      index: REINDEX_SELECTION
    dest:
      index: application-%Y.%m
elasticsearch elasticsearch-5 logstash-configuration elasticsearch-curator
1个回答
0
投票

答案是在表达式中使用date math。一个有效的例子可能是:

dest:
  index: <application-{now/M{YYYY.MM}}>

更大的问题可能是,“你如何确保月份的最后一天不会在下个月的指数中结束?”这种方法绝对会导致这一结果。如果你不在乎,那就没关系。如果您愿意,我们可以讨论可能的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.