如何在elasticsearch rest请求体中使用表达式?

dly7yett  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(2)|浏览(448)

是否可以在elasticsearch rest api主体中使用表达式?我知道您可以在rest查询字符串中使用日期数学表达式,但在rest请求体中似乎找不到这样的示例。
我的目标是创建一个ilm策略和索引模板,该模板将滚动索引并考虑索引名称上日期的每日更改。索引名称的一个例子是index-2020.12.17

PUT /_index_template/index_template
{
  "index_patterns": ["%3Cindex-%7Bnow%2Fd%7D%3E"],                 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "index_policy",      
      "index.lifecycle.rollover_alias": "%3Cindex-%7Bnow%2Fd%7D%3E"    
    },
    "aliases": {
    "%3Cindex-%7Bnow%2Fd%7D%3E": {
        "is_write_index": true
    }
  }
}
w80xi6nr

w80xi6nr1#

这不是ilm的工作方式。 index_patterns 应该只使用与索引名匹配的通配符 rollover_alias 应该是应用程序写入的常量字符串
你不需要定义任何 alias 要使ilm发挥作用 rollover_alias 是给你的。
因此,您的索引模板定义应该如下所示:

PUT /_index_template/index_template
{
  "index_patterns": ["index-*"],                 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "index_policy",      
      "index.lifecycle.rollover_alias": "index-write"    
    },
    "aliases": {
    }
  }
}

然后可以使用以下命令引导初始索引:

PUT index-2020.12.17-000001
{
  "aliases": {
    "index-write": {
      "is_write_index": true
    }
  }
}

然后您的客户机应用程序(filebeat、logstash等)可以简单地将它们的数据发送到 index-write 所有的滚动都是由你在 index_policy 生命周期策略。

PUT index-write/_doc/1
{ ... }

从7.9开始,有一种更简单的方法使用数据流,它不需要像上面那样进行任何引导。您只需创建索引模板,如下所示:

PUT /_index_template/index_template
{
  "index_patterns": ["index"],                 
  "data_stream": {},
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "index_policy"   
    }
  }
}

然后你可以像这样简单地索引你的数据

PUT index/_doc/1
{ ... }

在场景后面,数据流索引将根据 index_policy 生命周期策略。

e3bfsja2

e3bfsja22#

在restapi中可以有日期数学表达式,有关更多信息,您可以在这里查看es官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html.
对于ilm策略,您可以在此处找到信息https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index-lifecycle-management.html

相关问题