Я использую Поиск Сфинкса. Это хорошо работает для меня кроме одной проблемы: Я должен исключить некоторые записи, где определенное поле не содержит слово.
Что-то, что было бы похоже на это в MySQL:
SELECT * FROM table
WHERE yescolumn = 'query'
AND othercolumn not like '%keyword%'
Вы можете использовать расширенный синтаксис запросов Sphinx, чтобы выбрать поля, по которым вы хотите искать. Попробуйте выполнить запрос через Sphinx следующим образом:
@yescolumn query @othercolumn -keyword
Так, на странице PHP может быть ссылка на базу данных Sphinx с именем $sphinx
:
$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$results = $sphinx->Query('@yescolumn query @othercolumn -keyword');
Больше информации здесь: http://www.sphinxsearch.com/docs/current.html#searching