Elasticsearch如何将日期转换为JSON字符串表示?
我有一个关于Elasticsearch如何将日期转换为JSON字符串表示的问题。我在本例中使用的是1.4.2版 首先,将包含名为“postDate”的日期字段的简单文档发布到类型为“datetest”的“myindex”中:Elasticsearch如何将日期转换为JSON字符串表示?,json,datetime,
elasticsearch,Json,Datetime,
elasticsearch,我有一个关于Elasticsearch如何将日期转换为JSON字符串表示的问题。我在本例中使用的是1.4.2版 首先,将包含名为“postDate”的日期字段的简单文档发布到类型为“datetest”的“myindex”中: curl -XPOST "http://localhost:9200/myindex/datetest/" -d' { "content": "Hello World!", "postDate": "2009-11-15T14:12:12" }' 我们可以
curl -XPOST "http://localhost:9200/myindex/datetest/" -d'
{
"content": "Hello World!",
"postDate": "2009-11-15T14:12:12"
}'
我们可以查看自动生成的postDate的字段映射
curl -XGET "http://localhost:9200/myindex/_mapping/"
##postDate":{"type":"date","format":"dateOptionalTime"}
现在让我们发布另一个文档。此时间postDate包含UTC偏移量
curl -XPOST "http://localhost:9200/myindex/datetest/" -d'
{
"content": "Hello World!",
"postDate": "2009-11-15T14:12:12-07:00"
}'
现在,让我们检索上面创建的文档:
curl -XGET 'http://localhost:9200/myindex/datetest/_search?q=Hello'
"hits": {
"total": 2,
"max_score": 0.11506981,
"hits": [
{
"_index": "myindex",
"_type": "datetest",
"_id": "AUw0TyJgqFHXxhSON3r8",
"_score": 0.11506981,
"_source": {
"content": "Hello World!",
"postDate": "2009-11-15T14:12:12"
}
},
{
"_index": "myindex",
"_type": "datetest",
"_id": "AUw0VIQbqFHXxhSON3r-",
"_score": 0.095891505,
"_source": {
"content": "Hello World!",
"postDate": "2009-11-15T14:12:12-07:00"
}
}
]
}
您可以看到,在返回的每个文档中,postDate的格式都与发布时完全相同。这让我很困惑。根据,
“日期类型是一种特殊类型,它映射到JSON字符串类型
遵循可显式设置的特定格式。所有日期均为
UTC。在内部,日期映射到一个长的数字类型,并添加
从字符串到长字符串和从长字符串到字符串的解析阶段。“(强调我的)
我的两个问题是:
1) 因为“在内部,一个日期映射到一个长的数字类型”,它是如何或在哪里的
elasticsearch存储日期的元数据信息
张贴
2) 我是否能够为日期指定输出格式,
不管他们是怎么发布的。也就是说,我可以控制“长”吗
字符串“转换独立于日期的输入方式吗?源按原样存储,当您检索它时,Elasticsearch将返回您发布的相同文档 它在索引中“存储”长类型,并使用它在内部执行查询,但您看不到它 不要混淆源和索引 就像在索引字符串“Erik Iverson”时,它会保存在索引2术语[Erik][Iverson]中,但在检索文档时,会得到原始字符串,因为源没有更改