MySQL не поддерживает поиск SOUNDEX по полному тексту.
Если вы хотите реализовать фреймворк, похожий на lucene, это означает, что вам нужно взять все документы, разбить их на слова, а затем построить индексза каждое слово
Когда кто-то ищет «правый шлдер», вы должны выполнить поиск SOUNDEX по каждому слову в таблице миров:
$search = 'right shlder';
preg_match_all('(\w+)', $search, $matches);
if (!empty($matches[0]))
$sounds = array_map('soundex', $matches[0]);
$query = 'SELECT word FROM words_list
WHERE SOUNDEX(word) IN(\''.join('\',\'',$sounds).'\')';
, а затем выполнить полнотекстовый поиск:
$query2 = 'SELECT * FROM table
WHERE MATCH(fultextcolumn)
AGAINST ('.join (' OR ', $resuls).' IN BINARY MODE)';
Где $ result - это массив с результатами первого запроса.