我在ES7.8中以日期格式“yyyy-MM-dd”创建索引
"mappings": {
"_doc": {
"properties": {
"BaseLine": {
"type": "date",
"format": "yyyy-MM-dd"
},
但是,当我单击 map 上的“基线”字段时,在Filter上传递的实际值为yyyy-MM-dd00:00:00.000Z。谁能建议我如何在过滤器中获取正确的日期格式“yyyy-MM-dd”?
谢谢。
这是来自请求的样本文档
"hits" : [ { "_index" : "program_b", "_type" : "_doc", "_id" : "2137SD19.1", "_score" : 0.0, "_source" : { "SiteID" : 2137, "BaseLine" : "2020-04-26", "uk" : "2137SD19.1" } },
最佳答案
映射中的"format": "yyyy-MM-dd"
的作用仅仅是告诉ES您的日期值将以哪种格式显示在源文档中。
如您所见,您的源文档包含"BaseLine" : "2020-04-26"
,其格式与您要求ES期望的格式完全相同。当您为文档建立索引时,ES会正确解析您的BaseLine
date字段并索引一个表示该时间点的长值。
您在工具提示中看到的值(即Apr 26, 2020
)就是Kibana如何设置日期格式,您可以根据需要在“堆栈管理>高级设置”中更改日期。
最后,您在过滤器中看到的过滤器值(即2020-04-26T00:00:00.000Z
)是BaseLine
字段的ISO8601表示形式以及查询过滤器中使用的ES。
据我所知,一切看起来都是正确的。
关于elasticsearch - Elasticsearch解析日期字段的格式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63352320/