gpt4 book ai didi

json - Elasticsearch如何将日期转换为JSON字符串表示形式?

转载 作者:行者123 更新时间:2023-12-02 23:03:09 24 4
gpt4 key购买 nike

我对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"
}'

我们可以查看自动生成的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的格式均与POST完全相同。不过这让我感到困惑。根据,

http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-core-types.html

“日期类型是一种特殊类型,它映射到JSON字符串类型。它
遵循可以显式设置的特定格式。 所有日期均为
世界标准时间。在内部,日期映射为long类型的数字,并添加
从字符串到long以及从long到string的解析阶段。
“(重点是我的)

我的两个问题是:

1)由于“在内部,日期映射为长整型数字”,因此方式或位置在哪里
elasticsearch存储有关日期如何的元信息
发布了?

2)我可以指定日期的输出格式吗?
无论如何发布。也就是说,我可以控制“
“字符串”转换,而与日期输入方式无关?

最佳答案

源按原样存储,当您检索源时,Elasticsearch返回您发布的相同文档。

它在索引中“存储”长类型,并使用它在内部执行查询,但看不到它。

不要将源与索引混淆。

就像在为字符串“Erik Iverson”建立索引时一样,它将在索引中保存2个词条[erik] [iverson],但是在检索文档时,您会得到原始字符串,因为源未更改

关于json - Elasticsearch如何将日期转换为JSON字符串表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com