2010-03-26 14 views
6

Używam Sphinx Search. Działa to dobrze dla mnie z wyjątkiem jednego problemu: muszę wykluczyć niektóre wpisy, w których określone pole nie zawiera słowa.Złożona kwerenda ze Sfinksem

Coś, co będzie wyglądać to w MySQL:

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

Odpowiedz

8

Można użyć rozszerzonej składni kwerendy Sfinksa wybrać pola, które chcesz przeszukać. Spróbuj uruchomić kwerendę przez Sfinksa tak:

@yescolumn query @othercolumn -keyword 

Więc na stronie PHP ty może mieć link do bazy danych o nazwie Sfinks $sphinx:

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

Więcej informacji tutaj: http://www.sphinxsearch.com/docs/current.html#searching