Noticias y eventos
- Grabar llamadas de skype en Linux Hola amigos, que tal tanto tiempo despues de mucho tiempo voy a comentarle esta pequeña aplicacion para Linux. Se...
- Instalacion de Doctrine ORM en Debian/Ubuntu Hola, esta vez quisiera acercarles una reducida guía de como instalar Doctrine ORM para PHP en el sistema operativo...
- Google ahora ofrece su propio servicio de DNS El servicio DNS es el que se encarga de convertir las direcciones legibles por humanos, como por ejemplo www.arzion.com a...
Contacto
Si tienes cualquier duda, consulta o sugerencia puedes mandarnos un email usando el siguiente formulario:
Buscador en mysql con full text
creado por Maximiliano Sciuto - 15/03/2009
Hola amigos que tal tanto tiempo, bueno hoy vamos hablar de como realizar un potente buscador en mysql con Full Text que permite búsquedas más racionales dentro de una base de datos.
Mayormente cuando queres hacer una busqueda en nuestra base de datos utilizamos el operador LIKE el cual se usa para hacer comparaciones entre cadenas y patrones .
Veamos un claro ejemplo supongamos que tenemos la siguiente tabla
Ahora si queremos realizar una busqueda de productos que contenga la palabra “cable de red” la consulta seria de la siguiente manera
La soluccion
Ahora es el momento de hablar de Full Text , esta caracteristica fue implentada en mysql apartir de la version 3.2, para poder utilizar esta caracteristica se utilizan tablas del tipo MYISAM .
Lo que debemos hacer es crear un indice adicional a nuestra tabla, este tipo de indice se llama Full-Text el cual nos proporcionaran las caracteristicas de busqueda
nos vemos la proxima.
Mayormente cuando queres hacer una busqueda en nuestra base de datos utilizamos el operador LIKE el cual se usa para hacer comparaciones entre cadenas y patrones .
Veamos un claro ejemplo supongamos que tenemos la siguiente tabla
CREATE TABLE `Productos` (
idprod INT(11) NOT NULL AUTO_INCREMENT,
nombre VARCHAR(120),
descripcion VARCHAR(255),
PRIMARY KEY (idprod),
UNIQUE KEY idprod (idprod),
);
Ahora si queremos realizar una busqueda de productos que contenga la palabra “cable de red” la consulta seria de la siguiente manera
SELECT idprod, nombre
FROM Productos
WHERE nombre like '%cable%' or nombre like '%red%' ;
Si analizamos el resultado de nuestro buscador nos devolveria muchos registros que no tendrian sentido .La soluccion
Ahora es el momento de hablar de Full Text , esta caracteristica fue implentada en mysql apartir de la version 3.2, para poder utilizar esta caracteristica se utilizan tablas del tipo MYISAM .
Lo que debemos hacer es crear un indice adicional a nuestra tabla, este tipo de indice se llama Full-Text el cual nos proporcionaran las caracteristicas de busqueda
ALTER TABLE Productos ADD FULLTEXT(nombre, descripcion);La sintaxis para el tipo de busqueda recientemente creado es el siguiente:
SELECT campo1, campo2 FROM table
WHERE MATCH(vcampo1, vcampo2)
AGAINST ('criterio') ;
En donde:- campo1, campo2: son los campos a devolver en la consulta.
- table: Es la tabla de donde se extraeran los datos
- vcampo1, vcampo2: son los campos que tienes indice fulltext y de donde se va a hacer la búsqueda.
- criterio: es la palabra o la frase a buscarse.
SELECT idprod, nombre, MATCH(nombre, descripcion)
AGAINST ('cable red') as Score
FROM productos
WHERE MATCH(nombre, descripcion)
AGAINST ('cable red') ;
ORDER BY Score DESC
bueno espero que les sea de mucha utilidad, cualquier duda dejen su comentario nos vemos la proxima.

















![Validate my RSS feed [Valid RSS]](/img/valid-rss.png)
