В первой таблице по хорошему нужен будет ещё и ид, ещё одна таблица для связей, ид_новости, ид_категории
И все это можно подвести нормально к запросам многие ко многим
Ну как вариант из 6 одинаковых наборов попался брак, ну а так разгон на одном и том же наборе может быть разным. Разгон это минус стабильность, либо гнать каждый аппарат отдельно. Но а лучше докупить железки и не гнать вовсе
SELECT *, MATCH (text) AGAINST (' . $query . ' IN BOOLEAN MODE) AS `rel`
FROM `texts`
WHERE MATCH (text) AGAINST (' . $query . ' IN BOOLEAN MODE)
ORDER BY `rel` DESC
LIMIT 10
И все это можно подвести нормально к запросам многие ко многим