![](/img/trans.png)
[英]Extract date (yyyyMMdd) from date field in ElasticSearch query
[英]Elasticsearch - how to extract date from date time field and add it to each document as a new field
我正在学习elasticssearch,在提供给我的一个演示数据库中,我有一个日期时间字段,名称为time_stamp。 日期数据另存为文本:
"time_stamp":"13-06-2019 04:44:23"
我想创建一个名为“日期”的新数据字段,并仅从每个文档中提取日期并将其存储在同一文档中。 当前的索引映射如下:
{
"vp1": {
"mappings": {
"dynamic": "false",
"properties": {
"client_id": {
"type": "text"
},
"encod": {
"type": "float"
},
"imagename": {
"type": "text"
},
"indx": {
"type": "text"
},
"machid": {
"type": "text"
},
"matchid": {
"type": "float"
},
"sequence_id": {
"type": "integer"
},
"time_stamp": {
"type": "text"
}
}
}
}
}
我正在使用python3与索引进行交互。
您首先需要更新映射以添加新字段,因为dynamic
设置设置为false,因此无法自动创建新字段:
PUT vp1/_mapping
{
"properties": {
"date": {
"type": "date"
}
}
}
然后,一个简单的方法来实现您想要的是这样做的:
POST vp1/_update_by_query
{
"script": {
"source": "ctx._source.date = /\\s/.split(ctx._source.time_stamp)[0]"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.