Issue querying for dates


(Grant Rodgers) #1

Hi, I'm having an issue querying for dates, and it's probably me using
the query dsl wrong, but I can't figure out what the problem is.

This query works:
{
"query":{
"range":{
"created_at":{
"from":"2010-08-26T20:41:52Z",
"to":"2010-08-26T20:41:52Z"
}
}
}
}

but this query doesn't:
{
"query":{
"field":{
"created_at":"2010-08-26T20:41:52Z"
}
}
}

It throws this exception: http://gist.github.com/552231

I'm using 0.9.0 for this test.

Is there something wrong here?


(Grant Rodgers) #2

Oh also here's the mapping for that field:

    "created_at" : {
      "omit_term_freq_and_positions" : true,
      "index_name" : "created_at",
      "index" : "not_analyzed",
      "omit_norms" : true,
      "store" : "no",
      "boost" : 1.0,
      "format" : "dateOptionalTime",
      "precision_step" : 4,
      "term_vector" : "no",
      "type" : "date"
    },

On Aug 26, 1:57 pm, Grant Rodgers gra...@gmail.com wrote:

Hi, I'm having an issue querying for dates, and it's probably me using
the query dsl wrong, but I can't figure out what the problem is.

This query works:
{
"query":{
"range":{
"created_at":{
"from":"2010-08-26T20:41:52Z",
"to":"2010-08-26T20:41:52Z"
}
}
}

}

but this query doesn't:
{
"query":{
"field":{
"created_at":"2010-08-26T20:41:52Z"
}
}

}

It throws this exception:http://gist.github.com/552231

I'm using 0.9.0 for this test.

Is there something wrong here?


(Clinton Gormley) #3

but this query doesn't:
{
"query":{
"field":{
"created_at":"2010-08-26T20:41:52Z"
}
}
}

A 'field' query is for query strings. Use a term query instead:

{
"query":{
"field":{
"term":"2010-08-26T20:41:52Z"
}
}
}

clint


(Grant Rodgers) #4

Ah, it makes sense now that I know field queries are query strings,
because colons are reserved in query strings. Escaping the colons
fixes the query:

{
"query":{
"field":{
"created_at":"2010-08-26T20\:41\:52Z"
}
}
}

(double backslashes so the json parser doesn't throw an error)

Thanks!

On Aug 26, 2:38 pm, Clinton Gormley clin...@iannounce.co.uk wrote:

but this query doesn't:
{
"query":{
"field":{
"created_at":"2010-08-26T20:41:52Z"
}
}
}

A 'field' query is for query strings. Use a term query instead:

{
"query":{
"field":{
"term":"2010-08-26T20:41:52Z"
}
}

}

clint


(system) #5