than should query not example elastic aggs elasticsearch date-range

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" }