Devika V
Devika V

Reputation: 658

Elasticsearch query to search with mm-yyyy format on date field

I want to query the elasticsearch like 03-2015 on date field which is in yyyy-dd-mm format.

I tried like this, But it didn't worked.Its not giving any error, it is returning 0 records

curl -XPOST "http://localhost:9200/myindex/mytype/_search?pretty" -d '{
"query": {
    "bool": {
        "must": [
            {
                "range": {
                    "deliverydate": {
                        "gte": "03-2015",
                        "lte": "03-2015",
                        "format": "mm-yyyy" 
                    }
                }
            }

        ]
    }
}

} '

my sample document is this

{
"took": 38,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
},
"hits": {
    "total": 10,
    "max_score": 1,
    "hits": [
        {
            "_index": "myindex",
            "_type": "mytype",
            "_id": "33924",
            "_score": 1,
            "_source": {
                "id": 33924,
                "deliverydate": "2015-03-14",
                "name":"New test order"
            }
        }
        ]
    }

}

Can anyone please help me on this. Is this a valid search on elasticsearch data?

Upvotes: 0

Views: 332

Answers (1)

Val
Val

Reputation: 217254

Your format is not correct (MM instead of mm), it should be

curl -XPOST "http://localhost:9200/myindex/mytype/_search?pretty" -d '{
"query": {
    "bool": {
        "must": [
            {
                "range": {
                    "deliverydate": {
                        "gte": "03-2015",
                        "lte": "04-2015",
                        "format": "MM-yyyy" 
                    }
                }
            }

        ]
    }
}}'

Upvotes: 1

Related Questions