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.