2010-03-26 4 views
6

J'utilise Sphinx Search. Cela fonctionne bien pour moi sauf un problème: j'ai besoin d'exclure certaines entrées où un champ spécifique ne contient pas un mot.Requête complexe avec Sphinx

Quelque chose qui ressemblerait à ceci dans MySQL:

SELECT * FROM table 
    WHERE yescolumn = 'query' 
    AND othercolumn not like '%keyword%' 

Répondre

8

Vous pouvez utiliser la syntaxe de requête étendue de Sphinx pour choisir les champs que vous souhaitez rechercher. Essayez d'exécuter une requête par Sphinx comme ceci:

@yescolumn query @othercolumn -keyword 

donc dans une page PHP que vous pourriez avoir un lien vers une base de données Sphinx nommé $sphinx:

$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2); 
$results = $sphinx->Query('@yescolumn query @othercolumn -keyword'); 

Plus d'informations ici: http://www.sphinxsearch.com/docs/current.html#searching