2011-09-29 11 views
1

J'ai suivi le manuel de sphinx ici: http://sphinxsearch.com/docs/current.html#delta-updates sur la façon d'effectuer des mises à jour delta à votre index.Sphinx indexer delta --rotate

mon searchd exécute le bon fichier de configuration. l'indexeur était précédemment exécuté pour créer l'index principal.

quand je lance cette commande:

indexer -c /home/brandon/workspace/gallery/server/lib/sphinx/sphinx.conf --rotate delta 

Je reçois ce résultat:

using config file '/home/brandon/workspace/gallery/server/lib/sphinx/sphinx.conf'... 
read 0.1 of 0.1 MB, 100.0% done 
merged 10.8 Kwords 
merged in 0.010 sec 
total 389 reads, 0.000 sec, 2.0 kb/call avg, 0.0 msec/call avg 
total 7 writes, 0.000 sec, 78.6 kb/call avg, 0.0 msec/call avg 
rotating indices: succesfully sent SIGHUP to searchd (pid=28039). 

Tout semble que cela a fonctionné, et l'indice principal doit avoir été mis à jour. Je vais ensuite dans ma barre de recherche, mais il n'a pas été mis à jour car je ne peux pas rechercher le nouvel élément.

Des suggestions?

Répondre

1

Assurez-vous que vous effectuez une recherche à l'aide à la fois (principal et delta) dans votre application. L'index Delta est juste un autre index, donc quand vous réindexez l'index delta, il n'ajoute rien à l'index principal. Votre application doit donc rechercher dans les deux index (principal, delta).

+0

Excellent. Cela semblait être mon problème. – lockdown

+0

Ou vous pouvez fusionner l'index delta dans l'index principal, ce que je pense que la plupart des gens font. – Nate

-1

Ma suggestion est simple. Ecrivez un programme simple pour l'indexer fréquemment et après cela redémarrez le service sphinx (searchd). Les résultats seraient publiés.

Assurez-vous d'inclure à la fois le principal et l'index dans le code api. ($ Index = "principal, delta";)

vous pouvez suivre mes instructions dans la réponse précédente ici: index Does Sphinx auto update is index when you add data to your SQL?

+1

Non, NE PAS redémarrer searchd. C'est un gaspillage et cela entraînera des temps d'arrêt. le --rotate fera tout ce qui est nécessaire pour charger le nouvel index. (il le fait en disant à searchd de recharger l'index requis.) – barryhunter

Questions connexes