22/02/2012, 22:35
|
| | Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 7 meses Puntos: 2 | |
Respuesta: ¿Como buscar una Frase Exacta en mi base de datos? Bueno, logré solucionar todo con este script que armé con un poco de aquí y un poco de allá, no es perfecto, tienes sus detalles, como que no da mucha importancia a palabras con 3 caracteres o menos y cosas así... Pero funciona bastante bien, encuentra sin importar el orden de las palabras y da preferencia primero a los resultados que contienen todas las palabras buscadas (en la mayoría de los casos)
SELECT * , MATCH(T1, T2) AGAINST ('$term') as Score
FROM 449
WHERE MATCH(T1, T2) AGAINST ('$term')
UNION
SELECT * , MATCH(T1, T2) AGAINST ('$term') as Score
FROM 501
WHERE MATCH(T1, T2) AGAINST ('$term')
UNION
SELECT * , MATCH(T1, T2) AGAINST ('$term') as Score
FROM 502
WHERE MATCH(T1, T2) AGAINST ('$term')
ORDER BY Score DESC
En mi caso uní 3 tablas que son idénticas pero que tuve que separar por cuestiones de peso, T1 y T2 son las columnas en las que se buscará, no olvidar que deben tener sus índices FULLTEXT, y bueno 501, 502, 449 las tablas a buscar...
Y bueno, como en mi caso se trata de un buscador, $term equivale a lo que se escribe en la casilla de búsqueda...
Espero que a alguien le sirva y construya cosas buenas... el karma es el karma
luisdelbar • • • |