2011-03-01 21 views
5

Si he definido un campo de tipo Solr.DateField, leo SOLR y siempre lo guardo en GMT. Pero veo que SOLR simplemente toma el tiempo que está definido en mi DB y lo escribe sin conversión.Solr no ahorra tiempo en formato UTC

¿Hay algún parámetro de configuración para ello?

Respuesta

0

Por lo que sé Solr almacena las fechas exactamente mientras lo alimenta, sin tener en cuenta la información de la zona horaria. Depende de usted convertir de/a UTC. Here's a forum thread that confirms this.

Por ejemplo, here are some conversion routines for PHP.

+0

Tengo una máquina donde solr hace esta conversión automáticamente pero no está sucediendo cuando se ejecuta el mismo código en otra máquina donde la máquina está configurada en GMT. http://lucene.472066.n3.nabble.com/SOLR-1-4-1-Indexing-DateField-time-zone-problem-td1966118.html explica algo de eso. – Prasanna

+0

@Mauricio Scheffer no estoy seguro, si te entiendo bien. ¿Quiere decir que Solr interpreta todas las fechas como UTC? ¿Depende del desarrollador alimentar solr con fechas UTC solamente? Esto significa: tengo que convertir las fechas antes de enviar a solr y '2012-12-13T14: 42: 16.437Z + 01: 00' (con' +01: 00') no funciona ?! ¿Sabes si hay algún cambio en Solr 4? –

0

Ok Descubrí que la fecha que le doy a SOLR no tiene configurada la zona horaria y, en tal caso, está predeterminada en la zona horaria en la que esté configurada la máquina.

5

Por lo que yo sé la SOLR dateformat sólo aceptará es:

AAAA-MM-DDTHH: MM: SS.000Z (! La Z es importante)

+4

"Z" es de "Zulu Time" o "Zero Time", que es GMT = 0 (o UTC = 0) – Topera

+1

Gracias, por casualidad, ¿sabe por qué? En la documentación dicen que aceptan la fecha en formato ISO, pero no encontré una referencia en la que debemos forzar la representación a GMT (que termina en Z) –

0

en mi caso, es nuestro servidor configurado a tiempo no UTC. cuando solr recupera una fila de la base de datos, automáticamente convierte esa hora en UTC.

el problema es que los datos que se almacenan en DB es ya en UTC. pero porque cuando Solr extrae esos datos, realiza otra conversión a UTC ...

el camino correcto para nuestros propósitos (en mi opinión) es tener el servidor configurado en la zona horaria UTC ... pero, por desgracia, eso sería arruinar todo el conjunto de servidores ... no hago operaciones, y no sé las ramificaciones. en cualquier caso, estoy tratando de encontrar una manera de resolver esto en mi código.

1

Como afirma Mauricio Scheffer, a SOLR no le importan las zonas horarias, lo que es frustrante.

PERO! Si usted tiene un tiempo no UTC y conoce la zona horaria cuando el valor de índice, puede convertirlo a UTC sobre la marcha en su actualización SOLR:

"2013-02-07T11: 21: 51Z + 8HOUR "

Esto se ve un poco raro, pero agregar" Z + 8HOUR "a una marca de tiempo PST lo convertirá al valor correcto en UTC. En general, puede usar cualquier modificador DateMath al indexar una marca de tiempo.

Cuestiones relacionadas