Aller directement à la fin des métadonnées
Aller au début des métadonnées

Recommandation : pour une configuration plus pointue, dédier un serveur à Sphinx. MesDiscussions a été conçu pour pouvoir gérer de 0 à n serveurs Sphinx.

Exemple de compilation de Sphinx :

Avant l'installation de sphinx il peut être nécessaire d'installer la lib mysql dev : 
 
sudo apt-get install libmysqlclient-dev
 
cd /usr/src
wget http://sphinxsearch.com/files/sphinx-2.1.9-release.tar.gz
tar xvzf sphinx-2.1.9-release.tar.gz
cd sphinx-2.1.9-release
./configure --with-mysql=/usr --prefix=/usr/local/sphinx-2.1.9-release
make
make install
ln -s /usr/local/sphinx-2.1.9-release /usr/local/sphinx

Le chemin, l'adresse et le port de Sphinx sont à spécifier dans la configuration de l'application. (voir le chapitre setup.vars.php)

Si l'erreur suivante apparaît ERROR: index 'update_forum_counter_trunk_forum_': sql_query_pre[1]: Query cache is disabled; restart the server with query_cache_type=1 to enable it, il faut rajouter cette ligne query_cache_type=1 dans le fichier /etc/mysql/my.cnf

 

Cron

2 cron à executer l'un à 3h du matin chaque jour, le second toutes les 5 minutes

  • Lancer sur la machine contenant Sphinx : /opt/www/mesdiscussions/core/private/scripts/sphinx_cron_daily.php
    Script qui réindexe l'ensemble des données du serveur, club et forum. 

    01 3 * * * root cd /opt/www/mesdiscussions/core/private/scripts;/usr/local/php/bin/php /opt/www/mesdiscussions/core/private/scripts/sphinx_cron_daily.php
  • Lancer sur la machine contenant Sphinx : /opt/www/mesdiscussions/core/private/scripts/sphinx_cron.php
    Script qui réindexe l'ensemble des nouvelles données créées entre le cron de la nuit et le moment d'execution de ce cron, club et forum. 

    */5 * * * * root cd /opt/www/mesdiscussions/core/private/scripts;/usr/local/php/bin/php /opt/www/mesdiscussions/core/private/scripts/sphinx_cron.php

Exécution

Pour faire tourner la recherche sphinx il suffit d'executer la commande suivante :

cd /opt/www/mesdiscussions/core/private;/usr/local/sphinx/bin/searchd --config sphinx.conf

NOTA: Sphinx a également impérativement besoin de se connecter à une base de donnée afin de générer ses index. Il faut donc vieller à bien configurer les infos prévues à cet effet se trouvant dans setup.vars.php, ainsi qu'un client mysql lui permettant d'ouvrir une connexion (lecture + écriture) avec les infos précédemment fournies.

 

Réinitialisation 

En cas de soucis dans l'indexage, ou de modifications de la conf de sphinx, exécuter les commandes suivante sur le serveur de sphinx : 

Couper le searchd avant d'exécuter ces commandes via un kill -9 (pid identifiable via un ps aux |grep searchd) :

cd /opt/WebSites/mesdiscussions/core/private/
rm forum_sphinx*.conf
rm sphinx_*.conf 
/usr/local/php/bin/php /opt/WebSites/mesdiscussions/core/private/install/create_sphinx_conf.php
cd /opt/WebSites/mesdiscussions/core/private/sphinx/data/CF_doctissimo_site
rm *
/usr/local/sphinx/bin/indexer --config /opt/WebSites/mesdiscussions/core/private/fichier_de_conf.conf --all --rotate
/usr/local/sphinx/bin/searchd --config /opt/WebSites/mesdiscussions/core/private/fichier_de_conf.conf

 

Remplacer mesdiscussions par le nom du projet sur le serveur, et fichier_de_conf par le fichier qui a été généré par le create_sphinx_conf.php

 

Debug

Il est possible de vérifier si sphinx et les indexes sont correctes en lancant une recherche manuellement via leur outil de debug. 

 

sudo search -c <path_of_config_file> --index <index_name> --noinfo <word_to_search>

 

Opérateur de recherche

Liste des opérateurs de recherche :

chien | chat : Pour rechercher soit le mot chat soit le mot chient

chien & chat : Pour rechercher un texte contenant à la fois le mot chat et le mot chien

chat << chien : Pour rechercher un texte contenant d'abord le mot chat puis le mot chient

(chat | chien) (adopté | acheté) : Permet de recherche les textes contenant soit  les expressions chat & adopté  ou chat & acheté ou chien & adopté ou chien & acheté 

(chat | chien) << (adopté | acheté) : Permet de recherche les textes contenant soit  les expressions chat << adopté  ou chat << acheté ou chien << adopté ou chien << acheté 

(chat | chien) NEAR/3 (adopté | acheté) : Permet de recherche les textes contenant soit  les expressions chat & adopté  ou chat & acheté ou chien & adopté ou chien & acheté avec une proximité de 3 mots. C'est à dire que les deux mots recherchés doivent être espacé de 3 mots max.

 

Plus d'exemple ici : http://sphinxsearch.com/docs/archives/manual-2.1.9.html#extended-syntax

 

  • Aucune étiquette