OK, j'ai enfin compris comment les choses fonctionnent avec le truc du sphinx.
- Vous ne pouvez pas INSÉRER ou METTRE À JOUR directement la table SphinxSE. Au lieu de cela, vous utilisez INSERT/REPLACE lorsque vous êtes connecté à SphinxQL (directement au démon sphinx).
-
Avec 1.10, vous pouvez ajouter plusieurs champs de recherche FullText. J'ai ajouté le titre, les balises et le contenu. Et la requête pour donner plus de poids au titre, puis aux balises puis au contenu ressemble à ceci :
SELECT SQL_NO_CACHE * FROM sphinx_docs WHERE query = 'a lot of keywords;weights=3,2,1;';
J'utilise leSQL_NO_CACHE
pour dire à mysql de ne pas mettre en cache le résultat de ceci, car lors des prochains appels, je ne peux pas obtenir le nombre de lignes renvoyées par sphinx (SHOW STATUS LIKE 'sphinx_total_found'
) -
Il est préférable de laisser sphinx faire tout le tri, le filtrage et d'utiliser mysql uniquement pour REJOINDRE la table dont vous avez besoin de plus d'informations.
De plus je dois dire que j'ai essayé plusieurs fois d'ajouter le plugin sphinxse à mysql sans succès (des heures d'attente interminables) donc je suis passé à MariaDB 5.2.4 qui inclut le moteur de stockage SphinxSE.