我不熟悉弹性搜索和kibana 。
我想以下列格式将_source字段解析为date
类型:“yyyy-mm-dd hh:mm:ss”,但没有运气。但是,如果field的值为“yyyy-mm-hh”格式,则该字段将被解析为日期类型。
我尝试在kibana的高级设置页面中修改dateFormat:scaled
字段,但没有运气。
以下是我的用例:
{
"name": "Amy",
"time_of_creation": "2016-12-21 10:46:55"
}
在我的情况下,{cnana} "time_of_creation"
字段被解析为String
,我想将此字段解析为"date"
类型。
提前致谢!
答案 0 :(得分:0)
我还无法添加评论,所以我发帖要求提供更多信息,然后编辑答案。
您可以发布您的地图和一份示例文件吗?
如果您不知道,这就是您获取映射的方式:
curl -XGET "http://localhost:9200/my_index/_mapping"
您可以获得一份示例文档。
curl -XGET "http://localhost:9200/my_index/_search"
答案 1 :(得分:0)
这是由于缺少时间格式的时区信息造成的 您可以在the official guide上查看相关解决方案 时区信息的时间应如下所示:
2016-11-11T11:11:11.111+0800
示例代码:
PUT my_index {
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date"
}
}
}
}
}
PUT my_index/my_type/1 { "date": "2015-01-01" }
PUT my_index/my_type/2 { "date": "2015-01-01T12:10:30Z" }
PUT my_index/my_type/3 { "date": 1420070400001 }
GET my_index/_search {
"sort": { "date": "asc"}
}
:)
答案 2 :(得分:0)
您的解析格式错误。你正在使用这个:
“yyyy-mm-dd hh:mm:ss”
请注意,您对月份和分钟使用相同的字母“mm”。几个月你必须使用大写“M”。另外,请记住,如果您使用“hh”指定小时数,则表示您正在解析12小时格式。如果您需要24小时格式,请改用“HH”。例如,此映射将以24小时格式正确解析日期:
"time_of_creation": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
您可以查看有关此主题的the documentation了解详情。
我希望这会有所帮助。
答案 3 :(得分:0)
date
类型的形式阅读该字段。
var date = new Date("2016-12-21 10:46:50.119");
var dateStr = date.toISOString()
dateStr现在是2016-12-21T05:16:50.119Z
,这是必需的格式。