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

La búsqueda en modo booleano de texto completo de MySQL devuelve demasiados resultados

Para mejorar la clasificación de los resultados en modo booleano, puede usar lo siguiente:

SELECT column_names, MATCH (text) AGAINST ('word1 word2 word3')
AS col1 FROM table1
WHERE MATCH (text) AGAINST ('+word1 +word2 +word3' in boolean mode) 
order by col1 desc;

Usando el primero MATCH() obtenemos la puntuación en modo de búsqueda no booleano (más distintivo) . El segundo MATCH() garantiza que realmente obtengamos solo los resultados que queremos (con las 3 palabras) .

Entonces su consulta se convertirá en:

SELECT *, MATCH (artist, title) AGAINST ('paul van dyk')
    AS score FROM tracks
    WHERE MATCH (artist, title) 
    AGAINST ('+paul +van +dyk' in boolean mode) 
    order by score desc;

Ojalá; obtendrá mejores resultados ahora.

si funciona o no funciona; por favor hágamelo saber.