FULLTEXT en MySQL

FULLTEXT en MySQL

¡Hola, bienvenidos y bienvenidas a la última clase del curso de MySQL 8 nivel básico! Hoy veremos FULLTEXT en MySQL.

Cuando realizamos búsquedas de textos o coincidencias de palabras en una base de datos generalmente utilizamos la sentencia WHERE, WHERE LIKE. Sin embargo, cuando tenemos cientos o miles de datos, el tiempo requerido para encontrar los resultados de la búsqueda es mayor; por esta razón se creó los índices FULLTEXT, el cual permite optimizar la búsqueda de palabras en un texto mejorando los tiempos de ejecución en consultas SQL.

¡Empecemos!

¿Qué es FULLTEXT?

FULLTEXT es una característica de MySQL que permite realizar búsquedas de texto optimizadas en columnas indexadas de tipo texto. Proporciona una forma eficiente de buscar palabras o frases específicas en grandes cantidades de texto, como artículos, descripciones de productos o contenido de blogs. Este tipo de índice se aplica a columnas de tipo CHAR, VARCHAR y TEXT.

El índice FULLTEXT, al igual que los demás índices, se puede añadir al momento de crear o de actualizar las tablas.

Agregar índice FULLTEXT

Se puede agregar un índice FULLTEXT a una o varias columnas de tipo texto en una tabla que deseas buscar. Se utilizan en sentencias de CREATE y UPDATE. Por ejemplo, para agregar un índice FULLTEXT en el campo “detalle” de la tabla “Servicios”. Ejecutamos la siguiente consulta:

ALTER TABLE clinica_veterinaria.servicios ADD FULLTEXT(detalle);

De esta forma, se ha creado el índice FULLTEXT, Ahora ya es posible hacer búsquedas aplicando FULLTEXT en el campo “detalle”.

Realizar consultas FULLTEXT

Una vez que el índice FULLTEXT está creado, puedes utilizar la cláusula MATCH AGAINST para realizar consultas de texto completo en las columnas indexadas.

MATCH AGAINST

MATCH AGAINST es un tipo de sentencia que sirve para realizar búsquedas más optimizadas. Utiliza columnas que tienen definidos índices FULLTEXT y a diferencia de WHERE o WHERE LIKE, permite la búsqueda a través de varias palabras que coincidan con el texto de la columna.

Veamos algunos ejemplos utilizando MATCH AGAINST en índices FULLTEXT. Por ejemplo, quiero obtener todos los datos de la tabla “Servicios” que en su detalle está escrita la palabra “pelo”.

SELECT * FROM clinica_veterinaria.servicios
WHERE MATCH(detalle) AGAINST('pelo');

Veamos otro ejemplo, quiero obtener todos los servicios en los que el campo detalle se filtre por “hotel animal”.

SELECT * FROM clinica_veterinaria.servicios
WHERE MATCH(detalle)AGAINST('hotel animal');

Recuerden que todos los ejemplos realizados pueden ir probando en MySQL Workbench, así tener una idea más clara de la consulta y los resultados que arroja.

Consultas Fulltext MySQL

Conclusión

Este tipo de consultas es de gran utilidad para ejecutar aplicaciones que realizan búsquedas por coincidencia de palabras en campos que tienen un texto relativamente largo, claro ejemplo es el buscador de Google, búsquedas de palabras en textos, manuales y/o libros.

Hasta aquí la clase de FULLTEXT en MySQL. Con todo lo aprendido en este curso de MySQL  8 tenemos el conocimiento general para poder gestionar y administrar un motor de base de datos como MySQL e implementarlo en un lenguaje de programación como PHP.

En futuras oportunidades conoceremos y aprenderemos más sobre un manejador de base de datos como MySQL.

Saludos y éxitos.

Victor Peña

Victor Peña

Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *