not - elasticsearch query should
ElasticSearch: Cómo consultar un campo de fecha usando un filtro de rango de mes y fecha (1)
Actualmente, ya sé cómo filtrar un rango de fechas desde un campo de fecha (indicación de fecha y hora). Eso es fácil:
"range": {
"date": {
"gte": "2015-11-01",
"lte": "2015-11-30"
}
}
¿Pero cómo filtrar las fechas cuando le interesan los rangos basados en el mes como gte:"02-22"
y lte:"03-21"
? es posible?
Cartografía:
PUT dob
{
"mappings": {
"test":{
"properties": {
"dob":{
"type": "date",
"format": "dateOptionalTime"
}
}
}
}
}
Consulta:
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
}
}
}
]
}
}
}
}
}
Quiero mostrar algo así como una date greater than:02-11 & less than:03-20
pero no quiero cambiar el formato de fecha ( yyyy-mm-dd
) y tampoco quiero buscarlo por cuerda. Si estoy haciendo algo mal, por favor hazme la corrección.
Puede especificar el formato en el filtro de fecha como
"date":
{
"gte":"02-22","lte":03-20","format":"mm-dd"
}