gpt4 book ai didi

ElasticSearch:如何使用月份和日期范围过滤器查询日期字段

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

目前,我已经知道如何从(时间戳)日期字段中过滤日期范围。这很简单:

"range": {
"date": {
"gte": "2015-11-01",
"lte": "2015-11-30"
}
}

但是当您对 gte:"02-22"lte:"03-21" 等基于月份的范围感兴趣时,如何过滤日期?这可能吗?

映射:

PUT dob
{
"mappings": {
"test":{
"properties": {
"dob":{
"type": "date",
"format": "dateOptionalTime"
}
}
}
}
}

查询:

GET /dob/test/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"range": {
"date": {
"gte": "02-11",
"lte": "03-20"
}
}
},
{
"script": {
"script": "doc.dob.date.getDayOfMonth() >= min && doc.dob.date.getMonthOfYear() <= max",
"params": {
"min": 12,
"max": 2
}
}
}
]
}
}
}
}
}

我想输出类似 date greater than:02-11 & less than:03-20 但我不想更改我的日期类型格式 (yyyy-mm- dd) 而且我不想按字符串搜索它。如果我做错了什么,请纠正我。

最佳答案

您可以在日期过滤器中指定格式,例如

"date":
{
"gte":"02-22","lte":03-20","format":"mm-dd"
}

关于ElasticSearch:如何使用月份和日期范围过滤器查询日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626212/

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