Как сохранить часовой пояс в solr при импорте из MySQL? - PullRequest
1 голос
/ 01 апреля 2019

Я использую Solr 7.7.x, который импортирует данные, включая даты из MySQL.В БД время на сервере сохраняется текущий часовой пояс.После импорта solr он конвертируется в UTC.В моем случае это приводит к сдвигу в 2 часа при извлечении данных:

MySQL:

"date_created":"2019-04-01 17:18:45"

Запрос импорта MySQL:

SELECT DATE_FORMAT( c.date_created, '%Y-%m-%dT%H:%i:%sZ' ) AS date_created FROM cls

solr:

"date_created":"2019-04-01T19:18:45Z",

PHP:

date("Y-m-d H:i:s", strtotime($item['date_created']));

Я также пытался:

$tz = new DateTimeZone('Europe/Berlin');
$date = new DateTime($classified['date_created']);
$date->setTimezone($tz);
$ad['time_created'][$index] = $date->format('Y-m-d H:i:s');

Тот же результат, время смещено на 2 часа.Если я поменяю DateTimeZone на US, он сместится на 9 часов, что показывает, что по крайней мере он имеет какой-то эффект.

Я временно исправил его на: $ad['time_created'][$index] = date("Y-m-d H:i:s", strtotime($classified['date_created'])-7200);, что не выглядит для меня хорошим решением.

Как сохранить время от MySQL и каков рекомендуемый подход для работы с часовыми поясами в solr?

1 Ответ

0 голосов
/ 06 апреля 2019

Я не уверен, решит ли это вашу проблему или нет, но вы можете синхронизировать часовой пояс Solr с часовым поясом MySQL, назначив часовой пояс для solr, по умолчанию solr работает в часовом поясе UTC.

Если Solr находится на компьютере с Windows, назначьте часовой пояс, как показано ниже в файле solr-x.x.x \ bin \ solr.in.cmd

set SOLR_TIMEZONE=<yourTimezone>

и, если Solr в Linux, в solr-x.x.x \ bin \ solr.in.sh

SOLR_TIMEZONE="<yourTimezone>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...