gpt4 book ai didi

date - 映射中的Elasticsearch日期格式

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

PUT test_index
{
"mappings": {
"default": {
"dynamic": "false",
"dynamic_templates": [
{
"dates": {
"match": ".*Date*|date",
"match_pattern": "regex",
"mapping": {
"format": "yyyyMMddhhmmss||yyyyMMdd||date_hour_minute_second_millis||date_time_no_millis||date_time||basic_date_time||basic_date",
"type": "date"
}
}
}
],
"properties": {
"createDate" : {
"type" : "date"
}
}
}
}
}

createDate的值为yyyymmdd格式(无时间或区域)“createDate”:“20010801”。

现在,我的搜索字符串的格式如下,应该可以找到结果,但是目前没有找到:
GET test_index/_search
{"query": {"range": {"createDate": {"gte": "1970-01-01T00:00:00.000Z", "lte": "1970-01-01T00:00:00.000Z"}}}}

如何更改映射,以便我可以根据上述搜索查询获取文档?

最佳答案

您只查询一天-> 1970-01-01 <= createDate <= 1970-01-01 ...
您是否尝试过使用更合理的范围?

如有疑问,可以将format参数添加到您的范围中,并使用script_fields验证在索引时间是否正确解析了日期时间:

GET test_index/_search
{
"query": {
"range": {
"createDate": {
"gte": "1970-01-01T00:00:00.000Z",
"format": "date_optional_time"
}
}
},
"script_fields": {
"formatted_date": {
"script": {
"source": """
LocalDateTime.ofInstant(
Instant.ofEpochMilli(doc['createDate'].value.millis),
ZoneId.of('Europe/Vienna')
).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
"""
}
}
}
}

关于date - 映射中的Elasticsearch日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61760148/

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