Índice

Realizar búsquedas de texto completo

1. Principios

MySQL permite realizar búsquedas de palabras en el conjunto de un texto (o varios textos).

Para utilizar esta característica, es necesario:

  • crear un índice especial de tipo FULLTEXT;

  • utilizar la función MATCH AGAINST en las búsquedas.

Los índices FULLTEXT pueden crearse en columnas de tipo CHAR, VARCHAR o TEXT, pero solo en tablas MyISAM o InnoDB.

2. Creación del índice FULLTEXT

Los índices FULLTEXT pueden constituirse en la creación inicial de la tabla (en la sentencia CREATE TABLE) o ulteriormente (mediante una sentencia ALTER TABLE o CREATE FULLTEXT INDEX).

Para crear un índice FULLTEXT en una sentencia CREATE TABLE o ALTER TABLE, es necesario utilizar una cláusula FULLTEXT similar a la cláusula INDEX presentada en el capítulo Construir una base de datos en MySQL. La sentencia CREATE FULLTEXT INDEX es una variante de la sentencia CREATE INDEX presentada en el capítulo Construir una base de datos en MySQL.

Sintaxis

CREATE TABLE nombre_tabla 
( 
especificacion_columnas, 
FULLTEXT(nombre_columna[,...]) 
) 
ALTER TABLE nombre_tabla ADD FULLTEXT(nombre_columna[,...]) 
CREATE FULLTEXT INDEX nombre_indice ON nombre_tabla(nombre_columna[,...])

Ejemplo

mysql> CREATE FULLTEXT INDEX ind_texto 
    -> ON libro(titulo,subtitulo,descripcion); 
Query OK, 0 rows affected, 1 warning (0.09 sec) 
Records: 0  Duplicates: 0  Warnings: 1 
mysql> SHOW WARNINGS; 
+---------+------+--------------------------------------------------+  ...