gpt4 book ai didi

elasticsearch - Elasticsearch日期范围问题

转载 作者:行者123 更新时间:2023-12-02 22:21:48 27 4
gpt4 key购买 nike

我正在学习Elasticsearch,但日期范围查询有问题。我的查询只比较几天,而不是整个日期。这是一个简短的示例:

DELETE test

PUT /test
{
"mappings": {
"properties": {
"date" : {
"type": "date",
"format": "dd MM YYYY"
}
}

}
}

POST /_bulk
{"index" : {"_index": "test"}}
{"date": "01 01 2001"}

POST /test/_search
{
"query": {
"range": {
"date": {
"lt": "01 01 2016",
"gt": "01 01 2000"
}
}
}
}

POST /test/_search
{
"query": {
"range": {
"date": {
"lte": "01 01 2000",
"gte": "01 01 2016"
}
}
}
}

据我了解,第一个搜索查询应返回文档-日期2001为<2016和>2000。第二个查询应不返回任何内容,因为2001不是<= 2000和> = 2016。但它的工作完全相反。

你能指出我所缺少的吗?

最佳答案

失败的原因是因为ES无法正确格式化您的日期。日期格式化行为在6.x和7.0之间以及joda based date formatters are replaced with java ones之间进行了更改。如果将格式更改为"format": "dd MM yyyy"(请注意小写的yyyy),则会发现您的搜索作品。

格式不起作用的原因是YYYY表示date week year。您几乎总是希望使用小写的yyyy格式来以日期格式表示年份。

关于elasticsearch - Elasticsearch日期范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840761/

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