Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/04/2008, 02:42
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Busqueda Con Fulltext

Deckar,
escribo otra vez para darte la solución que creo más acertada, pues en mi opinión hacer lo que estás haciendo con una búsqueda IN BOOLEAN MODE es desperdiciar toda la potencialidad del índice y obligarlo a hacer siempre lo que una búsqueda con like normal haría.
Tú puedes encontrar perfectamente una cadena fija o una parte sí, otra no, usando los operadores de IN BOOLEAN MODE ", +, -, etc.
Tú problema lo tienes realmente con PHP, pues para introducir las comillas, el +, el - de IN BOOLEAN MODE, el mejor lugar sería el formulario que te recoge la variable. Es decir, si quieres hacer una búsqueda exacta, debes escribir en el apartado del formulario, en tu input de texto, las comillas, "Picos de Europa". Pero para poder hacer eso, necesitas escapar esas comillas para hacer la consulta, y para eso tienes la función addslashes.
$busqueda=addslashes($_POST['busqueda']);
luego introduces $busqueda en la cadena de consulta tal cual
$SQL="SELECT * FROM TABLA WHERE MATCH (nombre,localidad,comarca,provincia,descripcion,vi sitar,otros) AGAINST ('$busqueda' IN BOOLEAN MODE) ORDER BY id";
y
y ya está. Con ello ya no buscará tu índice la cadena exacta si tú no quieres hacerlo y podrás utilizar todo su potencial sirviéndote de los operadores.
Este es mi consejo, realmente un consejo PHP (pido disculpas a los moderadores), pero eso evitará un mal uso del FULLTEXT en MySQL
Suerte.