En un
SELECT COUNT(*) no necesitas
ORDER BY porque solo vas a contar cuantos registros cumplen la condicion, independientemente del orden que apliques al paginar y, en ese caso, tendrias que usar un alias para el campo, no para la tabla.
Cita: $_pagi_sql= "SELECT DISTINCT * FROM manual_contents as score WHERE sections LIKE '%$search%' AND language = '$language'";
En este caso estas usando el alias
score para la tabla
manual_contents y la consulta original estaba correcta, solo le faltaba el LIMIT
Cita: // Primero cuentas, calculas inicio y registros a leer
// Aqui iria el SELECT COUNT(*)....
// Despues lees la pagina a mostrar:
$_pagi_sql = "SELECT chapter_id,page_id,section_id,sections, MATCH(sections) AGAINST ('$search' IN BOOLEAN MODE) AS score FROM manual_contents WHERE MATCH (sections) AGAINST ('$search' IN BOOLEAN MODE) AND language = '$language' ORDER BY score DESC LIMIT $inicio, $registros";
Si vas a mostrar primero los resultados mas relevantes, puedes omitir el ORDER BY, pero si vas en orden inverso, entonces si lo necesitas, a sabiendas de que el tiempo de proceso sera mayor.
Mas info para optimizacion de busquedas (en ingles):
http://www.mysqlperformanceblog.com/...-optimization/