Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL match() contre() - trier par pertinence et colonne ?

Cela pourrait donnez la pertinence accrue à la partie principale que vous souhaitez. Cela ne le doublera pas, mais cela pourrait peut-être suffire pour vous :

SELECT pages.*,
       MATCH (head, body) AGAINST ('some words') AS relevance,
       MATCH (head) AGAINST ('some words') AS title_relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words')
ORDER BY title_relevance DESC, relevance DESC

-- alternatively:
ORDER BY title_relevance + relevance DESC

Une alternative que vous souhaitez également étudier, si vous avez la possibilité de changer de moteur de base de données, est Postgres . Il permet de fixer le poids des opérateurs et de jouer avec le classement.