Use un menú desplegable cerca de la entrada de texto de búsqueda para seleccionar la categoría o casilla de verificación múltiple para ver qué unión tendría que hacer. Te recomendaría Sphinx http://sphinxsearch.com/
Prueba
SELECT 1 as type,tname AS keyword FROM t
UNION
SELECT 2 as type,sname AS keyword FROM sub
UNION
SELECT 3 as type,cname AS keyword FROM c
UNION
SELECT 4 as type,iname AS keyword FROM i
foreach($results as $result)
{
switch($result['type'])
{
case 1:
$cat_1[]=$result;
break;
case 2:
$cat_2[]=$result;
break;
}
}