2012-06-02 22 views
5

tengo un índice con un campo de tiempo cuyos valores son como:Elasticsearch y zonas horarias

time: 2012-06-02T12:25:27+02:00 

Entonces estoy ejecutando la siguiente consulta:

{ 
    "sort": { 
    "time": "desc" 
    }, 
    "query": { 
    "query_string": { 
     "query": "time:[2012-6-2T12:24:00Z TO 2012-6-2T12:26:00Z]", 
     "default_operator": "AND" 
    } 
    }, 
    "size": 30 
} 

que está regresando 0 hits, pero si Cambio la cadena de consulta por 2 horas y luego coincide con los registros en ese momento. Entonces, estoy bastante seguro de que este es un problema de zona horaria. Al leer los documentos que encontré, puedo poner un "time_zone": 2 en la consulta, pero ... ¿dónde debería colocarse en la consulta anterior? Intenté muchas opciones pero no pude hacerlo funcionar.

Respuesta

6

Probablemente ha visto el parámetro "time_zone" en la faceta de fecha del histograma, que es diferente de esta consulta. La consulta query_string no acepta un parámetro time_zone. Creo que la solución más simple que aquí sería reemplazar "Z" con la zona horaria deseada en su consulta:

{ 
    "sort": { 
    "time": "desc" 
    }, 
    "query": { 
    "query_string": { 
     "query": "time:[2012-6-2T12:24:00+02:00 TO 2012-6-2T12:26:00+02:00]", 
     "default_operator": "AND" 
    } 
    }, 
    "size": 30 
} 
+4

¿Hay alguna posibilidad de especificar la zona horaria fuera de la consulta o en una parte diferente de la cadena de consulta que el ' tiempo: '¿buscarse a sí mismo? Lo pregunto porque quiero mantener la capacidad de consultar cualquiera de los muchos formatos de fecha posibles en el campo 'tiempo '(por ej. en el timezeone '+02: 00'. –

Cuestiones relacionadas