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

MySQL match () contra () - ordem por relevância e coluna?


Isso pode dar a maior relevância para a parte da cabeça que você deseja. Não vai dobrar, mas pode ser bom o suficiente para o seu bem:
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

Uma alternativa que você também deseja investigar, se tiver flexibilidade para alternar o mecanismo de banco de dados, é Postgre . Permite definir o peso dos operadores e brincar com o ranking.