2016-09-23 2 views
1

Wenige Tage zurück habe ich begonnen, an solr zu arbeiten, und heute habe ich ein Problem mit deltaQuery. mein Server Zeitzone ist IST auch mysql gibt Standardausgabe in IST. aber die Datei solr dataimport.properties, die die Zeitzone in UTC speichert.Solr last_index_time difference Zeitzonenformat, so dass die Ausgabe falsch ist

Problem ist, wenn ich die Abfrage B.modified_on >'${dataimporter.last_index_time}' dann falsch Zeitvergleich wegen der Zeitzone auswähle. die solr logs sind: - B.modified_on> '2016-09-23 07:39:10' und die Serverzeit ist. $ date Fr Sep 23 15:22:20 IST 2016

Bitte schlagen Sie vor, wie Sie die Zeitzone in IST oder einer anderen Antwort ändern können. Ich kann nicht die Zeitzone meines Linux Servers.

+0

Jemand hat das schon gefragt. Überprüfen Sie diesen Link http://stackoverflow.com/questions/39576281/how-to-change-defaults-last-index-time-format-in-solr/39581729#39581729 –

+0

ich don ' Warum wählen Sie das andere Format als die Protokolle auch in verschiedenen Zeitzonen schreiben. –

+0

Der Grund dafür ist, dass die Uhr eines Servers immer in UTC sein sollte, und die Zeitstempel werden dann basierend auf der Einstellung der Protokollierungseinrichtung in das lokale TZ konvertiert. Es wird kein anderes Format gewählt - es wird explizit nichts ausgewählt und nur als UTC gespeichert. – MatsLindh

Antwort

2

Solr Protokolle sind standardmäßig in UTC. Um dies zu ändern IST, bearbeiten Sie die Datei solr.in.sh die Zeile enthalten:

# By default the start script uses UTC; override the timezone if needed 

SOLR_TIMEZONE="IST" 
+0

Aha ja ich habe die bin/solr Datei geändert die SOLR_TIMEZONE = 'Datum '+% Z''. Vielen Dank. –

0

Sie die CONVERT_TZ Funktion in MySQL convert a datetime field to UTC verwenden können.

CONVERT_TZ(B.modified_on, 'IST', 'UTC') > '${dataimporter.last_index_time}' 

.. sollte funktionieren. Probieren Sie es in einer MySQL-Befehlszeilen-Sitzung aus, um zu sehen, dass Sie die korrekte UTC-Zeit zurückbekommen.