Pour améliorer le tri des résultats en mode booléen, vous pouvez utiliser ce qui suit :
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;
Utiliser le premier MATCH()
on obtient le score en mode de recherche non booléen (plus distinctif) . La deuxième MATCH()
assure que nous n'obtenons vraiment que les résultats que nous voulons (avec les 3 mots) .
Ainsi votre requête deviendra :
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;
Avec un peu de chance; vous obtiendrez de meilleurs résultats maintenant.
Si cela fonctionne ou ne fonctionne pas ; s'il vous plaît laissez-moi savoir.