-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Closed
Labels
Description
When the date format is defined in mapping, you can not use another format when querying using range date query or filter.
For example, this won't work:
DELETE /test
PUT /test/t/1
{
"date": "2014-01-01"
}
GET /test/_search
{
"query": {
"filtered": {
"filter": {
"range": {
"date": {
"from": "01/01/2014"
}
}
}
}
}
}
It causes:
Caused by: org.elasticsearch.ElasticsearchParseException: failed to parse date field [01/01/2014], tried both date format [dateOptionalTime], and timestamp number
It could be nice if we can support at query time another date format just like we support analyzer at search time on String fields.
Something like:
GET /test/_search
{
"query": {
"filtered": {
"filter": {
"range": {
"date": {
"from": "01/01/2014",
"format": "dd/MM/yyyy"
}
}
}
}
}
}
Same for queries.
For now, we can still support it by setting in mapping different expected formats:
DELETE /test
PUT /test
{
"mappings": {
"t": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd||dd/MM/yyyy"
}
}
}
}
}
PUT /test/t/1
{
"date": "2014-01-01"
}
GET /test/_search
{
"query": {
"filtered": {
"filter": {
"range": {
"date": {
"from": "01/01/2014"
}
}
}
}
}
}