Aby usprawnić sortowanie wyników w trybie logicznym, możesz użyć następującego:
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;
Korzystanie z pierwszego MATCH()
otrzymujemy wynik w trybie wyszukiwania innym niż logiczny (bardziej charakterystyczny) . Drugi MATCH()
zapewnia, że naprawdę otrzymamy tylko pożądane wyniki (ze wszystkimi 3 słowami) .
Twoje zapytanie będzie więc wyglądać następująco:
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;
Ufnie; uzyskasz teraz lepsze wyniki.
Czy to działa, czy nie; proszę daj mi znać.