For at forbedre sorteringen af resultaterne i boolesk tilstand kan du bruge følgende:
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;
Brug af den første MATCH()
vi får scoren i ikke-boolsk søgetilstand (mere karakteristisk) . den anden MATCH()
sikrer, at vi virkelig kun får de resultater tilbage, vi ønsker (med alle 3 ord) .
Så din forespørgsel bliver:
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;
Forhåbentlig; du vil få bedre resultater nu.
Hvis det virker eller ikke virker; lad mig det vide.