web-dev-qa-db-fra.com

Comment redémarrer gracieusement le démon de recherche Sphinx après la réindexation

J'ai réindexé ma recherche Sphinx avec /usr/local/sphinx/bin/indexer --all --rotate et renommé mes fichiers de sortie d'index d'origine en quelque chose d'autre. Changer simplement l'argument d'index passé à $sphinx->Query($query, $index); ne renvoie aucun résultat.

Je soupçonne que le démon ne sait pas que les nouveaux fichiers d'index existent. Alors j'ai couru

Sudo /usr/local/sphinx/bin/searchd

à nouveau pour essayer de le redémarrer. Mais ça a jeté

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

Je devais kill les 2 processus du démon de recherche et le redémarrer pour récupérer les nouveaux fichiers d'index. Y at-il un moyen gracieux de le redémarrer?

12
David Xia

Je sais que c'est une réponse tardive, mais pour que vous sachiez bien, pour «redémarrer» Sphinx, vous devez l'arrêter puis le démarrer (comme dans deux processus distincts).

Pour l'arrêter, appelez searchd --stop puis redémarrez-le avec searchd.

23
Narcissus

Vous devrez appeler l'indexeur sur le nouvel index pour le créer, puis --rotate pour le mettre à jour. 

Donc, ce serait quelque chose comme

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

Et puis, quand vous voulez juste mettre à jour vos index 

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

Cela créera une copie temporaire de chaque index et remplacera les anciens à la fin. Pour plus d’informations sur ce qui se passe réellement, voir http://sphinxsearch.com/docs/manual-0.9.9.html#ref-indexer

De l’autre erreur, vous obtenez Ne

ps aux | grep searchd

si aucun résultat ne s'affiche, supprimez /usr/local/sphinx/var/log/searchd.pidet relancez searchd

9
daxroc

Il semble qu'il y ait un problème avec la commande searchd --stop qui n'a pas pu arrêter le démon sur certaines instances de Sphinx. 

Essayez: service sphinxsearch stop

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

4
y_s

service searchd start a travaillé pour moi sur CentOS

0
d-_-b