sql >> Base de Datos >  >> RDS >> Mysql

MySQL:¿Por qué la puntuación es siempre 1 en Fulltext?

El MODO BOOLEANO solo admite respuestas binarias, significa 0 o 1 ya sea que la cadena de búsqueda aparezca en la columna o no. Para obtener un resultado decimal para calcular un peso, debe usar la comparación en columnas indexadas.

Puede usar el modo booleano de esta manera para obtener su peso:

SELECT *, ((1.3 * (MATCH(column1) AGAINST ('query' IN BOOLEAN MODE))) +
(0.6 * (MATCH(column2) AGAINST ('query' IN BOOLEAN MODE)))) AS relevance
FROM table WHERE ( MATCH(column1,column2) AGAINST
('query' IN BOOLEAN MODE) ) ORDER BY relevance DESC

La ventaja del modo booleano es que puede usarlo en columnas no indexadas pero solo con 0,1 como resultado, el modo no booleano devuelve un resultado decimal pero solo se puede aplicar en columnas indexadas... ver también aquí .