Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/09/2009, 18:37
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problemas con búsquedas avanzadas

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
  1. $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" ;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos