2010-03-26 44 views
6

Estoy usando Sphinx Search. Funciona bien para mí, excepto un problema: necesito excluir algunas entradas donde un campo específico no contiene una palabra.Consulta compleja con Sphinx

Algo que se vería así en MySQL:

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

Respuesta

8

Puede utilizar la sintaxis de consulta extendida de Sphinx para recoger los campos que desea buscar. Pruebe a ejecutar una consulta a través de la esfinge como esto:

@yescolumn query @othercolumn -keyword 

Así que en una página PHP que puede tener un enlace a una base de datos llamada Esfinge $sphinx:

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

Más información aquí: http://www.sphinxsearch.com/docs/current.html#searching