40. Índice FULLTEXT en MySQL

Este tipo de índice se diferencia de un índice regular en que permite búsquedas muy rápidas de colecciones enteras de texto. Dichos índices almacenan cada palabra en un índice especial que se puede buscar usando el lenguaje natural. De manera similar a cuando se utiliza un motor de búsqueda.

Estos tipos de índices sólo se pueden utilizar en columnas de tipo CHAR, VARCHAR y TEXT, y se pueden incluir a la hora de crear una tabla, o añadirlo después utilizando el comando ALTER TABLE.

Si tenemos grandes cantidades  de datos y vamos a incluir un índice FULLTEXT en una tabla que subamos, la carga va a ser más lenta, por lo que lo recomendable en este caso es que lo subamos a una tabla que no tenga este índice, y después de haber cargado los datos, agregarle el índice FULLTEXT.

Siguiendo el ejm de capítulos anteriores, vamos a incluir un índice FULLTEXT a nuestra tabla contactos, la sintaxis sería la siguiente.

Ejm

ALTER TABLE ejemplo.contactos ADD FULLTEXT(direccion);

Este tipo de índices se suelen utilizar en registros con grandes cantidades de datos.

Índice FULLTEXT a la hora de crear una tabla

La sintaxis sería la siguiente.

Ejm

CREATE TABLE ejemplo.contactos (
id INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(64) NOT NULL,
apellidos VARCHAR(64) NOT NULL,
direccion VARCHAR(255) NOT NULL,
fecha_nacimiento DATE DEFAULT NULL,
tlfo VARCHAR(9) NOT NULL,
familia TINYINT,
PRIMARY KEY(id),
INDEX (nombre),
INDEX (apellidos),
FULLTEXT(direccion)
);