Как изящно перезапустить демон поиска Sphinx после переиндексации
Я переиндексировал мой поиск 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 процесса поискового демона и снова запустить его, чтобы захватить новые файлы индексов. Есть ли изящный способ его перезапустить?
Ответы
Ответ 1
Я знаю, что это поздний ответ, но так, чтобы вы знали, чтобы "перезапустить" Sphinx, вам нужно остановить его, а затем запустить его (как в двух различных процессах).
Чтобы остановить его, вызовите searchd --stop
, а затем снова запустите его с помощью searchd
.
Ответ 2
Вам нужно будет вызвать индексатор для нового индекса для его создания, а затем --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
и снова запустите searchd
Ответ 3
Кажется, что проблема с командой searchd --stop
не позволяет остановить демона в некоторых случаях Sphinx.
Попробуйте: service sphinxsearch stop
Смотрите: https://bugs.launchpad.net/ubuntu/+source/sphinxsearch/+bug/990395
Ответ 4
service searchd start
работал у меня на CentOS