Как узнать, когда закончится Solr Optimize? - PullRequest
3 голосов
/ 17 сентября 2010

Я использую Solr-php-клиент для связи с Solr через php.

Этот фрагмент кода запускает команду оптимизации solr:

  $solr->optimize();

Интересно, есть ли способ узнать наверняка, что оптимизация выполнена?

Это все потому, что у меня есть страница администрирования на моем веб-сайте, где я должен вручную раз в день оптимизировать индекс Solr, но у меня возникают трудности при написании этого кода.

В настоящее время у меня есть простая форма с кнопкой отправки, которая запускает команду optimize (), но я должен каким-то образом подтвердить, что произошла оптимизация, что является проблемой здесь.

Вам известен какой-либо метод подтверждения оптимизации в Solr?

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 сентября 2010

Документация для команды Optimize указывает, что по умолчанию команда будет блокироваться до тех пор, пока все изменения не будут записаны на диск, и пока не будет доступен новый искатель.Поэтому, если вы сохраните эти значения по умолчанию, когда команда вернется, вы можете считать, что оптимизация выполнена.Обратите внимание, что в зависимости от количества сегментов, которые у вас есть, и от того, на сколько вы хотите перейти, команда может блокироваться в течение длительного времени.Я видел оптимизацию, занимающую до часа, чтобы закончить.

2 голосов
/ 20 июня 2013

Самый простой способ - запустить оптимизацию с консоли Solr, в разделе «Обзор» вашей коллекции есть кнопка «Оптимизировать сейчас». Если вы обновите этот экран, вы увидите, что объем используемой памяти увеличивается до тех пор, пока он не удвоится, а затем для оптимизированного состояния будет снята отметка и кнопка «оптимизировать сейчас» исчезнет.

Примечание: у вас должно быть достаточно свободного места на диске для завершения оптимизации, иначе произойдет сбой без уведомления или сообщения об ошибке.

Это не дает прямого ответа на ваш вопрос, но это еще один способ решить проблему с экземпляром solr. Надеюсь, это поможет.

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