De Documentos de MySQL
-
+
Un signo más inicial indica que esta palabra debe estar presente en cada fila que se devuelve. -
*
El asterisco sirve como operador de truncamiento (o comodín). A diferencia de los otros operadores, debe agregarse a la palabra que se verá afectada. Las palabras coinciden si comienzan con la palabra que precede al *operador.Si se especifica una palabra con el operador de truncamiento, no se elimina de una consulta booleana, incluso si es demasiado corta (según lo determinado por la configuración ft_min_word_len) o una palabra vacía. Esto ocurre porque la palabra no se ve como demasiado corta o como palabra clave, sino como un prefijo que debe estar presente en el documento en forma de palabra que comienza con el prefijo .
En contexto:
PARTIDO(...) CONTRA(...)
MATCH (name) AGAINST ('+ski*' IN BOOLEAN MODE)
significa que está buscando filas donde una palabra en el name
la columna debe contener ski
y debe comenzar con la palabra ski
.
Del conjunto que has publicado, Dartmouth Skiway
es el único name
que cumple con estos requisitos:contiene la palabra ski
, y tiene como prefijo la palabra ski
.
El otro name
columnas, aunque coinciden con la primera regla:debe contener ski
, no tienen el prefijo ski
, según lo estipulado en su regla. La fila devuelta por su búsqueda booleana es la única con un name
columna que contiene una palabra que contiene ski
y es una palabra prefijada por ski
.
Como sugirió ajreal, intente disminuir el ft_min_len_word_setting
en my.cnf
. Es posible que su búsqueda no arroje los resultados esperados debido a la configuración predeterminada. Intenta reducirlo a 3.
DÓNDE columna LIKE %text%
WHERE name LIKE "%ski%"
busca filas con name
columnas que contienen ski
, sin importar dónde aparezca la palabra.