首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curator reindex操作-动态索引名称

curator reindex操作-动态索引名称
EN

Stack Overflow用户
提问于 2018-10-15 22:44:30
回答 2查看 1.1K关注 0票数 1

我们有内务脚本每天晚上运行,以重新索引从每日指数到每月指数,并删除每日指数

代码语言:javascript
复制
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

当我使用应用程序时-%Y.%m,如下所示-它不工作。

代码语言:javascript
复制
  request_body:
    source:
      index: REINDEX_SELECTION
    dest:
      index: application-%Y.%m
EN

回答 2

Stack Overflow用户

发布于 2018-10-19 20:28:35

答案是在表达式中使用date math。对于您来说,一个有效的示例可能是:

代码语言:javascript
复制
dest:
  index: <application-{now/M{YYYY.MM}}>

更大的问题可能是,“如何确保这个月的最后一天不会出现在下个月的索引中?”这种方法绝对会导致这种结果。如果你不在乎,那也没关系。如果你愿意,我们可以谈谈潜在的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2019-12-14 02:08:49

现在这可能不再有用了,但我在寻找相同问题的答案时发现了这个问题,下面是我是如何解决它的(在untergeek的初始答案的帮助下):

代码语言:javascript
复制
actions:
  1:
    action: create_index
    description: "Create index: This is a monthly task"
    options:
      name: '<security-{now/d-1d{YYYY.MM}}>'
      continue_if_exception: True
  2:
    action: reindex
    description: "Reindex daily into monthly"
    options:
      wait_interval: 1
      max_wait: -1
      request_body:
        source:
          index: '<security-{now/d-1d{YYYY.MM.dd}}>'
          query:
            term:
              user: kimchy
        dest:
          index: '<security-{now/d-1d{YYYY.MM}}>'
    filters:
    - filtertype: none
  3:
    action: delete_indices
    description: "Delete yesterday's daily index"
    options:
      ignore_empty_list: True
    filters:
    - filtertype: pattern
      kind: regex
      value: '^security-\d{4}\.\d{2}.\d{2}'
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 1
    - filtertype: age
      source: name
      direction: younger
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 2

我还做了一个查询过滤器,作为可以忽略的reindex的一部分,并且还将删除限制到恰好是1天前的索引,因此如果计划的reindex失败,后续的curator作业将不会删除该索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52819296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档