Foros del Web » Programando para Internet » PHP »

Busquedas con full-text en mysql

Estas en el tema de Busquedas con full-text en mysql en el foro de PHP en Foros del Web. Buenos dias, Utilizo las búsquedas de texto completo en mysql, y necesito buscar el contenido de una palabra en unos campos. Por ejemplo: Campo name: ...
  #1 (permalink)  
Antiguo 01/02/2005, 05:27
Usuario no validado
 
Fecha de Ingreso: febrero-2004
Mensajes: 32
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta Busquedas con full-text en mysql

Buenos dias,

Utilizo las búsquedas de texto completo en mysql, y necesito buscar el contenido de una palabra en unos campos.

Por ejemplo:
Campo name: bertrand
Campo lastName: Ado

Busqueda: rtra

Me tendria que dar el resultado que ha encontrado "bertrand", pero no encuentra nada, en cambio si pongo ber, si que me lo encuentra.

Por lo que he visto encuentra todo lo que empieza por la cadena que le paso a la consulta, pero si en cambio quiero que contenga la cadena a buscar, no me la encuentra.

La consulta, simplificada, que utilizo es:

SELECT name,lastName,gsm
FROM contact
WHERE MATCH (name,lastName,gsm,)
AGAINST ('$seek' IN BOOLEAN MODE);

Hay algun metodo de buscar los campos que contengan la cadena a buscar, con full-text.

Muchas gracias a todos!

Un saludo,
Manu
  #2 (permalink)  
Antiguo 01/02/2005, 08:20
 
Fecha de Ingreso: abril-2004
Mensajes: 44
Antigüedad: 20 años
Puntos: 1
utiliza el "like"

Intenta con esto a ver si te funciona:

SELECT name,lastName,gsm
FROM contact
WHERE name like '%gsm%' OR lastName like '%gsm%'

El comando like busca todo lo que sea similar a la cadena que le das, y los '%' sustituyen a cualquier cadena de caracteres. Por lo tanto, realiza una búsqueda de la cadena que le pasa (gsm) dando igual que esté esta cadena al principio, al final o en medio del campo.

Espero que te sirva.

Saludos!!
  #3 (permalink)  
Antiguo 01/02/2005, 09:01
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 20 años, 9 meses
Puntos: 0
Si tenes los campos con Full-text, podes realizar dos tipos de busquedas:
1.- Si la "frase" buscada tiene solo 1 palabla:
$sql = "SELECT name,lastName,gsm
FROM contact
WHERE name like '%".$busqueda."%' OR lastName like '%".$busqueda."%'";

2.- Si buscas una frase de mas de una palabra (generalmente para buscadores de noticias o similares):
$sql = "SELECT name,lastName,gsm,
MATCH (name,lastName,gsm)
AGAINST ('".$busqueda."') AS score FROM contact
WHERE MATCH (name,lastName,gsm) AGAINST ('".$busqueda."')
ORDER BY score DESC";

Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:21.