В Solr (7.4) через API коллекций я запрашиваю резервную копию

http://localhost:5008/solr/my_collection/replication?command=backup&location=/backups&numberToKeep=1

После завершения резервного копирования я получаю /backups/snapshot.YYYYmmDDhhMMssSSS но hh равен 2 перед началом резервного копирования. Поле даты в индексе также на 2 часа раньше системного времени, но время журнала - нет, оно соответствует системному времени.

Поскольку меня устраивает дата в индексе, я предпочитаю, чтобы время в /backups/snapshot.YYYYmmDDhhMMssSSS соответствовало системному времени. Есть способ установить это?

0
Maciej Sikorski 22 Окт 2018 в 10:44

2 ответа

Лучший ответ

Во-первых, причина двухчасовой разницы в том, что Solr использует UTC для всех временных меток без какой-либо информации о часовом поясе. Записи журнала находятся в вашем часовом поясе. Обычно метки времени в вашей системе также хранятся в формате UTC, а отображаются в вашем местном часовом поясе, когда вы их перечисляете.

Вы можете указать параметр name, чтобы сообщить Solr, чтобы использовать любое имя, которое хотите сами. Это означает, что вам придется самостоятельно определять фактические значения перед вызовом команды резервного копирования, но это позволяет вам использовать любой формат по своему усмотрению.

Снимок будет создан в каталоге с именем snapshot. Если имя не указано, имя каталога будет иметь следующий формат: снимок.

Если вы запустите свой скрипт через bash, вы можете получить метку времени в секундах, используя:

$ date +%Y%m%d%H%M%S
20181022095739

У вас также есть% N, чтобы дать вам текущее количество наносекунд, поэтому, если вам действительно нужна точность в миллисекундах, вы можете извлечь первые три цифры из этого значения.

0
MatsLindh 22 Окт 2018 в 07:58

Вы можете настроить /etc/default/solr.in.sh и добавить SOLR_TIMEZONE="Europe/Paris", например

1
Quent 22 Окт 2018 в 08:57
52924510