En
esta pagina mira lo que dice sobre las caracteristicas de usar MATCH, AGAINST
Cita: Características:
Las búsquedas FullText tienes varias características interesantes.
El límite del 50%
Cuando una consulta se encuentra en mas del 50% de los registros de la tabla esto hace que la consulta sea invalida. Por que? Pues por que al estar en mas de la mitad de los registros los resultados ya dejan de ser información relevante. Por ejemplo supongamos que tenemos una tabla con 10000 registros, realizamos la búsqueda y esta devuelve como resultado 6000 registros, esto no me sirve de nada por que no voy a revisar 6000 registros para encontrar lo que necesito mientras que si el resultado son 20 registros significa que ha encontrado exactamente lo que busco.
Palabras de menos de 3 caracteres no se buscan
Esto debido a que estas palabras son muy comunes, por ejemplo que pasaría si buscamos “a” me devolvería prácticamente todos los registros de la tabla con lo cual deja de ser información útil.
La búsqueda es Case-Insensitive
Esto por que si se busca “Cable” buscara cable, cAble, cABle, etc.
Tambien veo que falta indicar IN BOOLEAN MODE. Trata de ver si así te funciona.
Código PHP:
Ver original$conta = "SELECT * , MATCH (productos,observacion,nombre) AGAINST ('$busqueda') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$busqueda' IN BOOLEAN MODE) ORDER BY Score ASC" ;