15 de noviembre de 2011

MySQL Full Text y longitud de palabras

Si utilizamos índices Full Text en nuestras consultas de Mysql, quizás interese establecer la longitud mínima de palabra al valor que nos interese.

Por defecto este valor se establece a 4. De esta forma, si realizamos búsquedas del tipo:

SELECT * 
FROM products 
WHERE MATCH (title) AGAINST ('+Pad' IN BOOLEAN MODE);

No dará resultados para productos con nombre: "Papyre Pad"

Para establecer el valor de la variable, se debe hacer en el fichero de configuración de Msyql.

$ sudo vi /etc/mysql/conf.d/variables.cnf

[mysqld]
set-variable    = ft_min_word_len=3


$ sudo /etc/init.d/mysql restart

Reparamos las tablas con indices Full Text.

mysql> REPAIR TABLE products QUICK;

Referencias:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ft_min_word_len

No hay comentarios:

Publicar un comentario