Проблему решил в рамках php + mysql. Поиск не нагруженный на сайте. Вот решение:
Завел словарь моделей.
<?
$slovar = array(
'iphone 6' => 'iphone 6',
'6 iphone' => 'iphone 6',
'iphone 6s' => 'iphone 6s',
'6s iphone' => 'iphone 6s',
'iphone 7' => 'iphone 7',
'7 iphone' => 'iphone 7',
'iphone 7s' => 'iphone 7s',
'7s iphone' => 'iphone 7s',
);
Далее в поисковой строке заменяю все словосочетания, на словосочетания где вместо пробела нижнее подчеркивание. После разбивки поискового запроса на слова возвращаю пробелы на место.
$tmp = substr( $tmp, 0, 40 ); //обрезаем строку
//делаем массив с подчеркиваниями
foreach($slovar as $k=>$v){
$arr1[] = $k;
$arr2[] = str_replace(" ", "_", $v);
}
//заменяем в поисковом запросе словосочетания
$tmp = str_replace($arr1, $arr2, $tmp);
//бьем поисковую строку на пробелы
$tmp = explode( ' ', $tmp );
//пробелы заменяем на конструкцию SQL
$where = "`title` LIKE '%" . implode ( "%' AND `title` LIKE '%", $tmp ) . "%'";
//возвращаем в запрос обратно пробелы
$where = str_replace("_", " ", $where);