sql >> Base de Datos >  >> RDS >> Mysql

MySQL match () contra () - ¿ordenar por relevancia y columna?

Esto podría dar la mayor relevancia a la parte de la cabeza que desee. No lo duplicará, pero posiblemente sea lo suficientemente bueno para ti:

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

Una alternativa que también desea investigar, si tiene la flexibilidad para cambiar el motor de base de datos, es Postgres . Permite establecer el peso de los operadores y jugar con el ranking.