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?
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
.
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
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
service searchd start
a travaillé pour moi sur CentOS