Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A pesquisa do MySQL Fulltext Boolean Mode retorna muitos resultados


Para melhorar a classificação dos resultados no modo booleano, você pode usar o seguinte:
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 o primeiro MATCH() obtemos a pontuação no modo de pesquisa não booleano (mais distinto) . O segundo MATCH() garante que realmente recebamos apenas os resultados que queremos (com todas as 3 palavras) .

Assim, sua consulta se tornará:
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;

Esperançosamente; você obterá melhores resultados agora.

Se funciona ou não funciona; por favor, me avise.