您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
elasticSearch日期索引名称中的数学支持-时区
发布时间:2021-08-25 21:28:39编辑:雪饮阅读()
前番有介绍了日期索引名称中的数学支持,也总结了日期数字索引名称的格式。
但是那个格式实际上并不是完整的,应该还缺少时区。
那么完整的格式应该是:
<static_name{date_math_expr{date_format|time_zone}}>
其中各个字段含义为:
· static_name 是索引的静态部分
· date_math_expr 是日期的表达式
· date_format 格式化,默认是YYYY.MM.dd
· time_zone 时区,默认是utc
那么这里这个time_zone其实只是一个可选的附属属性。
对于这个,网上以及官网都是解释的比较浅显。
以至于某人误解为创建时候的请求如:
http://localhost:9200/accountdetail-2021.08.01 12:00:00/type1/6 put
或者
http://localhost:9200/accountdetail-2021.08.01+12:00:00/type1/6 put
因为它有一个示例是这样:
<test-{now/d{YYYY.MM.dd\|+12:00}}>
不过这个只是查的示例,并没有创建的示例,所以我有自己尝试上面两种创建的情况。
那么最后这里需要注意的是这个time_zone只是一个附属可选参数,对索引名的匹配本身不会有影响,有影响的只是date_format,你会发现不同的date_format它将索引不同的索引名,而time_zone其实只是时区的一个偏差,例如东八区之类的。那么就比如-2d是两天前的意思,那么匹配格式假如是YYYY.MM那么匹配的索引名必定也是这样的,那么加或者不加time_zone只是影响了一个时间,那么假定加了time_zone那么匹配出的索引名中的时间假如是2021.08,但是如果没有加time_zone则可能会出现2021.07的索引名被匹配,虽然索引名不同,但是格式都是遵循YYYY.MM。
那么接下来就是具体的这个时区在日期索引名称中数学表达式的应用的具体请求如:
http://localhost:9200/<accountdetail-{now{YYYY.MM|+12:00}}>/_search get
响应结果如:
{
"took": 12,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "accountdetail-2021.08",
"_type": "type1",
"_id": "6",
"_score": 1.0,
"_source": {
"AccountID": "2021.08",
"bbq": "上次货币质入金额",
"PreFundMortgageOut": "上次货币质出金额",
"PreMargin": "上次占用的保证金",
"PreMortgage": "上次质押金额"
}
}
]
}
}
关键字词:elasticSearch,日期索引名称,数学支持,时区,time_zone