这是我对ElasticSearch模型中的属性之一的映射:
"timestamp":{
"type":"date",
"format":"dd-MM-yyyy||yyyy-MM-dd'T'HH:mm:ss.SSSZ||epoch_millis"
}
我不确定是否误解了文档。它清楚地说:
第一种格式也将用作从毫秒转换回字符串表示形式的格式。
这正是我想要的。我希望能够(如果可能)以dd-MM-yyyy
的形式直接读取日期。
不幸的是,当我转到文档本身时(因此,直接访问ElasticSearch的终结点,而不是通过应用程序层访问),我仍然得到:
"timestamp" : "2014-01-13T15:48:25.000Z",
我在这里想念什么?
答案 0 :(得分:1)
如@Val所述,您将获得值/格式的索引方式。
但是,如果您希望以特定的格式查看日期,而不管索引的格式如何,都可以使用Script Fields。请注意,它将在查询时应用。
下面的查询是您的解决方案。
POST <your_index_name>/_search
{
"query":{
"match_all":{ }
},
"script_fields":{
"timestamp":{
"script":{
"inline": "def sf = new SimpleDateFormat(\"dd-MM-yyyy\");def dt = new Date(doc['timestamp'].value);def mydate = sf.format(dt);return mydate;"
}
}
}
}
让我知道如何进行。