gpt4 book ai didi

elasticsearch - 如何将动态日期格式应用于 Elasticsearch 中的多种类型?

转载 作者:行者123 更新时间:2023-11-29 02:52:26 26 4
gpt4 key购买 nike

我正在尝试让 Elasticsearch 将格式为 yyyy-MM-dd HH:mm:ss 的字符串识别为日期字段。我创建了一个动态日期格式并将其应用于默认映射。当我索引我的第一种类型的文档时,它工作得很好——任何数据采用这种格式的新字段都被初始化为日期字段。

当我尝试创建一种新类型的文档时,问题就来了,但日期格式字段的名称与我的第一种类型中的名称相同。这些失败并出现格式错误的日期错误

下面是一组用于演示的 Kibana 命令示例:

DELETE /datetest

PUT /datetest

PUT /datetest/_mapping/_default_
{
"dynamic_date_formats" : ["yyyy-MM-dd HH:mm:ss"]
}

PUT /datetest/doc/1
{
"date" : "2015-01-01 12:00:00"
}

# This one works fine
PUT /datetest/otherdoc/1
{
"otherdate" : "2015-01-01 12:00:00"
}

# This one does not
PUT /datetest/otherdoc/2
{
"date" : "2015-01-01 12:00:00"
}

最后一个命令给出了这个错误: “无效格式:\"2015-01-01 12:00:00\"在\"12:00:00\""处格式错误

我知道不同类型中的同名字段必须具有相同的数据类型,但在这种情况下,我希望它们具有相同的数据类型——日期。我可以为每个新类型手动创建映射,但我希望它自动支持添加到我的源数据中的新类型。这似乎是动态日期格式应该做的。我在这里做错了什么吗?

最佳答案

我会创建一个自定义动态模板。像这样:

PUT /datetest/_mapping/_default_
{
"date_detection" : true,
"dynamic_templates" : [
{
"dates" : {
"match" : ".*date.*",
"mapping" : {
"type" : "date",
"format" : 'yyyy-MM-dd HH:mm:ss'
}
}
}
]
}

刚试过。它似乎工作。我希望这会有所帮助:)

关于elasticsearch - 如何将动态日期格式应用于 Elasticsearch 中的多种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338371/

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