Как изящно перезапустить поисковый демон Sphinx после переиндексации - PullRequest
14 голосов
/ 26 октября 2011

Я переиндексировал свой поиск Sphinx с помощью /usr/local/sphinx/bin/indexer --all --rotate и переименовал мои исходные выходные файлы индекса во что-то другое.Простое изменение аргумента индекса, переданного на $sphinx->Query($query, $index);, не возвращает результатов.

Я подозревал, что демон не знает о существовании новых файлов индекса.Поэтому я снова запустил

sudo /usr/local/sphinx/bin/searchd

, чтобы попытаться перезапустить его.Но он выбросил

FATAL: failed to lock pid file '/usr/local/sphinx/var/log/searchd.pid': Resource temporarily unavailable (searchd already running?)

Мне пришлось kill 2 процесса поискового демона и запустить его снова, чтобы получить новые индексные файлы.Есть ли изящный способ перезапустить его?

Ответы [ 4 ]

25 голосов
/ 30 ноября 2011

Я знаю, что это поздний ответ, но чтобы вы могли «перезапустить» Сфинкса, вам нужно остановить его и запустить (как, например, два разных процесса).позвоните searchd --stop, затем просто начните его снова с searchd.

9 голосов
/ 27 октября 2011

Вам нужно вызвать indexer для нового индекса, чтобы создать его, а затем --rotate, чтобы обновить его.

Так что это будет что-то вроде

indexer --config /path/to/config.conf indexname

А потом, когда вы просто хотите обновить свои индексы

indexer --config /path/to/config.conf --rotate --all

Это создаст временную копию каждого индекса и заменит старые после завершения. Для получения дополнительной информации о том, что на самом деле происходит, см. http://sphinxsearch.com/docs/manual-0.9.9.html#ref-indexer

С другой ошибкой вы получаете У

ps aux | grep searchd

если результат не возвращается, удалите /usr/local/sphinx/var/log/searchd.pid и снова начать поиск

4 голосов
/ 15 ноября 2012

Кажется, есть проблема с командой searchd --stop, которая не может остановить демон в некоторых случаях Sphinx.

Попробуйте: service sphinxsearch stop

См .: https://bugs.launchpad.net/ubuntu/+source/sphinxsearch/+bug/990395

0 голосов
/ 24 мая 2017

service searchd start работал у меня на CentOS

...